diff --git a/java/ToolGood/Words/IllegalWordsSearch.java b/java/ToolGood/Words/IllegalWordsSearch.java new file mode 100644 index 0000000..230718d --- /dev/null +++ b/java/ToolGood/Words/IllegalWordsSearch.java @@ -0,0 +1,438 @@ +package ToolGood.Words; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import ToolGood.Words.internals.BaseSearchEx; +import ToolGood.Words.internals.Dict; + +public class IllegalWordsSearch extends BaseSearchEx +{ + public boolean UseSkipWordFilter = false; + private String _skipList = " \t\r\n~!@#$%^&*()_+-=【】、[]{}|;':\",。、《》?αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ。,、;:?!…—·ˉ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇≈≡≠=≤≥<>≮≯∷±+-×÷/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥∥∠⌒⊙≌∽√§№☆★○●◎◇◆□℃‰€■△▲※→←↑↓〓¤°#&@\︿_ ̄―♂♀┌┍┎┐┑┒┓─┄┈├┝┞┟┠┡┢┣│┆┊┬┭┮┯┰┱┲┳┼┽┾┿╀╁╂╃└┕┖┗┘┙┚┛━┅┉┤┥┦┧┨┩┪┫┃┇┋┴┵┶┷┸┹┺┻╋╊╉╈╇╆╅╄"; + private boolean[] _skipBitArray; + public boolean UseDuplicateWordFilter = false; + public boolean UseBlacklistFilter = false; + private int[] _blacklist; + public boolean UseDBCcaseConverter = true; + public boolean UseSimplifiedChineseConverter = true; + public boolean UseIgnoreCase = true; + + public IllegalWordsSearch() + { + _skipBitArray = new boolean[Character.MAX_VALUE + 1]; + for (int i = 0; i < _skipList.length(); i++) { + _skipBitArray[_skipList.charAt(i)] = true; + } + _blacklist = new int[0]; + } + + public List FindAll(String text){ + return FindAll(text,'*'); + } + + public List FindAll(String text, int flag) + { + List results = new ArrayList(); + int[] pIndex = new int[text.length()]; + int p = 0; + int findIndex = 0; + char pChar = (char)0; + + for (int i = 0; i < text.length(); i++) { + if (p != 0) { + pIndex[i] = p; + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, i - 1, text, p, pIndex, flag); + if (r != null) { results.add(r); } + } + } + } + + Character c = text.charAt(i); + if (UseSkipWordFilter && _skipBitArray[c]) { findIndex = 0; continue; }//使用跳词 + int t = _dict[ToSenseWord(c)]; + if (t == 0) { p = 0; pChar = c; continue; }//不在字表中,跳过 + + int next = _next[p] + t; + boolean find = _key[next] == t; + if (find == false) { + if (UseDuplicateWordFilter && pChar == c) { continue; } + if (p != 0) { + p = 0; + next = _next[0] + t; + find = _key[next] == t; + } + } + if (find) { + findIndex = _check[next]; + p = next; + } + pChar = c; + } + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, text.length() - 1, text, p, pIndex, flag); + if (r != null) {results.add(r);} + } + } + return results; + } + + public IllegalWordsSearchResult FindFirst(String text){ + return FindFirst(text,Integer.MAX_VALUE); + } + + public IllegalWordsSearchResult FindFirst(String text, int flag) + { + int[] pIndex = new int[text.length()]; + int p = 0; + int findIndex = 0; + char pChar = (char)0; + + for (int i = 0; i < text.length(); i++) { + if (p != 0) { + pIndex[i] = p; + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, i - 1, text, p, pIndex, flag); + if (r != null) { return r; } + } + } + } + + Character c = text.charAt(i); + if (UseSkipWordFilter && _skipBitArray[c]) { findIndex = 0; continue; }//使用跳词 + int t = _dict[ToSenseWord(c)]; + if (t == 0) { p = 0; pChar = c; continue; }//不在字表中,跳过 + + int next = _next[p] + t; + boolean find = _key[next] == t; + if (find == false) { + if (UseDuplicateWordFilter && pChar == c) { continue; } + if (p != 0) { + p = 0; + next = _next[0] + t; + find = _key[next] == t; + } + } + if (find) { + findIndex = _check[next]; + p = next; + } + pChar = c; + } + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, text.length() - 1, text, p, pIndex, flag); + if (r != null) { return r; } + } + } + return null; + } + + public boolean ContainsAny(String text) + { + return ContainsAny(text,Integer.MAX_VALUE); + } + + public boolean ContainsAny(String text, int flag) + { + int[] pIndex = new int[text.length()]; + int p = 0; + int findIndex = 0; + char pChar = (char)0; + + for (int i = 0; i < text.length(); i++) { + if (p != 0) { + pIndex[i] = p; + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, i - 1, text, p, pIndex, flag); + if (r != null) { return true; } + } + } + } + + Character c = text.charAt(i); + if (UseSkipWordFilter && _skipBitArray[c]) { findIndex = 0; continue; }//使用跳词 + int t = _dict[ToSenseWord(c)]; + if (t == 0) { p = 0; pChar = c; continue; }//不在字表中,跳过 + + + int next = _next[p] + t; + boolean find = _key[next] == t; + if (find == false) { + if (UseDuplicateWordFilter && pChar == c) { continue; } + if (p != 0) { + p = 0; + next = _next[0] + t; + find = _key[next] == t; + } + } + if (find) { + findIndex = _check[next]; + p = next; + } + pChar = c; + } + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, text.length() - 1, text, p, pIndex, flag); + if (r != null) { return true; } + } + } + return false; + } + + + public String Replace(String text) + { + return Replace(text, '*', Integer.MAX_VALUE); + } + + public String Replace(String text, char replaceChar) + { + return Replace(text, replaceChar, Integer.MAX_VALUE); + } + + public String Replace(String text, char replaceChar, int flag) + { + StringBuilder result = new StringBuilder(text); + + int[] pIndex = new int[text.length()]; + int p = 0; + int findIndex = 0; + char pChar = (char)0; + + + for (int i = 0; i < text.length(); i++) { + if (p != 0) { + pIndex[i] = p; + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, i - 1, text, p, pIndex, flag); + if(r!=null){ + for (int j = r.Start; j < i; j++) { result.setCharAt(j, replaceChar); } + break; + } + } + + } + } + + Character c = text.charAt(i); + if (UseSkipWordFilter && _skipBitArray[c]) { findIndex = 0; continue; }//使用跳词 + int t = _dict[ToSenseWord(c)]; + if (t == 0) { p = 0; pChar = c; continue; }//不在字表中,跳过 + + int next = _next[p] + t; + boolean find = _key[next] == t; + if (find == false) { + if (UseDuplicateWordFilter && pChar == c) { continue; } + if (p != 0) { + p = 0; + next = _next[0] + t; + find = _key[next] == t; + } + } + if (find) { + findIndex = _check[next]; + p = next; + } + pChar = c; + } + if (findIndex != 0) { + for (int item : _guides[findIndex]) { + IllegalWordsSearchResult r = GetIllegalResult(item, text.length() - 1, text, p, pIndex, flag); + if(r!=null){ + for (int j = r.Start; j < text.length(); j++) { result.setCharAt(j, replaceChar); } + break; + } + } + } + return result.toString(); + } + + private int FindStart(String keyword, int end, String srcText, int p, int[] pIndex) + { + if (end + 1 < srcText.length()) { + boolean en1 = IsEnglishOrNumber(srcText.charAt(end+1) ); + boolean en2 = IsEnglishOrNumber(srcText.charAt(end)); + if (en1 && en2) { return -1; } + } + int n = keyword.length(); + int start = end; + int pp = p; + while (n > 0) { + int pi = pIndex[start--]; + if (pi != pp) { n--; pp = pi; } + if (start == -1) return 0; + } + boolean sn1 = IsEnglishOrNumber(srcText.charAt(start++)); + boolean sn2 = IsEnglishOrNumber(srcText.charAt(start)); + if (sn1 && sn2) { + return -1; + } + return start; + } + + private IllegalWordsSearchResult GetIllegalResult(int index, int end, String srcText, int p, int[] pIndex, int flag) + { + if (UseBlacklistFilter) { + int b = _blacklist[index]; + if ((b | flag) != b) { return null; } + } + String keyword = _keywords[index]; + if (keyword.length()==1) { + if(ToSenseWord(srcText.charAt(end)).equals(ToSenseWord(keyword.charAt(0)))==false){ return null; } + return new IllegalWordsSearchResult(keyword, end, end, srcText); + } + int start = FindStart(keyword, end, srcText, p, pIndex); + if (start == -1) { return null; } + if(ToSenseWord(srcText.charAt(start)).equals(ToSenseWord(keyword.charAt(0)))==false){ return null; } + if (UseBlacklistFilter) { + return new IllegalWordsSearchResult(keyword, start, end, srcText, _blacklist[index]); + } + return new IllegalWordsSearchResult(keyword, start, end, srcText); + } + + + protected void Save(FileOutputStream bw) throws IOException + { + super.Save(bw); + + bw.write(UseSkipWordFilter?1:0); + bw.write(_skipBitArray.length); + for (boolean item : _skipBitArray) { + bw.write(item?1:0); + } + + bw.write(UseDuplicateWordFilter?1:0); + bw.write(UseBlacklistFilter?1:0); + bw.write(_blacklist.length); + for (int item : _blacklist) { + bw.write(item); + } + + bw.write(UseDBCcaseConverter?1:0); + bw.write(UseSimplifiedChineseConverter?1:0); + bw.write(UseIgnoreCase?1:0); + } + + protected void Load(FileInputStream br) throws IOException + { + super.Load(br); + + UseSkipWordFilter=br.read()>0?true:false; + int length =br.read(); + _skipBitArray=new boolean[length]; + for (int i = 0; i < length; i++) { + _skipBitArray[i]=br.read()>0?true:false; + } + + UseDuplicateWordFilter=br.read()>0?true:false; + UseBlacklistFilter=br.read()>0?true:false; + length =br.read(); + _blacklist=new int[length]; + for (int i = 0; i < length; i++) { + _blacklist[i]=br.read(); + } + + UseDBCcaseConverter=br.read()>0?true:false; + UseSimplifiedChineseConverter=br.read()>0?true:false; + UseIgnoreCase=br.read()>0?true:false; + } + + public void SetSkipWords(String skipList) + { + + _skipBitArray = new boolean[Character.MAX_VALUE + 1]; + if (skipList == null) { + for (int i = 0; i < _skipList.length(); i++) { + _skipBitArray[_skipList.charAt(i)] = true; + } + } + } + + + public void SetBlacklist(int[] blacklist) throws IllegalArgumentException + { + if (_keywords == null) { + + throw new IllegalArgumentException("请先使用SetKeywords方法设置关键字!"); + } + if (blacklist.length != _keywords.length) { + throw new IllegalArgumentException("请关键字与黑名单列表的长度要一样长!"); + } + + _blacklist = blacklist; + } + + public void SetKeywords(List keywords) + { + Set kws = new HashSet(keywords); + List list=new ArrayList(); + for (String item : kws) { + list.add(ToSenseWord(item)); + } + super.SetKeywords(list); + } + + private Boolean IsEnglishOrNumber(Character c) + { + if (c < 128) { + if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { + return true; + } + } + return false; + } + + private String ToSenseWord(String text) + { + StringBuilder stringBuilder = new StringBuilder(text.length()); + for (int i = 0; i < text.length(); i++) { + stringBuilder.append(ToSenseWord(text.charAt(i))); + } + return stringBuilder.toString(); + } + + private Character ToSenseWord(Character c) + { + + if (UseIgnoreCase) { + if (c >= 'A' && c <= 'Z') return (char) (c | 0x20); + } + if (UseDBCcaseConverter) { + if (c == 12288) return ' '; + if (c >= 65280 && c < 65375) { + Character k =(char) (c - 65248); + if (UseIgnoreCase) { + if ('A' <= k && k <= 'Z') { + k = (char)(k | 0x20); + } + } + return (char)k; + } + } + if (UseSimplifiedChineseConverter) { + if (c >= 0x4e00 && c <= 0x9fa5) { + return Dict.Simplified.charAt(c - 0x4e00); + } + } + return c; + } + + + + + + +} \ No newline at end of file diff --git a/java/ToolGood/Words/IllegalWordsSearchResult.java b/java/ToolGood/Words/IllegalWordsSearchResult.java new file mode 100644 index 0000000..4aa43b5 --- /dev/null +++ b/java/ToolGood/Words/IllegalWordsSearchResult.java @@ -0,0 +1,38 @@ +package ToolGood.Words; + + +public class IllegalWordsSearchResult +{ + public IllegalWordsSearchResult(String keyword, int start, int end, String srcText) + { + Keyword = keyword; + Success = true; + End = end; + Start = start; + SrcString = srcText.substring(Start, end+1); + } + public IllegalWordsSearchResult(String keyword, int start, int end, String srcText, int type) + { + Keyword = keyword; + Success = true; + End = end; + Start = start; + SrcString = srcText.substring(Start, end+1); + BlacklistType = type; + } + + public IllegalWordsSearchResult() + { + Success = false; + Start = 0; + End = 0; + SrcString = null; + Keyword = null; + } + public Boolean Success ; + public int Start; + public int End ; + public String SrcString ; + public String Keyword; + public int BlacklistType ; +} \ No newline at end of file diff --git a/java/ToolGood/Words/internals/Dict.java b/java/ToolGood/Words/internals/Dict.java new file mode 100644 index 0000000..9d18e36 --- /dev/null +++ b/java/ToolGood/Words/internals/Dict.java @@ -0,0 +1,7 @@ +package ToolGood.Words.internals; + +public class Dict{ + public static String Simplified = "一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丢丠両丢丣两严并丧丨丩个丫丬中丮丯丰丱串丳临丵丶丷丸丹为主丼丽举丿乀乁乂乃乄久乆乇么义乊之乌乍乎乏乐乑乒乓乔乕乖乗乘乙乚乛乜九乞也习乡乢乣乤乥书乧乨乩乪乫乬乭乮乯买乱乲乳乴乵乶乷乸乹乺乻乼乽乾乿亀亁乱亃亄亅了亇予争亊事二亍于亏亐云互亓五井亖亗亘亘亚些亜亝亚亟亠亡亢亣交亥亦产亨亩亪享京亭亮亯亰亱亲亳亴亵亶亷亸亹人亻亼亽亾亿什仁仂仃仄仅仆仇仈仉今介仌仍从仏仐仑仒仓仔仕他仗付仙仚仛仜仝仞仟仠仡仢代令以仦仧仨仩仪仫们仭仮仯仰仱仲仳仴仵件价仸仹仺任仼份仾仿伀企伂伃伄伅伆伇伈伉伊汲伌伍伎伏伐休伒伓伔夫伖众优伙会伛伜伝伞伟传伡伢伣伤伥伦伧伨伩伪伫伬伭伮伯估伱伲伳伴伵伶伷伸伹伺伻似伽伾伿佀佁佂佃佄佅但伫布佉佊佋佌位低住佐佑佒体占何佖佗佘余佚佛作佝佞佟你佡佢佣佤佥佦佧佨佩徊佫佬佭佮佯佰佱佲佳佴并佶佷佸佹佺佻佼佽佾使侀侁侂侃侄侅来侇侈侉侊例侌侍侎侏侐侑侒侓侔侕仑侗侘侙侚供侜依侞侟侠価侢侣侤侥侦侧侨侩侪侫侬侭侮侯侰侱侲侳侴侵侣局侸侹侺侻侼侽侾便俀俣系促俄俅俆俇俈俉俊俋俌俍俎俏俐俑俒俓俔俕俖俗俘俙俚俛俜保俞俟侠信俢俣俤俥俦俧俨俩俪俫俬俭修俯俰俱俲俳俴俵俶俷俸俹俺俻俼俽俾俿伥倁倂倃倄倅俩倇倈仓倊个倌倍倎倏倐们倒倓倔倕幸倗倘候倚倛倜倝倞借倠倡倢仿値倥倦倧倨倩倪伦倬倭倮倯倰倱倲倳倴倵倶倷倸倹债倻值倽倾倿偀偁偂偃偄偅偆假偈伟偊偋偌偍偎偏偐偑偒偓偔偕偖偗偘偙做偛停偝偞偟偠偡偢偣偤健偦偧偨偩偪偫偬偭偮偯偰偱偲偳侧侦偶偷偸偹咱偻偼伪偾偿傀傁傂傃傄傅傆傇傈傉傊傋傌傍傎傏傐杰傒傓傔傕伧傗伞备傚傛傜傝傞傟傠傡家傣傤傥傦傧储傩傪傫催佣傮偬傰傱傲传伛债傶伤傸傹傺傻傼傽倾傿僀僁偻僃僄仅僆戮僈佥僊僋僌働僎像僐侨僒僓僔仆僖僗僘僙僚僛僜僝僞僟僠僡僢僣僤侥僦僧偾僩僪僫僬僭僮僯僰雇僲僳僴僵僶僷僸价僺僻僼僽僾僿仪儁侬儃亿当儆儇侩俭儊儋儌儍儎儏傧儑儒儓俦侪儖儗尽儙儚儛儜儝儞偿儠儡儢儣儤儥儦儧儨儩优儫儬儭儮儯儰儱储儳儴儵儶俪罗儹傩傥俨儽儾儿兀允兂元兄充兆凶先光兊克兑免兎兏児兑儿兓兔兕兖兖兘兙党兛兜兝兞兟兠兡兢兣兤入兦内全两兪八公六兮兯兰共兲关兴兵其具典兹兺养兼兽兾兿冀冁冂冃冄内円冇冈冉册冋册再冎冏冐胄冒冓冔冕冖冗冘写冚军农冝冞冟冠冡冢冣冤冥冦冧冨冩幂冫冬冭冮冯冰冱冲决冴况冶冷冸冹冺冻冼冽冾冿净凁凂凃凄凅准凇净凉凊凋凌冻凎减凐凑凒凓凔凕凖凗凘凙凚凛凛凝凞凟几凡凢凣凤凥処凧凨凩凪凫凬凭凮凯凰凯凲凳凴凵凶凷凸凹出击凼函凾凿刀刁刂刃刄刅分切刈刉刊刋刌刍刎刏刐刑划刓刔刕刖列刘则刚创刜初刞刟删刡刢刣判别刦刧刨利删别刬刭刮刯到刱刲刳刴刵制刷券刹刺刻刼刽刾刿剀剁剂剃刭剅剆则剈剉削克剌前刹剏剐剑剒剓剔剕剖剗剘剙剚刚剜剥剞剟剠剡剢剣剤剥剦剧剨剩剪剫剬剭剐副剰剱割剳剀创剶铲剸剹剺剻剼剽剾剿劀劁劂划劄劅劆剧劈刘刽劋刿剑劎劏劐剂劒劓劔劕劖劗劘劙劚力劜劝办功加务劢劣劤劥劦劧动助努劫劬劭劮劯劰励劲劳労劵劶劷劸効劺匡劼劽劾势勀劲勂勃勄勅勆勇勈勉勊勋勌勍勎勏勐勑勒勓勔动勖勖勘务勚勋勜胜劳募勠勡势积勤勥剿勧勨勩勪勫勬勭勮勯勰劢勲勳勴励勶勷劝勹勺匀勼勽勾勿匀匁匂匃匄包匆匇匈匉匊匋匌匍匎匏匐匑匒匓匔匕化北匘匙匚匛匜匝匞匟匠匡匢匣匤匥匦匧匨匩匪匫匬匦匮汇匰匮匲匳匴匵匶匷匸匹区医匼匽匾匿区十卂千卄卅卆升午卉半卋卌卍华协卐卑卒卓协单卖南単卙博卛卜卝卞卟占卡卢卣卤卥卦卧卨卩卪卫卬卭卮卯印危卲即却卵卶卷卸恤卺却卼卽卾卿厀厁厂厃厄厅历厇厈厉厊压厌厍厎厏厐厑厒厓厔厕厖厗厘厍厚厛厜厝厞原厠厡厢厣厤厥厦厧厨厩厪厫厬厌厮厯厰厱厉厳厣厵厶厷厸厹厺去厼厽厾县叀叁参参叄叅叆叇又叉及友双反収叏叐发叒叓叔叕取受变叙叚叛叜叝叞叟叠叡丛口古句另叧叨叩只叫召叭叮可台叱史右叴叵叶号司叹叺叻叼叽叾叿吀吁吂吃各吅吆吇合吉吊寸同名后吏吐向吒吓吔吕吖吗吘吙吚君吜吝吞吟吠吡吢吣吤吥否吧吨吩吪含听吭吮启吰吱吲吴吴吵呐吷吸吹吺吻吼吽吾吿呀呁吕呃呄呅呆呇呈呉告呋呌呍尺呏呐呑呒呓呔呕呖呗员呙呚呛呜呝呞呟呠呡呢呣呤呥呦呧周呩呪呫呬呭呮呯呰呱呲味呴呵呶呷呸呹呺呻呼命呾呿咀咁咂咃咄咅咆咇咈咉咊咋和咍咎咏咐咑咒咓咔咕咖咗咘咙咚咛咜咝咞咟咠咡咢咣咤咥咦咧咨咩咪咫咬咭咮咯咰咱咲咳咴咵咶咷咸咹咺咻呙咽咾咿哀品哂哃哄哅哆哇哈哉哊哋哌响哎哏哐哑哒哓哔哕哖哗哘哙哚哛哜哝哞哟哠员哢哣哤哥哦哧哨哩哪哫哬哭哮哯哰哱哲哳哴哵哶哷哸哹哺哻哼哽哾哿唀唁唂唃呗唅唆唇唈唉唊唋唌唍唎唏唐唑唒唓唔唕唖唗唘唙唚唛唜唝唞唟唠唡唢唣唤唥唦唧唨唩唪唫唬唭售唯唰唱唲唳唴唵唶唷念唹唺唻唼唽唾唿啀啁啂啃啄啅商啇啈啉啊啋啌啍啎问啐啑啒啓啔啕啖啗啘啙啚啛啜啝哑启啠啡啢衔啤啥啦啧啨啩啪啫啬啭啮啯啰啱啲啳啴啵啶啷啸啹啺啻啼啽啾啿喀喁喂喃善喅喆喇喈喉喊喋喌喍喎喏喐喑喒喓喔喕喖喗喘喙唤喛喜喝喞喟喠喡喢喣喤喥喦喧喨喩丧吃乔喭单喯喰喱哟喳喴喵営喷喸喹喺喻喼喽喾喿嗀嗁嗂嗃嗄嗅呛啬嗈嗉嗊嗋嗌嗍吗嗏嗐嗑嗒嗓嗔嗕嗖嗗嗘嗙呜嗛嗜嗝嗞嗟嗠嗡嗢嗣嗤嗥嗦嗧嗨唢嗪嗫嗬嗭嗮嗯嗰嗱嗲嗳嗴嗵哔嗷嗸嗹嗺嗻嗼嗽嗾嗿嘀嘁嘂嘃嘄嘅叹嘇嘈嘉嘊嘋嘌喽嘎嘏嘐嘑嘒嘓呕嘕啧尝嘘嘙嘚嘛唛嘝嘞嘟嘠嘡嘢嘣嘤嘥嘦嘧嘨哗嘪嘫嘬嘭唠啸叽嘱嘲嘳嘴哓嘶嘷呒嘹嘺嘻嘼嘽嘾嘿噀恶噂噃噄噅噆噇噈噉噊噋噌噍噎噏噐噑噒嘘噔噕噖噗噘噙噚噛噜噝噞噟哒噡噢噣噤哝哕噧器噩噪噫噬噭噮嗳噰噱哙噳喷噵噶噷吨当噺噻噼噽噾噿咛嚁嚂嚃嚄嚅嚆吓嚈嚉嚊嚋哜嚍嚎嚏嚐嚑嚒嚓嚔噜嚖嚗嚘啮嚚嚛嚜嚝嚞嚟嚠嚡嚢嚣嚤咽呖嚧咙嚩嚪嚫嚬嚭向嚯嚰嚱嚲喾严嚵嘤嚷嚸嚹嚺嚻嚼嚽嚾嚿啭嗫嚣囃囄冁囆囇呓罗囊囋苏囍囎囏囐嘱囒囓囔囕囖囗囘囙囚四囜囝回囟因囡团団囤囥囦囧囨囩囱囫囬园囮囯困囱囲図围囵囶囷囸囹固囻囼国图囿圀圁圂圃圄圅圆囵圈圉圊国圌围圎圏圐圑园圆圔圕图圗团圙圚圛圜圝圞土圠圡圢圣圤圥圦圧在圩圪圫圬圭圮圯地圱圲圳圴圵圶圷圸圹场圻圼圽圾圿址坁坂坃坄坅坆均坈坉坊坋坌坍坎坏坐坑坒坓坔坕坖块坘坙坚坛坜坝坞坟坠坡坢坣坤坥坦坧坨坩坪坫坬坭坮坯垧坱坲坳坴坵坶坷坸坹坺坻坼坽坾坿垀垁垂垃垄垅垆垇垈垉垊型垌垍垎垏垐垑垒垓垔垕垖垗垘垙垚垛垜垝垞垟垠垡垢垣垤垥垦垧垨垩垪垫垬垭垮垯垰垱垲垳垴垵垶垷垸垹垺垻垼垽垾垿埀埁埂埃埄埅埆埇埈埉埊埋埌埍城埏埐埑埒埓埔埕埖埗埘埙埚埛埜埝埞域埠垭埢埣埤埥埦埧埨埩埪埫埬埭埮埯埰埱埲埳埴埵埶执埸培基埻埼埽埾埿堀堁堂堃堄坚堆堇堈堉垩堋堌堍堎堏堐堑堒堓堔堕堖堗堘堙堚堛堜埚堞堟堠堡堢堣堤堥堦堧堨堩堪堫堬堭堮尧堰报堲堳场堵堶堷堸堹堺堻堼堽堾碱塀塁塂塃塄塅塆塇塈塉块茔塌塍塎垲塐塑埘塓塔塕塖涂塘塙塚塛塜塝塞塟塠塡坞塣埙塥塦塧塨塩塪填塬塭塮塯塰塱塲塳塴尘塶塷塸堑塺塻塼塽塾塿墀墁墂境墄墅墆墇墈墉垫墋墌墍墎墏墐墒墒墓墔墕墖増墘墙墚墛坠墝增墟墠墡墢墣墤墥墦墧墨墩墪墫墬墭堕墯墰墱墲坟墴墵墶墷墸墹墺墙墼墽垦墿壀壁壂壃壄壅壆坛壈壉壊壋壌壍埙壏壐壑壒压壔壕壖壗垒圹垆壛壜壝坏垄壠壡坜壣壤壥壦壧壨坝壪士壬壭壮壮声壱売壳壴壵壶壷壸壹壶壻壼寿壾壿夀夁夂夃处夅夆备夈変夊夋夌复夎夏夐夑夒夓夔夕外夗夘夙多夛夜夝夞够够夡梦夣夤夥夦大夨天太夫夬夭央夯夰失夲夳头夵夶夷夸夹夺夻夼夽夹夿奀奁奂奃奄奅奆奇奈奉奊奋奌奍奎奏奂契奒奓奔奕奖套奘奙奚奛奜奝奞奟奠奡奢奣奤奥奦奥奨奁夺奫奬奭奋奯奰奱奲女奴奵奶奷奸她奺奻奼好奾奿妀妁如妃妄妅妆妇妈妉妊妋妌妍妎妏妐妑妒妓妔妕妖妗妘妙妚妛妜妆妞妟妠妡妢妣妤妥妦妧妨妩妪妫妬妭妮妯妰妱妲你妴妵妶妷妸妹妺妻妼妽妾妿姀姁姂姃姄姅姆姇姈姉姊始姌姗姎姏姐姑姒姓委姕姖姗姘姙姚姛姜姝姞姟姠姡姢姣姤姥奸姧姨姩侄姫姬姭姮姯姰姱姲姳姴姵姶姷姸姹姺姻姼姽姾姿娀威娂娃娄娅娆娇娈娉娊娋娌娍娎娏娐娑娒娓娔娕娖娗娘娙娚娱娜娝娞娟娠娡娢娣娤娥娦娧娨娩娪娫娬娭娮娯娰娱娲娳娴娵娶娷娸娹娺娻娼娽娾娿婀娄婂婃婄婅婆婇婈婉婊婋婌婍婎婏婐婑婒婓婔婕婖婗婘婙婚婛婜婝婞婟婠婡婢婣婤婥妇婧婨婩婪婫婬娅婮婯婰婱婲婳婴婵婶婷婸婹婺婻婼婽婾婿媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媒媓媔媕媖媗媘媙媚媛媜媝媞媟媠媡媢媣媤媥媦娲媨媩媪媫媬媭媮妫媰媱媲媳媴媵媶媷媸媹媺媻媪妈媾媿嫀嫁嫂嫃嫄嫅嫆嫇嫈嫉嫊嫋嫌嫍嫎嫏嫐嫑嫒嫓嫔嫕嫖妪嫘嫙嫚嫛嫜嫝嫞嫟嫠嫡嫢嫣嫤嫥嫦嫧嫨嫩嫪嫫嫬嫭嫮嫯嫰嫱嫲嫳嫴妩嫶嫷嫸嫹嫺娴嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇娆嬉嬊婵娇嬍嬎嬏嬐嬑嬒嬓嬔嬕嬖嬗嬘嫱嬚嬛嬜袅嬞嬟嬠嫒嬢嬣嬷嬥嬦嬧嬨嬩嫔嬫嬬嬭嬮嬯婴嬱嬲嬳嬴嬵嬶嬷婶嬹嬺嬻嬼嬽嬾嬿孀孁孂娘孄孅孆孇孈孉孊孋娈孍孎孏子孑孒孓孔孕孖字存孙孚孛孜孝孞孟孠孡孢季孤孥学孧孨孩孪孙孬孭孮孯孰孱孲孳孴孵孶孷学孹孺孻孼孽孾孪宀宁宂它宄宅宆宇守安宊宋完宍宎宏宐宑宒宓宔宕宖宗官宙定宛宜宝实実宠审客宣室宥宦宧宨宩宪宫宬宭宫宯宰宱宲害宴宵家宷宸容宺宻宼宽宾宿寀寁寂寃寄寅密寇寈寉寊寋富寍寎寏寐寑寒寓寔寕寖寗寘寙寚寛寜寝寞察寠寡寝寣寤寥实宁寨审寪写宽寭寮寯寰寱寲寳寴宠宝寷寸对寺寻导寽対寿尀封専尃射尅将将专尉尊寻尌对导小尐少尒尓尔尕尖尗尘尙尚尛尜尝尞尟尠尡尢尣尤尥尦尧尨尩尪尫尬尭尮尯尰就尲尳尴尵尶尴尸尹尺尻尼尽尾尿局屁层屃屄居届屇屈屉届屋屌屍屎屏屐屑屒屓屔展屖屗屘屙屚屛屉扉属屟屠屡屡屣层履屦屧屦屩屪屫属屭屮屯屰山屲屳屴屵屶屷屸屹屺屻屼屽屾屿岀岁岂岃岄岅岆岇岈岉岊岋岌岍岎岏岐岑岒岓岔岕岖岗岘岙岚岛岜岝岞岟岠冈岢岣岤岥岦迢岨岩岪岫岬岭岮岯岰岱岲岳岴岵岶岷岸岹岺岻岼岽岾岿峀峁峂峃峄峅峆峇峈峉峊峋峌峍峎峏峐峑峒峓峔峕峖峗峘峙峚峛峜峝峞峟峠峡峢峣峤峥峦峧峨峩峪峫峬峭峮峯峰峱峲峳岘峵岛峷峸峹峺峻峼峡峾峿崀崁崂崃崄崅崆崇崈崉崊崋崌崃崎崏崐崑崒崓崔崕崖岗崘仑崚崛崜崝崞崟岽崡峥崣崤崥崦崧崨崩崪崫崬崭崮崯崰崱崲嵛崴崵崶崷崸崹崺崻崼崽崾崿嵀嵁嵂嵃嵄嵅嵆嵇嵈嵉嵊嵋嵌嵍嵎嵏岚嵑岩嵓嵔嵕嵖嵗嵘嵙嵚嵛嵜嵝嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵩嵪嵫嵬嵭嵮嵯嵰嵱嵲嵳嵴嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嵝嶂嶃崭嶅嶆岖嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖崂嶘嶙嶚嶛嶜嶝嶞嶟峤嶡嶢嶣嶤嶥嶦峄嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶷嵘嶹岭嶻屿岳嶾嶿巀巁巂巃巄巅巆巇巈巉巊岿巌巍巎巏巐漓峦巓巅巕岩巗巘巙巚巛巜川州巟巠巡巢巣巤工左巧巨巩巪巫巬巭差巯巯己已巳巴巵巶巷巸卺巺巻巼巽巾巿帀币市布帄帅帆帇师帉帊帋希帍帎帏帐帑帒帓帔帕帖帗帘帙帚帛帜帝帞帟帠帡帢帣帤帅带帧帨帩帪师帬席帮帯帰帱帲帐帴帵带帷常帹帺帻帼帽帾帿帧幁幂帏幄幅幆幇幈幉幊幋幌幍幎幏幐幑幒幓幔幕幖帼帻幙幚幛幜幝幞帜幠幡幢币幤幥幦幧幨幩幪帮帱幭幮幯幰幱干平年幵并幷幸干幺幻幼幽几广庀庁仄広庄庅庆庇庈庉床庋庌庍庎序庐庑庒库应底庖店庘庙庚庛府庝庞废庠庡庢庣庤庥度座庨庩庪库庬庭庮庯庰庱庲庳庴庵庶康庸庹庺庻庼庽庾庿廀厕厢廃厩廅廆廇厦廉廊廋廌廍廎廏廐廑廒廓廔廕廖廗廘廙厨廛廜厮廞庙厂庑废广廤廥廦廧廨廪廪廫庐廭廮廯廰痈廲厅廴廵延廷廸廹建廻廼廽廾廿开弁异弃弄弅弆弇弈弉弊弋弌弍弎式弐弑弑弓吊引弖弗弘弙弚弛弜弝弞弟张弡弢弣弤弥弦弧弨弩弪弫弬弭弮弯弰弱弲弪弴张弶强弸弹强弻弼弽弾弿彀彁彂彃彄彅别彇弹彉强彋弥彍弯彏彐彑归当彔录彖彗彘汇彚彛彜彝彞彟彠彡形彣彤彦彦彧彨彩彪雕彬彭彮彯彰影彲彳彴彵彶彷彸役彺彻彼彽彾佛往征徂徃径待徆徇很徉徊律後徍徎徏徐径徒従徔徕徖得徘徙徚徛徜徝从徟徕御徢徣徤徥徦徧徨复循徫旁徭微徯徰徱徲徳徴徵徶德徸彻徺徻徼徽徾徿忀忁忂心忄必忆忇忈忉忊忋忌忍忎忏忐忑忒忓忔忕忖志忘忙忚忛応忝忞忟忠忡忢忣忤忥忦忧忨忩忪快忬忭忮忯忰忱忲忳忴念忶忷忸忹忺忻忼忽忾忿怀态怂怃怄怅怆怇怈怉怊怋怌怍怎怏怐怑怒怓怔怕怖怗怘怙怚怛怜思怞怟怠怡怢怣怤急怦性怨怩怪怫怬怭怮怯怰怱怲怳怴怵怶怷怸怹怺总怼怽怾怿恀恁恂恃恄恅恒恇恈恉恊恋恌恍恎恏恐恑恒恓恔恕恖恗恘恙恚恛恜恝恞恟恠恡恢恣恤耻恦恧恨恩恪恫恬恭恮息恰恱恲恳恴恵恶恷恸恹恺恻恼恽恾恿悀悁悂悃悄悦悆悇悈悉悊悋悌悍悎悏悐悑悒悓悔悕悖悗悘悙悚悛悜悝悞悟悠悡悢患悤悥悦悧您悩悪悫悬悭悮悯悰悱悲悳悴怅闷悷悸悹悺悻悼凄悾悿惀惁惂惃惄情惆惇惈惉惊惋惌惍惎惏惐惑惒惓惔惕惖惗惘惙惚惛惜惝惞惟惠恶惢惣惤惥惦惧惨惩惪惫惬惭惮惯惰恼恽想惴惵惶惷惸惹惺恻惼惽惾惿愀愁愂愃愄愅愆愇愈愉愊愋愌愍愎意愐愑愒愓愔愕愖愗愘愙愚爱惬愝愞感愠愡愢愣愤愥愦愧悫愩愪愫愬愭愮愯愰愱愲愳怆愵愶恺愸愹愺愻愼愽忾愿慀慁慂慃栗慅慆殷慈慉慊态慌愠慎慏慐慑慒慓慔慕慖慗惨慙惭慛慜慝慞恸慠慡慢惯慤慥慦慧慨慩怄怂慬慭虑慯慰慱慲悭慴慵庆慷慸慹慺慻戚慽慾慿憀憁忧憃憄憅憆憇憈憉惫憋憌憍憎憏怜凭愦憓憔憕憖憗憘憙惮憛憜憝憞憟憠憡憢憣愤憥憦憧憨憩憪悯憬憭怃憯憰憱宪憳憴憵忆憷憸憹憺憻憼憽憾憿懀懁懂懃懄懅懆恳懈应懊懋怿檩懎懏懐懑懒懓懔懕懖懗懘懙懚懛懜懝蒙怼懠懡懢懑懤懥懦懧恹懩懪懫懬懭懮懯懰懱惩懳懴懵懒怀悬懹忏懻惧懽慑懿恋戁戂戃戄戅戆戆戈钺戊戋戌戍戎戏成我戒戓戋戕或戗战戙戚戛戜戝戞戟戠戡戢戣戤戥戦戗戨戬截戫戬戭戮戯战戱戏戳戴戵户户戸戹戺戻戼戽戾房所扁扂扃扄扅扆扇扈扉扊手扌才扎扏仂扑扒打扔払扖扗托扙扚扛扜扝扞扟叉扡扦扣扤扥扦执扨扩扪扫扬扭扮扯扰扱扲扳扴扵扶扷扸批抵扻扼扽找承技抁抂拚抄抅擦抇抈抉把抋抌抍殒抏抐抑抒抓抔投抖抗折抙抚抛抜抝択抟抠抡抢抣护报抦抧抨抩抪披抬抭抮抯抰抱抲抳曳抵抶抷抸抹抺抻押抽抾抿拀拁拂拃拄担拆拇拈拉拊抛拌拍拎拏拐拑拒拓拔拕拖拗拘拙拚招拜拝拞拟拠拡拢拣拤拥拦拧拨择拪拫括拭拮拯拰拱拲拳拴拵拶拷拸拹拺拻拼拽拾拿挀持挂挃挄挅挆指挈按挊挋挌挍挎挏挐挑挒挓挔挕挖挗挘挙挚挛挜挝挞挟挠挡挢挣挤挥挦挧挨挩挪挫挬挭挮振挰挱挲挳挴挵局挷挸挹挺挻挼挽挟挿捀捁捂捃捄捅捆捇捈捉捊捋捌扞捎捏捐捑捒捓捔捕捖捗捘捙捚捛捜捝捞损捠捡换捣捤捥捦捧舍捩捪扪捬捭据捯捰捱卷捳捴捵捶捷捸捹捺捻捼捽捾捿掀掁掂扫抡掅掆掇授掉掊掋掌掍掎掏掐掑排掓掔掕掖掗掘挣掚挂掜掝掞掟掠采探掣掤接掦控推掩措掫掬掭掮掯掰掱掲掳掴掵掶掷掸掹掺掻掼掽掾掿拣揁揂揃揄揅揆揇揈揉揊揋揌揍揎描提揑插揓揔揕揖揗揘揙扬换揜揝揞揟揠握揢揣揤揥揦揧揨揩揪揫揬揭挥揯揰揱揲揳援揵揶揷揸背揺揻揼揽揾揿搀搁搂搃搄搅构搇搈搉搊搋搌损搎搏搐搑搒搓搔搕摇捣搘搙搚搛搜搝搞擀搠搡搢搣搤搥搦搧搨搩搪搫搬搭搮搯搰搱搲搳搴搵抢搷搸搹携搻搼搽搾搿摀摁摂摃摄摅摆摇摈摉摊摋摌摍摎摏摐掴摒摓摔摕摖摗摘摙摚摛掼摝摞搂摠摡摢摣摤摥摦摧摨摩摪摫摬摭摮挚摰摱摲抠摴摵抟摷摸摹摺掺摼摽摾摿撀撁撂撃撄撅撆撇捞撉撊撋撌撍撎撏撑撑撒挠撔撕撖撗撘撙捻撛撜撝撞挢撠撡掸掸撤拨撦撧撨撩撪抚撬播撮撯撰撱扑揿撴撵撶撷撸撹撺挞撼撽挝捡擀拥擂擃掳擅擆择擈擉击挡擌操擎擏擐擑擒擓担擕擖擗擘擙据擛擜擝擞擟挤擡擢捣擤擥擦擧擨擩擪擫拟擭擮摈拧搁掷擳扩擵擶撷擸擹摆擞撸擽扰擿攀攁攂攃摅攅撵攇攈攉攊攋攌攍攎拢攐攑攒攓拦攕撄攗攘搀攚撺携摄攞攟攠攡攒挛摊攥攦攧攨攩搅攫揽攭攮支攰攱攲攳攴攵收考攸改攺攻攼攽放政敀敁敂敃敄故敆敇效敉敊敋敌敍敎敏敐救敒敓敔敕敖败叙教敚敛敜敝敞敟敠敡敢散敤敥敦敧敨敩敪敫敬敭敮敯数敱敲敳整敌敶敷数敹敺敻敼敽敾敿斀斁敛毙斄斅斆文斈斉斊斋斌斍斎斏斐斑斒斓斔斓斖斗斘料斚斛斜斝斞斟斠斡斢斣斤斥斦斧斨斩斪斫斩断斮斯新斱斲斳斴斵斶断斸方斺斻於施斾斿旀旁旗旃旄旅旆旇旈旉旊旋旌旍旎族旐旑旒旓旔旕旖旗旘旙旚旛旜旝旞旟无旡既旣旤日旦旧旨早旪旫旬旭旮旯旰旱旲旳旴旵时旷旸旹旺旻旼旽旾旿昀昁昂昃昄昅昆昇昈昉昊昋昌昍明昏昐昑昒易昔昕昖昗昘昙昚昛昜昝昞星映昡昢昣昤春昦昧昨昩昪昫昬昭昮是昰昱昲昳昴昵昶昷昸昹昺昻昼昽显昿晀晁时晃晄晅晆晇晈晋晊晋晌晍晎晏晐晑晒晓晔晕晖晗晘晙晚晛晜昼曦晟晠晡晢晣晤晥晦晧晨晩晪晫晬晭普景晰晱晲晳晴晵晶晷晸晹智晻晼晽晾晿暀暁暂暃暄暅暆暇晕晖暊暋暌暍暎暏暐暑暒暓暔暕暖暗阳暙暚暛暜暝暞暟暠暡畅暣暤暥暦暧暨暩暪暂暬暭暮暯暰昵暲暳暴暵暶暷了暹暺暻暼暽暾暿曀曁曂曃晔曅历昙曈晓曊曋曌曍曎曏曐曑曒曓曔曕暧曗曘曙曚曛曜曝曞曟旷曡曢曣曤曥曦曧曨曩曪曫晒曭曮曯曰曱曲曳更曵曶曷书曹曺曻曼曽曾替最朁朂会朄朅朆朇月有朊朋朌服朎朏朐朑朒朓朔朕朖朗朘朙朚望朜朝朞期朠朡朢朣朤朥朦胧木朩未末本札术术朰朱朲朳朴朵朶朷朸朹机朻朼朽朾朿杀杁杂权杄杅杆圬杈杉杊杋杌杍李杏材村杒杓杔杕杖杗杘杙杚杛杜杝杞束杠条杢杣杤来杦杧杨杩杪杫杬杭杮杯杰东杲杳杴杵杶杷杸杹杺杻杼杽松板枀极枂枃构枅枆枇枈枉枊枋枌枍枎枏析枑枒枓枔枕枖林枘栀枚枛果枝枞枟枠枡枢枣枤枥枦枧枨枩枪枫枬枭枮枯枰枱枲枳拐枵架枷枸枹枺枻枼枽枾枿柀柁柂柃柄柅柆柇柈柉柊柋柌柍柎柏某柑柒染柔柕柖柗柘柙柚柛柜柝柞柟柠柡柢柣柤查柦柧柨柩柪柫柬柭柮柯柰柱柲柳柴栅柶柷柸柹柺査柼柽柾柿栀栁栂栃栄栅栆标栈栉栊栋栌栍栎栏栐树栒栓栔栕栖栗栘栙栚栛栜栝栞栟栠校栢栣栤栥栦栧栨栩株栫栬栭栮栯栰栱栲栳栴栵栶样核根栺栻格栽栾栿桀桁桂桃桄桅框桇案桉桊桋桌桍桎桏桐桑桒桓桔桕桖桗桘桙桚桛桜桝桞桟桠桡桢档桤桥桦桧桨桩桪桫桬桭桮桯桰桱桲桳桴桵桶桷桸桹桺桻桼桽桾杆梀梁梂梃梄梅梆梇梈梉梊梋梌梍梎梏梐梑梒梓栀梕梖梗梘梙梚梛梜条梞枭梠梡梢梣梤梥梦梧梨梩梪梫梬梭梮梯械梱梲梳梴梵梶梷梸梹梺梻梼梽梾梿检棁棂棃弃棅棆棇棈棉棊棋棌棍棎棏棐棑棒棓棔棕枨枣棘棙棚棛棜棝棞栋棠棡棢棣棤棥棦栈棨棩棪棫棬棭森棯棰棱栖棳棴棵棶棷棸棹棺棻棼棽棾棿椀椁椂椃椄椅椆椇椈椉椊椋椌植椎桠椐椑椒椓椔椕椖椗椘椙椚椛検椝椞椟椠椡椢椣椤椥椦椧椨椩椪椫椬椭椮椯椰椱椲椳椴椵椶椷椸椹椺椻椼椽椾椿楀楁楂楃楄楅楆楇楈楉杨楋楌楍楎楏楐楑楒枫楔楕楖楗楘楙楚楛楜楝楞楟楠楡楢楣楤楥楦楧桢楩楪楫楬业楮楯楰楱楲楳楴极楶楷楸楹楺楻楼楽楾楿榀榁概榃榄榅榆榇榈榉榊榋榌榍榎榏榐榑榒榓榔榕榖榗榘榙榚榛榜榝榞榟榠榡榢榣榤榥干榧榨榩杩榫榬榭荣榯榰榱榲榳榴榵榶榷榸榹榺榻榼榽榾桤槀槁槂盘槄槅槆槇槈槉槊构槌枪槎槏槐槑槒杠槔槕槖槗様槙槚槛槜槝槞槟槠槡槢槣槤槥槦椠椁槩槪槫槬槭槮槯槰槱槲桨槴槵槶槷槸槹槺槻槼槽槾槿樀桩乐樃樄枞樆樇樈樉樊樋樌樍樎樏樐梁樒楼樔樕樖樗樘标樚樛樜樝枢樟樠模樢样樤樥樦樧樨権横樫樬樭樮樯樰樱樲樳樴樵樶樷朴树桦樻樼樽樾樿橀橁橂橃橄橅橆橇桡橉橊桥橌橍橎橏橐橑橒橓橔橕橖橗橘橙橚橛橜橝橞机橠橡椭橣橤橥橦橧橨橩橪横橬橭橮橯橰橱橲橳橴橵橶橷橸橹橺橻橼橽橾橿檀檩檂檃檄檅檆檇檈柽檊檋檌檍檎檏檐檑檒檓档檕檖檗檘檙檚檛桧檝檞檟檠檡检樯檤檥檦檧檨檩檪檫檬檭檮台檰檱檲槟檴檵檶檷柠檹檺槛檼檽檾檿櫀櫁櫂柜櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒橹櫔櫕櫖櫗櫘櫙榈栉櫜椟橼栎櫠櫡櫢櫣櫤橱櫦槠栌櫩枥櫫榇櫭櫮櫯櫰櫱櫲栊櫴櫵櫶櫷榉櫹棂樱櫼櫽櫾櫿欀欁欂欃栏欅欆欇欈欉权欋欌欍欎椤欐欑栾欓欔欕榄欗欘欙欚欛欜欝棂欟欠次欢欣欤欥欦欧欨欩欪欫欬欭欮欯欰欱欲欳欴欵欶欷欸欹欺欻欼钦款欿歀歁歂歃歄歅歆歇歈歉歊歋歌歍叹歏欧歑歒歓歔歕歖歗歘歙歚歛歜歝歞欤歠欢止正此步武歧歨歩歪歫歬歭歮歯歰歱岁歳歴歵歶历归歹歺死歼歽歾殁殀殁殂殃殄殅殆殇殈殉殊残殌殍殎殏殐殑殒殓殔殕殖殗残殙殚殛殜殝殒殟殠殡殢殣殇殥殦殧殨殩殪殚殬殭殓殡殰殱歼殳殴段殶殷殸殹杀殻壳殽殾殿毁毁毂毃毄毅殴毇毈毉毊毋毋母毎每毐毑毒毓比毕毖毗毘毙毚毛毜毝毞毟毠毡毢毣毤毥毦毧毨毩毪毫球毭毮毯毰毱毲毳毴毵毶毷毸毹毺毻毼毽毾毵氀氁氂氃氄氅氆氇毡氉氊氋氇氍氎氏氐民氒氓气氕氖気氘氙氚氛氜氝氞氟氠氡氢气氤氥氦氧氨氩氪氢氩氭氮氯氰氱氲氲水氵氶氷永氹氺氻氼氽泛氿汀汁求汃汄汅汆汇汈汉汊汋汌丸泛汏汐汑汒汓汔汕汖汗汘污汚汛汜汝汞江池污汢汣汤汥汦汧汨汩汪汫汬汭汮汯汰汱汲汳汴汵汶汷汸汹决汻汼汽汾汿沀沁沂沃沄沅沆沇沈沉沊沋沌沍沎沏沐沑没沓沔沕冲沗沘沙沚沛沜沝沞沟沠没沢沣沤沥沦沧沨沩沪沫沬沭沮沯沰沱沲河沴沵沶沷沸油沺治沼沽沾沿泀况泂泃泄泅泆泇泈泉泊泋泌泍泎泏泐泑泒泓泔法泖泗泘泙泚泛泜泝泞泟泠泡波泣泤泥泦泧注泩泪泫泬泭泮泯泰泱泲泳泴泵泶泷泸泹泺泻泼泽泾泿洀洁洂洃洄洅洆洇洈洉洊洋洌洍洎洏洐洑洒洓洔洕洖洗洘洙洚洛洜洝洞洟洠洡洢洣洤津洦洧洨泄洪洫洬洭洮洯洰洱洲洳洴洵汹洷洸洹洺活洼洽派洿浀流浂浃浄浅浆浇浈浉浊测浌浍济浏浐浑浒浓浔浕浖浗浘浙浚浛浜浝浞浟浠浡浢浣浤浥浦浧浨浩浪浫里浭浮浯浰浱浲浳浴浵浶海浸浃浺浻浼浽浾浿涀涁涂涃涄涅涆泾消涉涊涋涌涍涎涏涐涑涒涓涔涕涖涗涘涙涚涛涜涝涞涟涠涡涢涣涤涥润涧涨涩涪涫涬涭涮涯涰涱液涳涴涵涶涷涸涹涺涻凉涽涾涿淀淁淂淃淄淅淆淇淈淉淊淋淌淍淎淏淐淑凄淓淔淕淖淗淘淙泪淛淜淝淞淟淠淡淢淣淤渌淦淧净淩沦淫淬淭淮淯淰深淲淳淴渊涞混淸淹浅添淼淽淾淿渀渁渂渃渄清渆渇済渉渊渋渌渍渎渏渐渑渒渓渔渕渖渗渘涣渚减渜渝渞渟渠渡渢渣渤渥涡渧渨温渪渫测渭渮港渰渱渲渳渴渵渶渷游渹渺渻渼渽浑渿湀湁湂湃湄湅湆湇湈湉凑湋湌湍湎湏湐湑湒湓湔湕湖湗湘湙湚湛湜湝浈湟湠湡湢湣湤湥湦涌湨湩湪湫湬湭湮汤湰湱湲湳湴湵湶湷湸湹湺湻湼湽湾湿満溁溂溃溄溅溆溇沩溉溊溋溌溍溎溏源溑溒溓溔溕准溗溘溙溚溛溜沟溞溟溠溡溢溣溤溥溦溧溨溩溪温溬溭溮溯溰溱溲溳溴溵溶溷溸溹溺溻湿溽溾溿滀滁滂滃沧灭滆滇滈滉滊滋涤滍荥滏滐滑滒滓滔滕滖滗滘滙滚滛滜滝滞滟滠满滢滣滤滥滦滧滨滩滪滫沪滭滮滞滰滱渗滳滴滵滶卤浒滹滺滻滼滽滚满漀渔漂漃漄漅漆漇漈漉漊漋漌漍漎漏漐漑漒漓演漕漖漗漘漙沤漛漜漝漞漟漠漡汉涟漤漥漦漧漨漩漪漫渍漭漮漯漰漱涨漳漴漵漶漷渐漹漺漻漼漽漾浆潀颍潂潃潄潅潆潇潈潉潊潋潌潍潎潏潐泼潒潓洁潕潖潗潘潙潚潜潜潝潞泻潠潡潢潣润潥潦潧潨潩潪潫潬潭潮浔溃潱潲潳潴潵潶滗潸潹潺潻潼潽潾涠涩澁澂澃澄澅浇涝澈澉澊澋澌澍澎澏澐澑澒澓澔澕澖涧澘澙澚澛澜澝澞澟渑澡澢澣泽澥澦澧澨泶澪澫澬澭浍澯澰淀澲澳澴澵澶澷澸澹澺澻澼澽澾澿激浊濂浓濄濅濆濇濈濉濊濋濌濍濎濏濐濑濒濓濔湿濖濗泞濙濚蒙濜濝濞济濠濡濢濣涛濥濦濧濨濩濪滥濬濭濮濯潍滨濲濳濴濵濶濷濸濹溅濻泺濽滤濿瀀瀁瀂瀃瀄滢渎瀇瀈泻瀊渖瀌瀍瀎浏瀐瀑瀒瀓瀔濒瀖瀗泸瀙瀚瀛瀜沥瀞潇潆瀡瀢瀣瀤瀥瀦泷濑瀩瀪瀫瀬瀭瀮瀯弥瀱潋瀳瀴瀵瀶瀷瀸瀹瀺瀻瀼瀽澜瀿灀灁灂沣滠灅灆灇灈灉灊灋灌灍灎灏灐洒灒灓灔漓灖灗滩灙灚灛灜灏灞灟灠灡灢湾滦灥灦灧灨灩灪火灬灭灮灯灰灱灲灳灴灵灶灷灸灹灺灻灼灾灾灿炀炁炂炃炄炅炆炇炈炉炊炋炌炍炎炏炐炑炒炓炔炕炖炗炘炙炚炛炜炝炞炟炠炡炢炣炤炥炦炧炨炩炪炫炬炭炮炯炰炱炲炳炴炵炶炷炸点为炻炼炽炾炿烀烁烂烃烄烅烆烇烈烉烊烋烌烍烎乌烐烑烒烓烔烕烖烗烘烙烚烛烜烝烞烟烠烡烢烣烤烥烦烧烨烩烪烫烬热烮烯烰烱烲烳烃烵烶烷烸烹烺烻烼烽烾烿焀焁焂焃焄焅焆焇焈焉焊焋焌焍焎焏焐焑焒焓焔焕焖焗焘焙焚焛焜焝焞焟焠无焢焣焤焥焦焧焨焩焪焫焬焭焮焯焰焱焲焳焴焵然焷焸焹焺焻焼焽焾焿煀煁煂煃煄煅煆煇煈炼煊煋煌煍煎煏煐煑炜煓煔煕煖煗煘烟煚煛煜煝煞煟煠煡茕煣煤焕煦照煨烦煪煫炀煭煮煯煰煱煲煳煴煵煶煷煸煹煺煻煼煽煾煿熀熁熂熃熄熅熆熇熈熉熊熋熌熍熎熏熐熑荧熓熔熕熖炝熘熙熚熛熜熝熞熟熠熡熢熣熤熥熦熧熨熩熪熫熬熭熮熯熰热熲熳熴熵熶熷熸熹熺熻熼熽炽熿燀烨燂燃焰燅燆燇灯炖燊燋燌燍燎燏磷燑烧燓燔燕燖燗燘烫燚燛焖燝燞营燠燡燢燣燤燥灿燧燨燩燪燫毁烛燮燯燰燱燲燳烩燵燶燷燸燹燺燻烬燽焘燿爀爁爂爃爄爅爆爇爈爉爊爋爌烁爎爏炉爑爒爓爔爕爖爗爘爙爚烂爜爝爞爟爠爡爢爣爤爥爦爧爨爩爪爫爬争爮爯爰爱爲爳爴爵父爷爸爹爷爻爼爽尔爿牀牁牂牃牄牅墙片版牉牊牋牌牍牎牏牐牑牒牓牔牕牖牗牍牙牚牛牜牝牞牟牠牡牢牣牤牥牦牧牨物瘪牫牬牭牮牯牰牱牲牳抵牵牶牷牸特牺牻牼牵牾牿犀犁犂犃犄犅犆犇犈犉犊犋犌犍犎犏犐犑犒犓犔犕荦犗犘犙犚犁犜犝犞犟犠犡犊犣犤犥犦牺犨犩犪犫犬犭犮犯犰犱犲犳犴犵状犷犸犹犺犻犼犽犾犿状狁狂狃狄狅狆狇狈狉狊狋狌狍狎狏狐狑狒狓狔狕狖狗狘狙狚狛狜狝狞狟狠狡狢狣狤狥狦狧狨狩狪狫独狭狮狯狰狱狲狳狴狵狶狷狸狭狺狻狼狈狾狿猀猁猂猃猄猅猆猇猈猉猊猋猌猍猎猏猐猑猒猓猔猕猖猗猘狰猚猛猜猝猞猟猠猡猢猣猤猥猦猧猨猩猪猫猬猭献猯猰猱猲猳猴猵犹猷猸猹猺狲猼猽猾猿獀獁獂獃狱狮獆獇獈獉獊獋獌獍奖獏獐獑獒獓獔獕獖獗獘獙獚獛獜獝獞獟獠獡獢獣獤獥獦獧独獩狯猃獬獭猕獯狞獱获獳獴猎獶犷兽獹獭献猕獽獾獿猡玁玂玃玄玅兹率玈玉玊王玌玍玎玏玐玑玒玓玔玕玖玗玘玙玚玛玜玝玞玟玠玡玢玣玤玥玦玧珏玩玪玫玬玭玮环现玱玲玳玴玵玶玷玸玹玺玻玼玽玾玿珀珁珂珃珄珅珆珇珈珉珊珋珌珍珎珏珐珑珒珓珔珕珖珗珘珙珚珛珜珝珞珟珠珡珢珣珤珥珦珧珨珩珪珫珬班佩珯珰珱珲珳珴珵珶珷珸珹珺珻珼珽现珿琀琁琂球琄琅理琇琈琉琊琋琌琍琎琏琐琑琒琓琔琕琖琗琘琙琚琛琜琝琞琟琠琡琢琣琤琥琦琧琨琩琪琫琬琭琮琯琰琱琲琳琴琵琶琷琸琹珐琻琼琽琾珲瑀瑁瑂瑃瑄瑅瑆瑇瑈瑉瑊玮瑌瑍瑎瑏瑐瑑瑒瑓瑔瑕瑖瑗瑘瑙瑚瑛瑜瑝瑞瑟瑠瑡瑢琐瑶瑥瑦瑧瑨莹玛瑫瑬瑭瑮琅瑰瑱瑲瑳瑴瑵瑶瑷瑸瑹瑺瑻瑼瑽瑾瑿璀璁璂璃璄璅璆璇璈琏璊璋璌璍璎璏璐璑璒璓璔璕璖璗璘璙璚璛璜璝璞璟璠璡璢玑璤璥瑷璧璨璩璪璫璬璭璮璯环璱璲璳璴璵璶璷璸璹璺璻璼玺璾璿瓀瓁瓂瓃瓄瓅瓆瓇瓈瓉琼瓋瓌瓍瓎珑瓐瓑瓒瓓璎瓕镶瓗瓘瓙瓒瓛瓜瓝瓞瓟瓠瓡瓢瓣瓤瓥瓦瓧瓨瓩瓪瓫瓬瓭瓮瓯瓰瓱瓲瓳瓴瓵瓶瓷瓸瓹瓺瓻瓼瓽瓾瓿甀甁甂甃甄甅甆甇甈甉甊甋瓯甍甎甏甐甑甒甓甔瓮甖甗甘甙甚甛甜甝甞生甠甡产産甤甥苏甧用甩甪甫甬甭甮甯田由甲申甴电甶男甸甹町画甼甽甾甿畀畁畂畃畄畅畆畇畈畉畊畋界畍畎畏畐畑畒畓畔畕畖畗畘留畚畛畜亩畞畟畠畡毕畣畤略畦畧畨畩番画畲畭畮畯异畱畲畳畴畵当畷畸畹畺畻畼畽畾畿疀疁疂疃疄疅疆畴疈疉叠疋疌疍疎疏疐疑疒疓疔疕疖疗疘疙疚疛疜疝疞疟疠疡疢疣疤疥疦疧疨疩疪疫疬疭疮疯疰疱疲疳疴疵疶疷疸疹疺疻疼疽疾痱痀痁痂痃痄病痆症痈痉痊痋痌痍痎痏痐痑痒痓痔痕痖痗痘痉痚痛痜痝痞痟酸痡痢痣痤痥痦痧痨痩痪痫痬痭痮痯痰痱麻麻痴痵痶痷痸痹痹痻痼痽痾痿瘀瘁瘂瘃瘄瘅瘆瘇瘈瘉瘊疯瘌疡瘎瘏瘐瘑瘒痪瘔瘕瘖瘗瘘瘙瘚瘛瘜瘝瘗瘟瘠疮瘢瘣瘤瘥瘦疟瘨瘩瘪瘫瘬瘭瘮瘯瘰瘱瘲瘳瘴瘵瘶瘷瘸瘹瘘瘻瘼瘽瘾瘿癀癁疗癃癄癅痨痫癈瘅癊癋癌癍癎癏癐癑癒癓癔癕癖癗疠癙癚癛癜癝癞瘪癠痴痒癣疖症癦癧癨癞癪癫癣瘿瘾癯痈瘫癫癳癴癵癶癷癸癹発登发白百癿皀皁皂皃的皅皆皇皈皉皊皋皌皍皎皏皐皑皒皓皔皕皖皗皘皙皑皛皜皝皞皟皠皡皢皣皤皥皦皧皨皩皪皫皬皭皮皯疱皱皲皳皴皵皶皷皲皹皱隳皼皽皾皿盀盁盂盃盄盅盆盇盈盉益盋盌盍盎盏盐监盒盓盔盕盖盗盘盙盚盛盗盝盏盟盠尽盢监盘盥盦卢盨盩荡盫盬盭目盯盰盱盲盳直盵盶盷相盹盺盻盼盽盾盿眀省眂眃眄眅眆眇眈眉眊看県眍眎眏眐眑眒眓眔眕眖眗眘眙眚眛眜眝眞真眠眡眢眣眤眦眦眧眨眩眪眫眬眭眮眯眰眱眲眳眴眵眶眷眸眹眺眻眼眽众眿着睁睂睃睄睅睆睇睈睉睊睋睌睍睎困睐睑睒睓睔睕睖睗睘睙睚睛睁睝睐睟睠睡睢督睤睥睦睧睨睩睾睫睬睭睮睯睰睱睲睳睴睵睶睷睸睹睺睻睼睽睾睿瞀瞁瞂瞃瞄瞅瞆眯瞈瞉瞊瞋瞌瞍瞎瞏瞐瞑瞒瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞒瞟瞠瞡瞢瞣瞤瞥瞦瞧瞨瞩瞪瞫瞬了瞮瞯瞰瞱瞲瞳瞴瞵瞶瞷瞸瞹瞺瞻睑瞽瞾瞿矀矁矂矃矄矅矆蒙矈矉矊矋矌矍矎矏矐矑矒胧矔矕矖矗矘矙瞩矛矜矝矞矟矠矡矢矣矤知矦矧矨矩矪矫矬短矮矫矰矱矲石矴矵矶矷矸矹矺矻矼矽矾矿砀码砂砃砄砅砆砇砈砉砊砋砌砍砎砏砐砑砒砓研砕砖砗砘砙砚砛砜砝砞砟砠砡砢砣砤砥砦砧砨砩砪砫砬砭砮砯砰砱炮砳破砵砶砷砸砹砺砻砼砽砾砿础硁硂朱硄硅硆硇硈硉硊硋硌硍硎硏硐硑硒硓硔硕硖硗硘硙硚硛硜硝硞硟硠硡硢硣硖硥硦硧砗硩硪硫硬硭确砚硰硱硲硳硴硵硶硷硸硹硺硻硼硽硾硿碀碁碂碃碄碅碆碇碈碉碊碋碌碍碎碏碐碑碒碓碔碕碖碗碘碙碚碛碜碝碞碟碠碡碢碣碤碥碦碧碨硕碪碫碬砀碮碯碰碱碲碳碴碵碶碷碸碹确碻码碽碾碿磀磁磂磃磄磅磆磇磈磉磊磋磌磍磎磏磐磑磒磓磔磕磖磗磘磙砖磛磜磝磞磟磠磡磢碜磤磥磦碛磨磩磪磫磬磭磮矶磰磱磲磳磴磵磶磷磸磹磺磻磼硗磾磿礀礁礂礃礄礅礆礇礈礉礊礋礌礍础礏礐礑礒礓礔礕礖礗礘碍礚礛礜礝礞礟礠礡礢礣礤礥矿礧礨礩砺砾矾礭礮礯礰砻礲礳礴礵礶礷礸礹示礻礼礽社礿祀祁祂祃祄祆祆只祈祉祊祋祌祍祎祏佑祑祒祓祔秘祖祗祘祙祚祛祜祝神祟祠祡祢祣祤祥祦祧票祩祪祫祬祭祮祯祰祱祲祳祴祵祶祷祸祹祺祻祼祽祾禄禀禁禂禃禄禅禆禇禈禉禊禋禌祸祯福禐禑禒禓禔禕禖禗禘禙禚禛禜禝禞禟禠禡禢禣禤禥御禧禨禩禅禫禬禭礼禯祢祷禲禳禴禵禶禷禸禹禺离禼禽禾秃秀私秂秃秄秅秆秇籼秉秊秋秌种秎秏秐科秒秓秔秕秖秗秘秙秚秛秜秝秞租秠秡秢秣秤秥秦秧秨秩秪秫秬秭秮积称秱秲秳秴秵秶秷秸秹秺移秼秽秾秿稀稁稂稃稄税稆稇秆稉稊程稌稍税稏稐稑稒稓稔稕稖稗稘稙稚稛棱稝稞禀稠稡稢稣稤稥稦稧稨稩稪稫稬稭种稯稰称稲稳稴稵稶稷稸稹稺稻稼稽稾稿谷穁穂穃穄穅穆穇穈穉穊穋稣积颖穏穐穑穒穓穔穕穖穗穘穙穚穛穜穝穞穟穠穑秽穣穤穥穦穧穨稳穪获穬穭穮穯穰穱穲穳穴穵究穷穸穹空穻穼穽穾穿窀突窂窃窄窅窆窇窈窉窊窋窌窍窎窏窐窑窒窓窔窕窖窗窘窙窚窛窜窝窞窟窠窡窢窣窤窥窦窧窨窝洼窫窬窭穷窑窰窱窲窳窴窵窭窷窸窹窥窻窼窽窾窿竀竁竂竃窜窍竆窦竈竉窃立竌竍竎竏竐竑竒竓竔竕竖竗竘站竚竛竜竝竞竟章竡竢竣竤童竦竧竨竩竪竫竬竭竮端竰竱竲竳竴竵竞竷竸竹竺竻竼竽竾竿笀笁笂笃笄笅笆笇笈笉笊笋笌笍笎笏笐笑笒笓笔笕笖笗笘笙笚笛笜笝笞笟笠笡笢笣笤笥符笧笨笩笪笫第笭笮笯笰笱笲笳笴笵笶笷笸笹笺筇笼笽笾笿筀筁筂筃筄筅笔筇筈等筊筋筌笋筎筏筐筑筒筓答筕策筗筘筙筚筛筜筝筞筟筠筡筢筣筤筥筦笕筨筩筪筫筬筭筮筯筰筱筲筳筴筵筶筷筸筹筺筻筼筽签筿简箁箂箃箅箅箆个箈箉箊笺箌箍箎筝箐箑箒箓箔箕箖算箘箙箚箛箜箝箞箟箠管箢箣箤箥箦箧箨箩箪箫箬箭箮箯箰箱箲箳箴箵箶箷箸箹箺箻箼箽箾箿节篁篂篃范篅篆篇篈筑篊箧篌篍篎篏篐篑篒篓篔篕篖篗篘篙篚篛篜篝篞篟筱篡篢篣笃篥篦篧篨筛篪篫篬篭篮篯篰篱篲筚篴篵篶篷篸篹篺篻篼篽篾篿箦簁簂簃簄簅簆簇簈簉簊簋簌篓簎簏簐蓑簒簓簔簕簖簗簘簙簚簛簜簝箪簟簠简簢篑簤簥簦簧簨簩簪箫簬簭簮簯簰簱簲簳簴簵簶檐簸簹簺簻簼签帘簿籀籁籂篮籄籅籆籇籈籉籊籋筹籍籎籏藤籑籒籓籔籕籖籗籘籙籚籛箨籝籞籁笼籡籢籣签龠籦籧籨笾簖籫篱籭箩籯籰籱吁米籴籵籶籷籸籹籺类籼籽籾籿粀粁粂粃粄粅粆粇粈粉粊粋粌粍粎粏粐粑粒粓粔粕粖粗粘粙粚粛粜粝粞粟粠粡粢粣粤粥粦粧粨粩粪粫粬粭粮粯粰粱粲粳粴粤粶粷粸粹粺粻粼粽精粿糀糁糂糃糄糅糆糇糈糉糊糋糌糍糎糏糐糑糒糓糔糕糖糗糘糙糚糛糜糁粪糟糠糡馍糣糤糥糦粮糨糩糪糫糬糭糮糯团糱粝糳籴糵粜糷糸糹糺系糼糽纠糿纪紁纣紃约红纡纥纨纫紊纹紌纳紎紏纽紑紒纾纯纰紖纱紘纸级纷纭紝紞紟素纺索紣紤紥紦紧紨紩紪紫紬紭紮累细绂绁绅紴紵紶紷紸绍绀紻绋紽紾绐绌絁终弦组絅绊絇絈絉絊絋経絍绗絏结絑絒絓絔绝絖絗絘絙絚绦絜絝绞絟絠络绚絣絤絥给絧绒絩絪絫絬絭絮絯絰统丝绦絴絵絶絷絸绢絺絻絼絽絾絿綀绑綂绡綄綅绠綇绨綉綊綋綌綍綎绥綐綑綒经綔綕綖綗綘継続綛综綝缍綟绿綡绸绻綤綥綦綧綨綩綪綫绶维綮綯绾纲网綳缀彩綶綷纶绺绮绽綼绰绫绵緀緁緂緃绲緅緆缁緈緉紧绯緌緍緎総緐緑绪緓緔緕緖缃缄缂线緛緜缉缎緟缔缗緢缘緤緥缌緧编缓緪緫缅緭緮纬緰缑缈緳练緵缏緷緸缇緺致緼緽緾緿縀縁縂縃縄縅縆縇萦缙缢缒縌縍縎縏绉缣縒縓縔縕縖縗縘縙绦缚縜缜缟缛縠縡縢县縤縥縦縧縨縩縪缝縬缡缩演縰纵缧缚纤缦絷缕縸缥縺縻縼总绩縿繀繁繂绷繄缫缪繇襁繉繊繋繌繍繎繏繐繑缯繓织缮繖繗繘繙缭繛繜繝绕繟繠绣缋繣繤繥繦繧繨绳绘系繬茧繮缳缲繱繲缴繴繵繶繷繸绎繺繻继缤缱繿纀纁纂纃纄纅纆纇缬纉纩纋续累纎缠纐纑纒缨才纕纤纗缵纙纚纛缆纝纞纟纠纡红纣纤纥约级纨纩纪纫纬纭纮纯纰纱纲纳纴纵纶纷纸纹纺纻纼纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕绖绗绘给绚绛络绝绞统绠绡绢绣绤绥绦继绨绩绪绫绬续绮绯绰绱绲绳维绵绶绷绸绹绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉缊缋缌缍缎缏缐缑缒缓缔缕编缗缘缙缚缛缜缝缞缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵缶缷缸缹缺缻缼钵缾缿罀罁罂罃罄罅罆罇坛罉罊罋罂罍罎罏罐网罒罓罔罕罖罗罘罙罚罛罜罝罞罟罠罡罢罣罤罥罦罧罨罩罪罫罬罭置罯罚罱署罳罴骂罶罢罸罹罺罻罼罽罾罿羀羁羂羃羄罗罴羇羁羉羊芈羌羍美羏羐羑羒羓羔羕羖羗羘羙羚羛羜羝羞羟羠羡羢羣群羟羦羧羡义羪羫羬羭羮羯羰羱羲羳羴羵羶羷羸羹羺羻羼羽羾羿翀翁翂翃翄翅翆翇翈翉翊翋翌翍翎翏翐翑习翓翔翕翖翗翘翙翚翛翜翝翞翟翠翡翢翣翤翥翦翧翨翩翪翫翬翭翮翯翰翱翲翳翴翵翶翷翸翘翺翻翼翽翾翿耀老耂考耄者耆耇耈耉耊耋而耍耎耏耐端耒耓耔耕耖耗耘耙耚耛耜耝耞耟耠耡耢耣耤耥耦耧耨耩耪耫耧耭耮耯耰耱耲耳耴耵耶耷耸耹耺耻耼耽耾耿聀聁聂聃聄聅聆聇聈聉聊聋职聍聎聏聐聑聒聓联聕圣聗聘聙聚聛聜聝闻聟聠聡聢聣聤聥聦聧聨聩聪聫聬聭聮联聪聱声耸聴聩聂职聸聍聺聻聼听聋聿肀肁肂肃肄肃肆肇肈肉肊肋肌肍肎肏肐肑肒肓肔肕肖肗肘肙肚肛肜肝肞肟肠股肢肣肤肥肦肧肨肩肪肫肬肭肮肯肰肱育肳肴肵肶肷肸肹肺肻肼肽肾肿胀胁胂胃胄胅胆胇胈胉胊胋背胍胎胏胐胑胒胓胔胕胖胗胘胙胚胛胜胝胞胟胠胡胢胣胤胥胦胧胨胩胪胫胬胭胮胯胰胱胲胳胴胵胶胷胸胹胺胻胼能胾胿脀脁脂脃脄胁脆脇脉脉脊脋脌脍脎脏脐脑脒脓脔脕脖脗脘脙脚胫脜脝脞脟脠脡脢唇脤脥脦睃脨修脪脱脬脭脮脯脰脱脲脳脴脵脶脷脸胀脺脻脼脽脾脿腀腁腂腃腄腅腆腇腈腉腊腋腌腍肾腏腐腑腒腓腔腕腖腗腘腙腚腛腜腝腞腟腠脶腢腣腤腥脑腧腨腩腪肿腬腭腮腯腰腱腲脚腴腵腶腷肠腹腺腻腼腽腾腿膀膁膂腽膄膅膆膇膈膉膊膋膌膍膎膏膐膑膒膓膔膕膖膗膘膙肤膛膜膝膞膟胶膡膢膣膤膥膦膧膨腻膪膫膬膭膮膯膰膱膲膳膴膵膶膷膸膹膺膻膼胆脍脓臀臁臂臃臄臅臆臇臈脸臊臋臌脐臎膑臐臑臒臓臔臕臖臗腊臙胪臛臜臝臞脏脔臡臢臣臤卧臦臧临臩自臫臬臭臮臯臰臱臲至致臵臶臷臸臹台臻臼臽臾臿舀舁舂舃舄舅舆与兴举旧舋舌舍舎舏舐舑舒舓舔舕舖舗舘舙舚舛舜舝舞舟舠舡舢舣舤舥舦舧舨舩航舫般舭舮舯舰舱舲舳舴舵舶舷舸船舺舻舼舽舾舿艀艁艂艃艄艅艆艇艈艉艊艋艌艍艎艏艐艑艒艓艔艕艖艗艘舱艚艛艜艝艞艟艠艡艢橹舣艥舰艧艨艩艪舻艬艭艮良艰艰色艳艴艵艶艳艹艹艺艻艼艽艾艿芀芁节芃芄芅芆芇芈芉芊芋芌芍芎芏苄芑芒芓芔芕芖芗芘芙芚芛芜芝芞芟芠芡芢芣芤芥芦芧芨芩芪芫芬芭芮芯芰花芲芳芴芵芶芷芸芹芺刍芼芽芾芿苀苁苂苃苄苅苆苇苈苉苊苋苌苍苎苏苐苑苒苓苔苕苖苗苘苙苚苛苜苝苞苟苠苡苢苣苤若苦苎苨苩苪苫苬苭苮苯苰英苲苳苴苵苶苷苸苹苺苻苼苽苾苿茀茁茂范茄茅茆茇茈茉茊茋茌苟茎茏茐茑茒茓茔茕茖茗茘茙茚茛茜茝茞茟茠茡茢茣茤茥茦茧茨茩茪茫茬茭茮茯茰茱兹茳茴茵茶茷茸茹茺茻茼茽茾茿荀荁荂荃荄荅荆荇荈草荆荋荌荍荎荏荐荑荒荓荔荕荖荗荘荙荚荛荜荝荞荟荠荡荢荣荤荥荦荧荨荩荪荫荬荭荮药荰荱荲荳荴荵荶荷荸荹荺荻荼荽荾荿莀莁莂莃莄莅莆莇莈莉庄莋莌莍莎莏莐莑莒莓莔莕茎莗莘莙莚莛莜莝莞莟莠莡荚莣莤莥莦苋莨莩莪莫莬莭莮莯莰莱莲莳莴莵莶获莸莹莺莻莼莽莾莿菀菁菂菃菄菅菆菇菈菉菊菋菌菍菎菏菐菑菒菓菔菕菖菗菘菙菚菛菜菝菞菟菠菡菢菣菤菥菦菧菨菩菪菫菬菭菮华菰菱菲菳庵菵菶菷菸菹菺菻菼菽菾菿萀萁萂萃萄萅萆苌萈萉莱萋萌萍萎萏萐萑萒萓萔萕萖萗萘萙萚萛萜萝萞萟萠萡萢萣萤营萦萧萨萩萪萫万萭萮萯萰萱萲萳萴莴萶萷萸萹萺萻萼落萾萿葀葁葂葃葄葅葆葇葈叶葊葋葌葍葎葏葐葑荭葓葔葕葖着葘葙葚葛葜葝葞葟葠葡葢董葤葥苇葧葨葩葪葫葬葭葮药葰葱葲葳葴葵葶荤葸葹葺葻葼葽葾葿蒀蒁蒂蒃蒄蒅蒆蒇蒈蒉蒊蒋蒌蒍蒎蒏蒐蒑蒒蒓莳蒕蒖蒗蒘蒙蒚蒛蒜蒝莅蒟蒠蒡蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒯蒰蒱蒲蒳蒴蒵蒶蒷蒸蒹蒺蒻苍蒽蒾蒿荪蓁蓂蓃蓄蓅蓆蓇蓈蓉蓊盖蓌蓍蓎蓏蓐蓑蓒蓓蓔蓕蓖蓗蓘蓙蓚蓛蓜蓝蓞蓟蓠蓡蓢蓣蓤蓥蓦蓧蓨蓩蓪蓫蓬蓭莲苁蓰蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓼荜蓾蓿蔀蔁蔂蔃蔄蔅菱蔇蔈蔉蔊蔋蔌蔍蔎蔏蔐蔑蔒蔓卜蔕蔖蔗蔘蔙蔚蔛蔜蔝蒌蔟蔠蔡蔢蒋蔤葱茑蔧蔨蔩蔪蔫蔬荫蔮蔯蔰蔱蔲蔳蔴蔵蔶蔷蔸蔹蔺蔻蔼蔽蔾蔿蕀荨蕂蕃蕄蕅蒇蕇蕈蕉蕊蕋蕌蕍荞蕏蕐蕑蕒芸蕔莸蕖蕗荛蕙蕚蕛蕜蕝蕞蕟蕠蕡蒉蕣蕤蕥蕦蕧蕨荡芜蕫蕬萧蕮蕯蕰蕱蕲蕳蕴蕵蕶蓣蕸蕹蕺蕻蕼蕽蕾蕿薀薁薂薃薄薅薆薇荟薉蓟薋芗薍薎薏薐姜薒薓蔷薕薖薗薘薙薚薛薜薝薞莶薠薡薢薣薤薥荐槁薨萨薪薫薬薭薮薯薰薱薲薳薴薵薶薷薸薹荠薻薼薽薾薿藀藁藂藃藄藅藆藇藈藉藊藋藌蓝荩藏藐藑藒藓藔藕藖藗藘藙藚藛藜艺藞藟藠藡藢藣藤药藦藧藨藩薮藫藬藭藮藯藰藱藲藳藴藵苈薯藸蔼蔺藻藼藽藾藿蘀蘁蘂蘃蕲蘅芦苏蘈蘉蕴苹蘌蘍蘎蘏蘐蘑蘒蘓蘔蘕蘖蘖蘘蘙藓蘛蘜蘝蔹蘟蘠蘡茏蘣蘤蘥蘦蘧蘨蘩蘪蘫蘬兰蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘸蘹蓠蘻蘼蘽蘾萝虀虁虂虃虄虅虆虇虈虉虊虋虌虍虎虏虐虑虒虓虔处虖虗虘虙虚虚虏虝虞号虠虡虢虣虤虥虦亏虨虩虪虫虬虭虮虯虰虱虲虳虴虵虶虷虸虹虺虻虼虽虾虿蚀蚁蚂蚃蚄蚅蚆蚇蚈蚉蚊蚋蚌蚍蚎蚏蚐蚑蚒蚓蚔蚕蚖蚗蚘蚙蚚蚛蚜蚝蚞蚟蚠蚡蚢蚣蚤蚥蚦蚧蚨蚩蚪蚫蚬蚭蚮蚯蚰蚱蚲蚳蚴蚵蚶蚷蚸蚹蚺蚻蚼蚽蚾蚿蛀蛁蛂蛃蛄蛅蛆蛇蛈蛉蛊蛋蛌蛍蛎蛏蛐蛑蛒蛓蛔蛕蛖蛗蛘蛙蛚蛛蛜蛝蛞蛟蛠蛡蛢蛣蛤蛥蛦蛧蛨蛩蛪蛫蛬蛭蛮蛯蛰蛱蛲蛳蛴蛵蛶蛷蛸蛹蛱蜕蛼蛽蛾蛿蜀蜁蜂蜃蜄蜅蚬蜇蜈蜉蜊蜋蜌蜍蜎蜏蜐蜑蜒蜓蜔蜕蜖蜗蜘蜙蜚蜛蜜蜝蜞蜟蜠蜡蜢蜣蜤蜥蜦蜧蜨蜩蜪蜫蜬蜭蜮蜯蜰蜱蜲蜳蜴蜵蜶蜷蜸蜹蜺蜻蜼蜽蜾蜿蝀蝁蝂蝃蝄蝅蝆蝇蝈蝉蝊蝋蝌蝍蝎蝏蝐蝑蝒蝓蝔蚀蝖蝗蝘蝙蝚蝛蝜蝝蝞蝟蝠蝡蝢蝣蝤蝥虾蝧蝨蝩蝪蝫蝬蝭蝮蝯蝰蝱蝲蝳蝴蝵蝶蝷蜗蝹蝺蝻蝼蝽蝾蝿螀螁螂螃蛳螅螆螇螈螉螊螋螌融螎螏螐螑螒螓螔螕螖螗螘螙螚螛螜螝蚂螟螠螡萤螣螤螥螦螧螨螩螪螫螬螭螮螯螰螱螲螳螴螵螶螷螸螹螺蝼螼螽螾螿蟀蟁蟂蟃蛰蟅蟆蟇蝈蟉蟊蟋蟌蟍蟎蟏蟐蟑蟒蟓蟔蟕蟖蟗蟘蟙蟚蟛蟜蟝蟞蟟蟠蟡蟢虮蟤蟥蟦蟧蟨蟩蟪蟫蝉蟭蟮蛲蟰蟱虫蟳蟴蟵蛏蟷蟸蟹蟺蚁蟼蟽蟾蟿蠀蠁蠂蠃蠄蝇虿蠇蠈蠉蠊蠋蠌蠍蠎蠏蛴蝾蠒蠓蚝蠕蠖蠗蠘蠙蠚蠛蠜蠝蠞蜡蠠蠡蠢蛎蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蛊蠲蠳蠴蠵蚕蠷蠸蠹蠺蛮蠼蠽蠾蠿血衁衂衃衄衅衆衇衈衉蔑衋行衍衎衏衐衑衒术衔衕衖街衘衙衚卫衜冲衞衟衠衡衢衣衤补衦衧表衩衪衫衬衭衮衯衰衱衲衳衴衵衶衷衸只衺衻衼衽衾衿袀袁袂袃袄袅袆袇袈袉袊袋袌袍袎袏袐袑袒袓袔袕袖袗袘袙袚袛袜袝衮袟袠袡袢袣袤袥袦袧袨袩袪被袬袭袮袯袰袱袲袳袴袵袶袷袸袹袺袻袼袽袾袿裀裁裂裃裄装裆裇裈裉袅裋裌裍裎里裐裑裒裓裔裕裖裗裘裙裚裛补装裞裟裠里裢裣裤裥裦裧裨裩裪裫裬裭裮裯裰裱裲裳裴裵裶裷裸裹裺裻裼制裾裿褀褁褂褃褄褅褆复褈褉褊褋褌褍褎褏褐褑褒褓褔褕褖褗褘褙褚褛褜褝褞褟褠褡褢褣褤褥褦褧褨褩褪褫褬褭褮褯褰褱裤裢褴褵褶褷褛褹褺亵褼褽褾褿襀襁襂襃襄襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕袄襗襘襙襚襛襜裣襞襟裆襡襢襣褴襥襦襧襨襩袜襫摆襭襮衬襰襱袭襳襴襵襶襷襸襹襺襻襼襽襾西覀要覂覃覄覅覆覇核覉覊见覌覍覎规覐覑覒觅覔覕视覗觇覙覚覛覜覝覞覟覠觋覢覣覤覥觎覧覨覩亲覫觊覭覮觏覰覱觐観覴覵覶觑覸覹觉覻覼览覾觌观见观觃规觅视觇览觉觊觋觌觍觎觏觐觑角觓筋觕觖觗觘觙觚觛觜觝觞觟觠觡觢解觤觥触觧觨觩觪觫觬觭觮觯觰觱觲觳觞觵觯觷触觹觺觻觼觽觾觿言訁订讣訄訅訆訇计訉讯訋讧訍讨訏讦訑訒训訔讪讫托记訙訚讹訜讶訞讼訠訡欣诀訤讷訦訧訨訩访訫訬设訮訯訰许訲訳诉訵诃訷訸訹诊注证訽訾訿詀诂詂詃詄詅诋詇詈詉詊詋詌詍讵詏诈詑诒詓诏评詖詗诎詙詚诅詜詝词詟咏诩询诣詤詥试詧詨诗詪诧诟诡诠詯诘话该详詴诜詶詷詸詹詺詻诙詽詾诖誀誁誂誃诔诛诓夸誈誉誊誋志认誎誏誐诳诶誓誔诞誖誗诱誙诮誛誜誝语誟诚诫誢诬误诰诵誧诲誩说誫説読誮誯谁誱课誳誴誵谇誷誸诽誺誻谊誽誾调諀諁谄諃谆諅諆谈諈诿諊请諌诤諎诹諐诼谅諓諔諕论谂諘諙諚谀谍諝谝諟諠諡诨諣谔諥谛谐諨諩諪谏諬谕谘諯諰讳諲谙諴諵谌讽诸諹谚諻谖諽诺諿谋谒谓謃誊诌謆謇謈謉谎謋謌謍谜謏谧謑謒謓谑謕谡谤謘谦谥讲謜谢謞謟谣謡謢謣謤謥謦謧谟謩謪谪谬謭謮謯謰謱謲讴謴謵謶謷謸谨謺謻謼謽谩謿譀譁譂譃譄譅譆譇譈证譊譋譌譍谲讥譐譑譒譓譔譕谮譗识谯谭譛谱譝譞噪譠譡譢譣譤譥警譧譨譩譪谵譬譭譮译议譱譲譳谴譵譶护譸譹譺譻譼誉譾譿读讁讂讃讄讅讆讇讈讉变讋讌讍雠讏讐讑谗让讔谰谶讗讘讙赞讛谠讝谳讟讠计订讣认讥讦讧讨让讪讫讬训议讯记讱讲讳讴讵讶讷许讹论讻讼讽设访诀证诂诃评诅识诇诈诉诊诋诌词诎诏诐译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩诪诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谉谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝谞谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶谷谸谹谺谻谼谽谾谿豀豁豂豃豄豅豆豇岂豉豊豋豌豍竖豏丰豑豒豓艳豕豖豗豘豙豚豛豜豝豞豟豠象豢豣豤豥豦豧豨豩豪豫猪豭豮豯豰豱豲豳豴豵豶豷豸豹豺豻豼豽豾豿貀貁貂貃貄貅貆貇貈貉貊貋貌狸貎貏貐貑貒猫貔貕貖貗貘貙貚貛貜贝贞貟负财贡貣貤貥貦贫货贩贪贯责貭貮贮贳貱赀贰贵貵贬买贷貹贶费贴贻貾贸贺贲赂赁贿赅賆资贾賉贼賋賌賍賎賏賐赈赊宾賔赇賖賗賘賙赉賛赐賝赏賟赔赓贤卖贱賥赋赕賨賩质賫账赌賮賯賰賱賲賳赖賵賶賷賸賹赚赙购赛赜賿贀贁贂贃贽赘贆贇赠贉赞贋贌赡贎赢赆贑贒赃贔贕赎赝贘贙贚赣贜贝贞负贠贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐赑赒赓赔赕赖赗赘赙赚赛赜赝赞赟赠赡赢赣赤赥赦赧赨赩赪赫赬赭赮赯走赱赲赳赴赵赶起赸赹赺赻赼赽赾赿趀趁趂趃趄超趆趇趈趉越趋趌趍趎趏趐趑趒趓趔赶趖趗趘赵趚趛趜趝趞趟趠趡趢趣趤趥趦趧趋趩趪趫趬趭趮趯趰趱趱足趴趵趶趷趸趹趺趻趼趽趾趿跀跁跂跃跄跅跆跇跈跉跊跋跌跍跎跏跐跑跒跓跔跕跖跗跘跙跚跛跜距跞跟跠迹跢跣跤跥跦跧跨跩跪跫跬跭跮路跰跱跲跳跴践跶跷跸跹跺跻局跽跾跿踀踁踂踃踄踅踆踇踈踉踊踋踌踍踎踏践踑踒踓踔踕踖踗踘踙踚踛踜踝踞踟踠蜷踢踣踤踥踦踧踨踩踪碰踬踭踮踯踰踱踲踳踊踵踶踷踸踹踺踻踼踽踾踿蹀蹁蹂蹃蹄蹅蹆蹇蹈蹉蹊蹋跄蹍蹎蹏蹐蹑蹒蹓蹔跸蹖蹗蹘蹙蹚蹛蹜蹝蹞蹟跖蹡蹢蹒踪蹥蹦蹧蹨蹩蹪蹫蹬蹭蹮蹯蹰蹱蹲蹳蹴蹵蹶蹷蹸蹹跷蹻蹼蹽蹾蹿躀躁躂躃躄躅躆躇躈趸踌跻躌跃躎躏躐踯跞踬躔蹰躖躗躘躙跹躛躜躝躞躟躠蹑躢躣躤蹿躜躧躨躩躏身躬躭躮躯躰躱躲躳躴躵躶躷躸躹躺躻躼躽躾躿躯軁軂軃軄軅軆軇軈軉车轧轨军軎軏軐軑轩軓轫軕軖軗軘軙軚轭軜軝軞软軠軡転軣軤軥軦軧軨軩軪轸軬軭軮軯軰軱軲軳軴軵軶軷轴轵轺轲轶軽轼軿輀輁輂较輄辂輆辁輈载轾輋輌輍輎輏輐輑辄挽辅轻輖輗輘輙輚辆辎辉辋辍輠輡輢輣輤辊辇輧輨辈轮輫輬輭輮辑輰輱輲辏輴輵輶輷输輹輺辐輼輽辗舆轀轁毂轃辖辕辘轇轈转轊轋轌辙轿轏轐轑轒轓辚轕轖轗轘轙轚轛轜轝轞轰轠辔轹轣轳轥车轧轨轩轪轫转轭轮软轰轱轲轳轴轵轶轷轸轹轺轻轼载轾轿辀辁辂较辄辅辆辇辈辉辊辋辌辍辎辏辐辑辒输辔辕辖辗辘辙辚辛辜辝辞辟辠辡辢辣辤辥办辧辨辩辪辫辬辞辫辩辰辱农辳辴辵辶辷辸边辺辻込辽达辿迀迁迂迃迄迅迤过迈迉迊迋迌迍迎迏运近迒迓返迕迖迗还这迚进远违连迟迠迡迢迣迤迥迦迧迨迩迪迫迬迭迮迯述迱迲迳回迵迶迷迸迹乃迻迼追迾迿退送适逃逄逅逆逇逈选逊逋逌逍逎透逐逑递逓途迳逖逗逘这通逛逜逝逞速造逡逢连逤逥逦逧逨逩逪逫逬逭逮逯逰周进逳逴逵逶逷逸逹逺逻逼逽逾逿遀遁遂遃遄遅遆遇遈遉游运遌遍过遏遐遑遒道达违遖遗遘遥遚遛逊遝递遟远遡遢遣遤遥遦遧遨适遪遫遬遭遮遯遰遱迟遳遴遵遶迁选遹遗遻辽遽遾避邀迈邂邃还邅邆迩邈邉边邋邌邍邎逻逦邑邒邓邔邕邖邗邘邙邚邛邜邝邞邟邠邡邢那邤邥邦邧邨邩邪邫邬邭邮邯邰邱邲邳邴邵邶邷邸邹邺邻邼邽邾邿郀郁郂合郄郅郆郇郈郉郊郋郌郍郎郏郐郑郒郓郔郕郖郗郘郙郚郛郜郝郞郏郠郡郢郣郤郥郦郧部郩郪郫郬郭郮郯郰郱郲郳郴邮郶郷郸郹郺郻郼都郾郿鄀鄁鄂鄃鄄鄅郓鄇鄈乡鄊鄋鄌鄍鄎鄏鄐鄑邹鄓邬鄕郧鄗鄘鄙鄚鄛鄜鄝鄞鄟鄠鄡鄢鄣鄤鄥鄦邓鄨鄩鄪鄫鄬郑鄮鄯邻鄱郸鄳邺鄵郐鄷鄸鄹邝鄻鄼鄽鄾鄿酀酁酂酃酄酅酆酇郦酉酊酋酌配酎酏酐酑酒酓酔酕酖酗酘酙酚酛酜酝酞酟酠酡酢酣酤酥酦酧酨酩酪酫酬酭酮酯酰酱酲酳酴酵酶酷酸酹酺酻酼酽酾酿醀醁醂腌醄醅醆醇醈醉醊醋醌醍醎醏醐醑醒醓醔醕醖醗醘醙醚醛丑醝酝醟醠醡醢醣醤醥醦醧醨醩醪医酱醭醮醯醰醱醲醳醴醵醶醷醸醹醺醻醼醽醾醿酿衅釂酾釄酽釆采釈釉释释里重野量厘金釒钆钇钌釖钊钉钋釚釛釜针釞釟釠釡釢钓钐釥扣钏釨钒釪釫钎釭釮釯釰釱釲釳釴钗釶钍釸钕釺釻釼釽釾釿钯钫鈂鈃钭鈅鈆鈇鈈钠鈊鈋鈌钝鈎鈏钤钣鈒鈓钞钮鈖鈗鈘鈙鈚鈛鈜鈝钧鈟鈠鈡鈢钙鈤钬钛钪鈨鈩鈪鈫鈬鈭铌鈯铈鈱鈲钶铃鈵鈶钴钹铍钰鈻鈼钸铀钿钾鉁鉂鉃鉄钜钻鉇铊铉鉊刨鉌铋鉎鉏鉐铂鉒鉓鉔鉕鉖钳鉘鉙铆铅鉜鉝钺鉟鉠鉡鉢鉣钩鉥钲鉧鉨鉩鉪鉫钼钽鉮鉯鉰鉱鉲鉳鉴鉵鉶鉷铰鉹铒铬鉼鉽鉾铪银銁銂铳銄铜銆銇銈銉銊銋銌銍銎銏銐铣銒铨銔銕铢銗铭銙铫銛衔銝銞銟铑銡銢铷銤铱铟銧铵铥铕铯铐銭銮銯銰銱焊锐銴銵銶销銸锈銺锑锉銽銾銿鋀铝鋂锒鋄锌鋆钡鋈鋉鋊鋋铤鋍鋎铗鋐鋑锋鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜锊鋞锓鋠鋡鋢鋣锄鋥锔鋧锇鋩铺鋫鋬鋭铖锆锂铽鋲鋳鋴鋵鋶鋷锯鋹鋺鋻钢鋽鋾鋿錀锞錂錃录錅锖錇锩錉錊錋錌錍錎錏锥錑锕錓錔锟錖錗锤锱铮锛錜錝錞锬锭錡钱錣錤錥锦錧锚錩錪锡錬錭锢错錰錱録锰錴錵表錷铼錹錺錻錼錽錾錿鍀鍁鍂鍃鍄鍅钔锴鍈鍉链锅鍌镀鍎鍏鍐鍑鍒鍓锷鍕鍖鍗铡鍙鍚锻鍜鍝鍞鍟鍠鍡鍢鍣锸锲鍦鍧鍨鍩鍪鍫锹鍭鍮鍯锾鍱鍲鍳鍴键锶鍷鍸鍹锗鍻鍼鍽锺鍿鎀鎁镁鎃鎄鎅鎆鎇鎈鎉镑鎋鎌鎍鎎鎏鎐鎑鎒鎓熔鎕锁枪镉鎙鎚鎛鎜鎝鎞鎟鎠鎡钨蓥鎤鎥镏铠鎨铩锼鎫镐鎭镇鎯镒鎱鎲镍鎴镓鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂镞鏄鏅鏆镟链鏉鏊鏋镆镙鏎鏏鏐镝鏒鏓鏔鏕鏖铿锵鏙鏚鏛镗镘镛铲鏠镜镖鏣镂鏥鏦鏧錾鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴铧鏶镤鏸镪鏺鏻鏼锈鏾鏿鐀鐁鐂铙鐄鐅鐆鐇鐈铣鐊铴鐌鐍鐎鐏镣鐑铹镦镡鐕鐖鐗钟镫鐚鐛鐜鐝鐞鐟镨鐡鐢鐣鐤鐥鐦鐧镄鐩鐪镌鐬鐭镰鐯鐰鐱镯镭鐴铁鐶鐷铎鐹铛鐻鐼钽鐾镱鑀鑁鑂鑃铸鑅鑆鑇鑈鑉镬鑋镔鑍鑎鑏鑐监鉴鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟铄鑡鑢镳刨鑥鑦鑧鑨鑩鑪鑫鑬镧鑮鑯钥鑱镶鑳鑴鑵鑶镊鑸鑹鑺鑻锣钻銮凿钀钁钂钃钄钅钆钇针钉钊钋钌钍钎钏钐钑钒钓钔钕钖钗钘钙钚钛钜钝钞钟钠钡钢钣钤钥钦钧钨钩钪钫钬钭钮钯钰钱钲钳钴钵钶钷钸钹钺钻钼钽钾钿铀铁铂铃铄铅铆铇铈铉铊铋铌铍铎铏铐铑铒铓铔铕铖铗铘铙铚铛铜铝铞铟铠铡铢铣铤铥铦铧铨铩铪铫铬铭铮铯铰铱铲铳铴铵银铷铸铹铺铻铼铽链铿销锁锂锃锄锅锆锇锈锉锊锋锌锍锎锏锐锑锒锓锔锕锖锗锘错锚锛锜锝锞锟锠锡锢锣锤锥锦锧锨锩锪锫锬锭键锯锰锱锲锳锴锵锶锷锸锹锺锻锼锽锾锿镀镁镂镃镄镅镆镇镈镉镊镋镌镍镎镏镐镑镒镓镔镕镖镗镘镙镚镛镜镝镞镟镠镡镢镣镤镥镦镧镨镩镪镫镬镭镮镯镰镱镲镳镴镵镶长镸镹镺镻镼镽镾长门閁闩闪閄閅闫閇閈闭閊开闶閍闳闰閐闲闲间闵閕閖閗闸閙閚閛閜閝閞閟閠阂関阁合阀閦閧闺闽閪阃阆闾閮閯閰阅閲閳閴閵阊閷閸阉閺阎阏阍阈阌闀闁闂阒闄闅板闇闱闉阔阕阑闍闎闏阗闑闒闓阖阙闯闗闘闙闚闛关闝阚闟闠阐辟闣闤闼闦闧门闩闪闫闬闭问闯闰闱闲闳间闵闶闷闸闹闺闻闼闽闾闿阀阁阂阃阄阅阆阇阈阉阊阋阌阍阎阏阐阑阒阓阔阕阖阗阘阙阚阛阜阝阞队阠阡阢阣阤阥阦阧厄阩阪阫阬阭阮址阰阱防阳阴阵阶阷阸阹阺阻阼阽阾阿陀陁陂陃附际陆陇陈陉陊陋陌降陎陏限陑陒陓陔陕陖陗陉陙陚陛陕陕陞陟陠陡院阵除陥陦陧陨险陪陫陬陭陮陯阴陱陲陈陴陵陶陷陆陹険陻陼阳陾陿隀隁隂隃堤隅隆隇隈陧队隋隌隍阶随隐隑隒隓隔陨隖隗隘隙隚际障隝隞隟隠隡隢隣隤隥隦隧随隩险隫隬隭隮隯隰隐隲隳陇隵隶隷隶隹隺只隼隽难隿雀雁雂雃雄雅集雇雈雉雊隽雌雍雎雏雐雑雒雓雔雕虽雗雘双雚雏杂雝鸡雟雠雡离难雤雥雦雧雨雩雪雫雬雭雮雯雰雱云雳雴雵零雷雸雹雺电雼雽雾雿需霁霂霃霄霅霆震霈霉霊霋霌霍霎霏霐沾霒霓霔霕霖霗霘霙霚霛霜霝霞霟霠霡霢霣溜霥霦雾霨霩霪霫霬霭霮霯霰霱露霳霴霵霶霷霸霹霺霻霼霁霾霿靀靁雳靃霭靅靆靇灵靉靊靋靌靍靎靏靐靑青靓靔靕靖靗靘静靓靛静靝非靟靠靡面靣靤靥腼靧靥革靪靫靬靭靮靯靰靱靲靳靴靵靶靷靸靹靺靻靼靽靾靿鞀鞁鞂鞃鞄鞅鞆鞇鞈鞉鞊鞋鞌鞍鞎巩鞐鞑鞒鞓鞔鞕鞖鞗鞘鞙鞚鞛鞜鞝鞞鞟鞠鞡鞢鞣鞤鞥秋鞧鞨鞩鞪鞫鞬鞭鞮鞯鞰鞱鞲鞳鞴鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀缰韂鞑韄韅千韇韈鞯韊韦韧韍韎韏韐韑韒韩韔韕韖韗韘韪韚韛韬韝韫韟韠韡韢韣韤韥韦韧韨韩韪韫韬韭韮韯韰韱韲音韴韵韶韷韸韹韺韵韼韽韾响頀页顶顷頄项顺顸须頉顼頋颂頍颀颃预顽颁顿頔頕頖颇领頙頚頛颌頝頞頟頠颉頢頣颐頥颏頧頨頩頪頫頬头頮頯颊頱頲頳頴頵頶颔颈颓頺频頼頽頾頿顀顁顂顃顄顅颗顇顈顉顊顋题额颚颜顐顑顒颛顔顕顖顗愿颡顚颠顜顝类顟顠顡颟顣顤颢顦顾顨顩顪颤顬顭顮显颦颅顲颞颧页顶顷顸项顺须顼顽顾顿颀颁颂颃预颅领颇颈颉颊颋颌颍颎颏颐频颒颓颔颕颖颗题颙颚颛颜额颞颟颠颡颢颣颤颥颦颧风颩颪颫颬颭飑飒颰台颲刮颴颵飓颷颸颹扬颻飕颽颾颿飀飁飂飃飘飅飙飇飈飉飊飋飌飍风飏飐飑飒飓飔飕飖飗飘飙飚飞飜飝飞食飠飡饥飣飤飥飦飧飨饨饪饫飬饬飮饭飰飱饮飳饴飵飶飷飸飹飺飻饲饱饰飿餀餁餂饺餄饼餆餇餈饷养餋饵餍餎餏餐饽馁饿餔餕餖餗余餙肴馄餜餝饯餟餠馅餢餣餤餥餦餧馆餩餪餫餬餭餮餯餰餱餲饧餴喂餶餷餸餹餺餻饩馈馏馊饀饁饂馍饄馒饆饇馐馑饊馈馔饍饎饏饐饥饶饓饔饕饖飨饘饙饚饛餍饝馋饟饠饡饢饣饤饥饦饧饨饩饪饫饬饭饮饯饰饱饲饳饴饵饶饷饸饹饺饻饼饽饾饿馀馁馂馃馄馅馆馇馈馉馊馋馌馍馎馏馐馑馒馓馔馕首馗馘香馚馛馜馝馞馟馠馡馢馣馤馥馦馧馨馩馪馫马驭冯馯馰驮馲驰驯馵馶馷馸馹馺馻馼馽馾馿駀驳駂駃駄駅駆駇駈駉駊駋駌駍駎駏驻驽驹駓驵驾駖駗骀驸駚驶駜驼駞驷駠駡骈駣駤駥駦駧駨駩駪駫駬骇駮駯駰骆駲駳駴駵駶駷駸駹駺駻駼駽駾骏騀骋騂騃騄骓騆騇騈騉騊騋騌骒骑骐騐騑騒験騔騕骛騗騘骗騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪骞騬骘骝騯腾騱騲騳騴騵驺骚骟騹騺騻騼騽骡騿蓦骜骖骠骢驱驆驇驈驉骅驋驌骁驎骣驐驑驒驓驔骄驖验驘驙惊驿驜驝驞骤驠驡驴驣骧骥驦驧驨驩骊驫马驭驮驯驰驱驲驳驴驵驶驷驸驹驺驻驼驽驾驿骀骁骂骃骄骅骆骇骈骉骊骋验骍骎骏骐骑骒骓骔骕骖骗骘骙骚骛骜骝骞骟骠骡骢骣骤骥骦骧骨骩骪骫骬骭骮肮骰骱骲骳骴骵骶骷骸骹骺骻骼骽骾骿髀髁髂髃髄髅髆髇髈髉髊髋髌髍髎髅髐髑脏髓体髌髋髗高髙髚髛髜髝髞髟髠髡髢髣髤髥髦髧髨髩髪髫髬髭发髯髰髱髲髳髴髵髶髷髸髹髺髻髼髽髾髿鬀鬁鬂鬃鬄鬅松鬇鬈鬉鬊鬋鬌胡鬎鬏鬐鬑鬒鬓鬔鬕鬖鬗鬘鬙须鬛鬜鬝鬞鬟鬠鬡鬓鬣鬤斗鬦闹哄阋鬪鬫鬬鬭阄鬯鬰郁鬲鬳鬴鬵鬶鬷鬸鬹鬺鬻鬼鬽鬾鬿魀魁魂魃魄魅魆魇魈魉魊魋魌魍魉魏魐魑魒魓魔魕魖魗魇魙鱼魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮鲁魰魱魲魳鲂魵魶鱿魸魹魺魻魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鲐鲍鲋鮓鮔鮕鮖鮗鮘鮙鲒鮛鮜鮝鲕鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鲔鲛鮬鲑鲜鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺鮻鮼鮽鮾鮿鲧鲠鯂鯃鯄鯅鯆鲩鯈鲤鲨鯋鯌鯍鯎鯏鯐鯑鯒鯓鲻鯕鲭鯗鯘鯙鯚鲷鯜鯝鯞鯟鯠鲱鲵鯣鲲鯥鯦鲳鲸鯩鲮鲰鯬鯭鯮鯯鲶鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鲫鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鲽鳇鰊鰋鰌鳅鰎鰏鰐鰑鳆鳃鰔鰕鰖鰗鰘鰙鰚鰛鰜鰝鰞鰟鰠鰡鰢鲥鰤鳏鰦鰧鳎鳐鰪鰫鰬鳍鰮鰯鰰鲢鳌鳓鰴鰵鰶鲦鰸鲣鰺鳗鰼鰽鳔鰿鱀鱁鱂鱃鱄鱅鱆鱇鳕鳖鱊鱋鱌鱍鱎鱏鱐鱑鳟鱓鳝鱕鳜鳞鲟鱙鱚鱛鱜鱝鱞鲎鱠鱡鱢鱣鱤鱥鱦鳢鱨鱩鱪鱫鱬鲚鱮鱯鱰鱱鱲鱳鱴鱵鱶鳄鲈鱹鲡鱻鱼鱽鱾鱿鲀鲁鲂鲃鲄鲅鲆鲇鲈鲉鲊鲋鲌鲍鲎鲏鲐鲑鲒鲓鲔鲕鲖鲗鲘鲙鲚鲛鲜鲝鲞鲟鲠鲡鲢鲣鲤鲥鲦鲧鲨鲩鲪鲫鲬鲭鲮鲯鲰鲱鲲鲳鲴鲵鲶鲷鲸鲹鲺鲻鲼鲽鲾鲿鳀鳁鳂鳃鳄鳅鳆鳇鳈鳉鳊鳋鳌鳍鳎鳏鳐鳑鳒鳓鳔鳕鳖鳗鳘鳙鳚鳛鳜鳝鳞鳟鳠鳡鳢鳣鳤鸟鳦凫鳨鸠鳪鳫鳬鳭鳮鳯鳰鳱鳲凤鸣鳵鸢鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鸩鸨鴈鸦鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鸵鴖鴗鴘鴙鴚鸳鴜鸲鴞鸱鴠鴡鴢鸪鴤鴥鸯鴧鸭鴩鴪鴫鴬鴭鴮鸸鸹鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鸿鴼鴽鴾鸽鵀鵁鸺鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鹃鹆鹁鵔鵕鵖鵗鵘鵙鵚鵛鹈鹅鵞鵟鹄鹉鵢鵣鵤鵥鵦鵧鵨鵩鹌鵫鹏鵭鵮鹎鵰鵱鹊鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁鶂鶃鶄鶅鶆鸫鶈鹑鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鹕鶙鹗鶛鶜鶝鶞鶟鶠鶡鶢鶣鶤鶥鶦鶧鶨鹜鶪鶫鶬鶭鶮莺鶰骞鶲鶳鹤鶵鶶鶷鶸鶹鶺鹘鹣鶽鶾鹚鷀鷁鹞鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鹧鷔鷕鷖鸥鷘鸷鹨鷛鷜鷝鷞鷟鷠鷡鷢鷣鷤鸶鹪鷧鷨鷩鷪鷫鷬鷭鷮鹩鷰鷱鹫鹇鹇鷵鷶鷷鹬鹰鹭鷻鷼鷽鷾鷿鸀鸁鸂鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸬鸖鸗鸘鸙鹦鹳鸜鹂鸾鸟鸠鸡鸢鸣鸤鸥鸦鸧鸨鸩鸪鸫鸬鸭鸮鸯鸰鸱鸲鸳鸴鸵鸶鸷鸸鸹鸺鸻鸼鸽鸾鸿鹀鹁鹂鹃鹄鹅鹆鹇鹈鹉鹊鹋鹌鹍鹎鹏鹐鹑鹒鹓鹔鹕鹖鹗鹘鹙鹚鹛鹜鹝鹞鹟鹠鹡鹢鹣鹤鹥鹦鹧鹨鹩鹪鹫鹬鹭鹮鹯鹰鹱鹲鹳鹴卤鹶鹷鹸咸鹾鹻硷盐鹾鹿麀麁麂麃麄麅麆麇麈麉麊麋麌麍麎麏麐麑麒麓麔麕麖丽麘麙麚麛麜麝麞麟麠麡麢麣麤麦麦麧麨麸麪麫麬麭麮麯麰麱麲麳麴面麶麷麸麹麺麻麽麽麾麿黀黁黂黄黄黅黆黇黈黉黊黋黉黍黎黏黐黑黒黓黔黕黖黗默黙黚黛黜黝点黟黠黡黢黣黤黥黦黧党黩黪黫黬黭黮黯黰黱黪黳霉黵黶黩黸黹黺黻黼黾黾鼋鼀鼁鼂鼃鼄鼅鼆鳌鼈鼍鼊鼋鼌鼍鼎鼏鼐鼑鼒鼓鼔冬鼖鼗鼘鼙鼚鼛鼜鼝鼞鼟鼠鼡鼢鼣鼤鼥鼦鼧鼨鼩鼪鼫鼬鼭鼮鼯鼰鼱鼲鼳鼹鼵鼶鼷鼸鼹鼺鼻鼼鼽鼾鼿齀齁齂齃齄齅齆齇齈齉齐斋齌齍齎齑齐齑齿齓龀齕齖齗齘龅齚齛龇齝齞龃龆龄齢出齤齥龈啮齨齩龊齫龉齭齮齯齰齱龋齳齴齵齶龌齸齹齺齻齼齽齾齿龀龁龂龃龄龅龆龇龈龉龊龋龌龙龎龏庞龑龒龓龚龛龖龗龘龙龚龛龟龝龞龟龠龡龢龣龤龥"; + + +} \ No newline at end of file diff --git a/java/com/example/demo/DemoApplication.java b/java/com/example/demo/DemoApplication.java index 11c9e21..fa956cb 100644 --- a/java/com/example/demo/DemoApplication.java +++ b/java/com/example/demo/DemoApplication.java @@ -10,6 +10,8 @@ import java.util.stream.Stream; import org.springframework.util.StopWatch; +import ToolGood.Words.IllegalWordsSearch; +import ToolGood.Words.IllegalWordsSearchResult; import ToolGood.Words.StringSearch; import ToolGood.Words.StringSearchEx; import ToolGood.Words.WordsSearch; @@ -24,6 +26,7 @@ public class DemoApplication { test_StringSearchEx(); test_WordsSearchEx(); + test_IllegalWordsSearch(); try { test_save_load(); @@ -192,6 +195,46 @@ public class DemoApplication { } } + private static void test_IllegalWordsSearch(){ + String test = "我是中国人"; + List list=new ArrayList(); + list.add("中国"); + list.add("国人"); + list.add("zg人"); + System.out.println("IllegalWordsSearch run Test."); + + IllegalWordsSearch iwords = new IllegalWordsSearch(); + iwords.SetKeywords(list); + + boolean b = iwords.ContainsAny(test); + if(b==false){ + System.out.println("ContainsAny is Error."); + } + + IllegalWordsSearchResult f = iwords.FindFirst(test); + if(f.Keyword.equals( "中国")==false){ + System.out.println("FindFirst is Error."); + } + + List all = iwords.FindAll(test); + if(all.get(0).Keyword.equals("中国")==false){ + System.out.println("FindAll is Error."); + } + if(all.get(1).Keyword.equals("国人")==false){ + System.out.println("FindAll is Error."); + } + if(all.size()!=2){ + System.out.println("FindAll is Error."); + } + + + String str = iwords.Replace(test, '*'); + if(str.equals("我是***")==false ){ + System.out.println("Replace is Error."); + } + } + + private static void test_save_load() throws IOException { String test = "我是中国人"; List list=new ArrayList();