規(guī)則引擎Drools簡明教程_第1頁
規(guī)則引擎Drools簡明教程_第2頁
規(guī)則引擎Drools簡明教程_第3頁
規(guī)則引擎Drools簡明教程_第4頁
規(guī)則引擎Drools簡明教程_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、規(guī)則引擎drools簡明教程什么是droolsdrools 是一個(gè)基于charles forgys的rete算法的,專為java語言所設(shè)計(jì)的規(guī)則引擎。rete算法應(yīng)用于面向?qū)ο蟮慕涌趯⑹够谏虡I(yè)對象的商業(yè)規(guī)則的表達(dá)更為自然。drools是用java寫的,但能同時(shí)運(yùn)行在java和.net上。droolsdrools 被設(shè)計(jì)為可插入式的語言實(shí)現(xiàn)。目前規(guī)則能用java, python和groovy實(shí)現(xiàn)。更為重要的是,drools提供了聲明式程序設(shè)計(jì)(declarative programming),并且使用域描述語言(domain specific languages (dsl)專為你的問題域定義了

2、某種模式的xml, 它已經(jīng)足夠靈活到可以用來描述你的問題域。dsls包含的xml元素(element)和屬性(attribute)代表了問題域中各種要素。這段時(shí)間企業(yè)級java簡直能讓你睡著。有多少j2ee-ejb應(yīng)用程序只是從網(wǎng)頁提取數(shù)據(jù)并把它們存入到數(shù)據(jù)庫中?但開發(fā)者真正應(yīng)該開發(fā)和維護(hù)的卻是他們應(yīng)用程序中復(fù)雜的商業(yè)邏輯。這個(gè)問題不僅僅適用于將要新應(yīng)用,而且漸漸地,也適用于那些長期運(yùn)行的商業(yè)核心應(yīng)用,它們的內(nèi)部邏輯也需要經(jīng)常改變,而且往往要求在一個(gè)非常短的時(shí)間內(nèi)。在以前的文章中,“用drools讓你的商業(yè)邏輯使用框架”,我介紹了drools框架,展示了它如何用來組織復(fù)雜的商業(yè)邏輯。drool

3、用一組簡單的,眾所周知的事物替換了許多纏雜的ifthen表達(dá)式。如果你經(jīng)歷過和商業(yè)客戶的會(huì)議,并為他們提出的想要實(shí)現(xiàn)的東西的復(fù)雜程度搞得頭痛,或許你應(yīng)該考慮一下像drools這樣的規(guī)則引擎了。這篇文章將向你展示如何在企業(yè)級java應(yīng)用中使用drools.一路到底的框架大多數(shù)開發(fā)者都有自己喜愛的框架。無特定順序,它們包括表現(xiàn)層框架(struts, jsf, cocoon和spring),持久化框架(jdo, hibernate, cayenne and entity beans)以及結(jié)構(gòu)框架(ejb, 又是spring, pico和excalibur), 還有其它很多。每種框架都各有所長,給開發(fā)

4、者提供子許多“即開即用”的功能。使用框架來部署應(yīng)用意味著你避免了許多讓人厭煩的細(xì)節(jié),讓你集中注意力到關(guān)鍵之處。到目前為直,在框架所能做的事中仍然有一個(gè)缺口,那就是商業(yè)邏輯沒有框架。像ejb和spring這樣的工具雖好,但它們卻幾乎沒有提及怎么組織你的那些if then語句。把drools加到你的開發(fā)工具箱中意味著現(xiàn)在你可以“一路到底”的使用框架來構(gòu)建你的應(yīng)用程序。圖1顯示了這樣的一個(gè)應(yīng)用圖1. 用于java應(yīng)用的框架這篇文章將基于我們已經(jīng)了解的drools框架的功能,這些功能可以讓我們構(gòu)建這樣的一個(gè)應(yīng)用。我什么時(shí)候應(yīng)該使用規(guī)則引擎?“如果你有一把錘子,那所有的東西都看起來都像釘子”,這句話在軟

5、件工程領(lǐng)域幾乎成了陳詞濫調(diào)了。雖然規(guī)則引擎能解決我們的許多問題,但確實(shí)值得認(rèn)真考慮一下規(guī)則引擎對我們的企業(yè)級java應(yīng)用是否合適。需要問的問題有: 我的應(yīng)用程序有多復(fù)雜?對于那些只是把數(shù)據(jù)從數(shù)據(jù)庫中傳入傳出,并不做更多事情的應(yīng)用程序,最好不要使用規(guī)則引擎。但是,當(dāng)在java中有一定量的商業(yè)邏輯處理的話,可以考慮drools的使用。這是因?yàn)楹芏鄳?yīng)用隨著時(shí)間的推移越來越復(fù)雜,而drools可以讓你輕松應(yīng)對這一切。 我的應(yīng)用的生命周期有多久?這個(gè)問題的正確答案往往是“令人驚訝的長”還記得那些認(rèn)為他們的程序不會(huì)茍活到2000年的大型機(jī)的程序員嗎?使用規(guī)則引擎將會(huì)在中長期得到好處。像這篇文章所展示的那樣

6、,甚至原型都能從drools與靈活方法的組合中獲益,讓“原型系統(tǒng)”轉(zhuǎn)化成生產(chǎn)系統(tǒng)。 我的應(yīng)用需要改變嗎?唯一能確定的是你的需求將會(huì)改變,無論是在開發(fā)過程中或是在開發(fā)完成以后。drools使用一個(gè)或多個(gè)簡單易配的xml文件幫你來應(yīng)對這一切。那么性能呢?如果你正在寫一個(gè)企業(yè)級應(yīng)用,很有可能它會(huì)擴(kuò)展到成百(如果不是成千)的用戶。你已經(jīng)知道現(xiàn)有的java和j2ee應(yīng)用能做到這一點(diǎn),但一個(gè)使用了drools的應(yīng)用對這一壓力的表現(xiàn)如何?答案是:“令人吃驚的好”。大多數(shù)開發(fā)者只是因?yàn)椴辉浮笆Э亍倍蕾囉谒说拇a(比如:某種框架),想想這個(gè):drools不僅可以讓你的應(yīng)用和“傳統(tǒng)”的編程方法一樣快,甚至可以

7、更快,看下面: 避免糟糕的代碼:drools引導(dǎo)開發(fā)者去做“正確的事”。你可以確定你正在寫的代碼是好的,但你的開發(fā)伙伴呢?你可以同樣這樣說嗎?使用框架可以讓你更輕松地寫出更快,更好的代碼。 優(yōu)化過的框架:你有多少次看見商業(yè)邏輯重復(fù)地從數(shù)據(jù)庫中提取相同的信息,從而降低了整個(gè)應(yīng)用的速度?如果正確使用的話,drools不僅僅能夠記住信息,而且還能記住以往使用該信息進(jìn)行測試的結(jié)果,從而大幅提升應(yīng)用的速度。 rete算法:很多次我們并不是真正需要使用“if”條件。被drools實(shí)現(xiàn)的rete算法,可以用一個(gè)優(yōu)化的方法替換掉所有的“ifthen”表達(dá)式。需要重點(diǎn)提及的是:rete算法在使用更多的內(nèi)存來降低

8、運(yùn)行時(shí)延遲方面作了折衷。當(dāng)然這在現(xiàn)代的應(yīng)用服務(wù)器中并不是一個(gè)問題,我們也并不推薦你在移動(dòng)手機(jī)上使用drools!規(guī)則引擎 drools 2 實(shí)例應(yīng)用指南本文給出了如何利用drools來執(zhí)行業(yè)務(wù)規(guī)則實(shí)例。在將這個(gè)例子之前,我先簡單的介紹規(guī)則引擎的工作步驟。1) 加載rul規(guī)則描述腳本:rulebase businessrules = rulebaseloader.loadfromurl(url);2) 設(shè)置傳遞到url腳本的參數(shù)實(shí)例:workingmemory workingmemory = businessrules.newworkingmemory();workingmemory.asser

9、tobject(xxx);3)執(zhí)行規(guī)則:workingmemory.fireallrules(filter); /filter規(guī)則為過慮器rul的語法比較簡單,從以下例子中就能體會(huì)出來,這里不講述了??紤]這樣一種情況,某學(xué)校usst希望招收的學(xué)校其年齡應(yīng)該大于15歲,另外一個(gè)學(xué)校fudan希望其招收的學(xué)生大于18歲.當(dāng)然,不同的學(xué)校對學(xué)生的要求可能不一樣,例如年齡、性別、成績等。如果采用大量的if.else語句寫在業(yè)務(wù)邏輯層,將來隨著學(xué)校招生的要求變化,需要應(yīng)用程序開發(fā)人員,不斷的修改業(yè)務(wù)規(guī)則。現(xiàn)在考慮采用drools來使商務(wù)邏輯從應(yīng)用程序中分離出來。1。首先設(shè)計(jì)一個(gè)student類,包括姓名

10、、年齡、性別、希望就讀學(xué)校。類文件如下:package com.primeton.juxtapose.rule.example;/* 簡單的javabean保存student值。用于存放與學(xué)生相關(guān)的信息。* 包括 姓名、年齡、性別、是否推薦入學(xué)等。* * 根據(jù)學(xué)生的性別、年齡等判斷該學(xué)生是否可以入讀某一學(xué)校。* 如: 某女子學(xué)??赡苤唤邮苄詣e為女的學(xué)生;* 某學(xué)??赡苤唤邮苣挲g大于15歲的學(xué)生入學(xué);* 某女子學(xué)??赡苤唤邮苄詣e為女且年齡大于18歲的學(xué)生入學(xué);* .* * author liuxiang*/public class student /常量public final static s

11、tring yes=yes;public final static string no=no;/內(nèi)部變量private string studentname =null;private int studentage = 0;private string studentsex = null;private string recommend = null;private string schoole = null;/* 設(shè)置學(xué)生姓名* param studentname*/public void setstudentname(string studentname)this.studentname

12、= studentname;/* 獲得學(xué)生姓名* return*/public string getstudentname()return this.studentname;/* 設(shè)置學(xué)生年齡* param studentage*/public void setstudentage(int studentage)this.studentage = studentage;/* 獲得學(xué)生年齡* return*/public int getstudentage()return this.studentage;/* 設(shè)置學(xué)生性別* param studentsex*/public void setst

13、udentsex(string studentsex)this.studentsex = studentsex;/* 獲得學(xué)生性別* return*/public string getstudentsex()return this.studentsex;/* 設(shè)置是否推薦入學(xué)* param recommend*/public void setrecommend(string recommend)this.recommend = recommend;/* 獲得是否推薦入學(xué)* return*/public string getrecommend()return this.recommend;/*

14、設(shè)置孩子希望就讀的學(xué)校* param schoole*/public void setschoole(string schoole)this.schoole = schoole;/* 獲得孩子希望就讀的學(xué)校* return*/public string getschoole()return this.schoole;2。對于業(yè)務(wù)邏輯考慮用一個(gè)簡單得java類來實(shí)現(xiàn),用來模擬執(zhí)行商業(yè)邏輯。類businesslogiclayer,用于模擬商業(yè)邏輯的執(zhí)行。package com.primeton.juxtapose.rule.example;import java.io.ioexception;im

15、port org.drools.droolsexception;import org.drools.integrationexception;import org.drools.rulebase;import org.drools.workingmemory;import org.drools.event.debugworkingmemoryeventlistener;import org.drools.io.rulebaseloader;import org.drools.spi.activation;import org.drools.spi.agendafilter;import org

16、.xml.sax.saxexception;/* 一個(gè)簡單的業(yè)務(wù)邏輯層,用來模擬商業(yè)邏輯。* * author liuxiang*/public class businesslogiclayer private static final string business_rule_file=businessrulesstudent.drl;private static rulebase businessrules = null;/ 設(shè)置過濾條件, 名稱為femaleschoole的規(guī)則將不會(huì)被執(zhí)行。private static agendafilter filter = new agendafi

17、lter()public boolean accept(activation activation)if (activation.getrule().getname().equals(stude)return false;return true; /* 如果還沒有裝載商務(wù)規(guī)則的話就裝載它。* throws ioexception * throws saxexception * throws integrationexception *拋出異常 -通常從這里恢復(fù)*/private static void loadrules() throws integrationexception, saxex

18、ception, ioexception if (businessrules=null)businessrules = rulebaseloader.loadfromurl(com.primeton.juxtapose.rule.example.businesslogiclayer.class.getresource(business_rule_file ) );/* 評價(jià)學(xué)生是否能夠入學(xué)* param stocktobuy* throws exception*/public static void evaluatestudentrecommend(student student) throw

19、s exceptionloadrules();system.out.println( fire all rules );system.out.println( - );workingmemory workingmemory = businessrules.newworkingmemory();workingmemory.addeventlistener(new debugworkingmemoryeventlistener();workingmemory.assertobject(student);workingmemory.fireallrules(filter);/* 測試用例* 測試學(xué)生

20、juxtapose就讀usst學(xué)校 是否符合條件* param args* throws exception*/public static void main(string args) throws exception/businesslayer businesslayer = new businesslayer();student student = new student();student.setschoole(usst);student.setstudentname(juxtapose);student.setstudentage(20);student.setstudentsex(m

21、ale);businesslogiclayer.evaluatestudentrecommend(student);3。 在該類的運(yùn)行時(shí)需要用到規(guī)則的定義,采用xml的方式來描述商務(wù)邏輯中用到的各種規(guī)則。規(guī)則文件businessrulesstudent.drl的定義如下: java.lang.object java.lang.string com.primeton.juxtapose.rule.example.student public static void printstudent(com.primeton.juxtapose.rule.example.student student)s

22、ystem.out.println( student name:+student.getstudentname()+n sudent age: +student.getstudentage() +n student sex:+student.getstudentsex()+n recommend +student.getstudentname()+ to go to schoole +student.getschoole()+: +student.getrecommend();com.primeton.juxtapose.rule.example.student student.getscho

23、ole().equals(usst) !- student.getrecommend() = null - student.getstudentage() 15 student.setrecommend(student.yes); printstudent(student);com.primeton.juxtapose.rule.example.student student.getschoole().equals(fudan) !- student.getrecommend() = null - student.getstudentage() 18 student.setrecommend(

24、student.yes); printstudent(student);在該規(guī)則文件中共設(shè)置了兩個(gè)規(guī)則,其規(guī)則名分別為usstschoole、fudanschoole,前者用于執(zhí)行就讀usst學(xué)校的規(guī)則設(shè)置,其條件為:就讀學(xué)校為 usst,學(xué)生年齡大于15歲,推薦就讀變量為null; 后者fudanschoole規(guī)則用于執(zhí)行就讀fudan學(xué)校的規(guī)則設(shè)置,其條件為:就讀學(xué)校為 fudan,學(xué)生年齡大于8歲,推薦就讀變量為null;4。利用junit進(jìn)行測試。測試類businesslogiclayertest.java包含兩個(gè)測試方法,分別用于執(zhí)行就讀usst和fudan學(xué)校的測試。package

25、 com.primeton.juxtapose.rule.example;import junit.framework.testcase;/* 商務(wù)邏輯的單元測試,* 用于檢測我們的業(yè)務(wù)規(guī)則是否得到了正確的執(zhí)行。* * author liuxiang*/public class businesslogiclayertest extends testcase /* 測試學(xué)生juxtapose就讀usst學(xué)校 是否符合條件* throws exception*/public void testgotousst() throws exception/創(chuàng)建一個(gè)學(xué)生實(shí)例,目標(biāo)就讀學(xué)校為usststude

26、nt student = new student();student.setschoole(usst);student.setstudentname(juxtapose);student.setstudentage(16);student.setstudentsex(male);/運(yùn)行規(guī)則businesslogiclayer.evaluatestudentrecommend(student);/測試該學(xué)生能夠入學(xué) 符合規(guī)則中設(shè)定的條件/asserttrue(student.getrecommend() != null);asserttrue(yes.equals(student.getreco

27、mmend();public void testgotofudan() throws exception/創(chuàng)建一個(gè)學(xué)生實(shí)例,目標(biāo)就讀學(xué)校為usststudent student = new student();student.setschoole(fudan);student.setstudentname(jxta);student.setstudentage(20);student.setstudentsex(male);/運(yùn)行規(guī)則businesslogiclayer.evaluatestudentrecommend(student);/測試該學(xué)生能夠入學(xué) 符合規(guī)則中設(shè)定的條件/assert

28、true(student.getrecommend() != null);asserttrue(yes.equals(student.getrecommend(); 5。執(zhí)行結(jié)果。fire all rules- student name:juxtaposesudent age: 16student sex:malerecommend juxtapose to go to schoole usst: yesfire all rules-student name:jxtasudent age: 20student sex:malerecommend jxta to go to schoole fu

29、dan: yes6。結(jié)論利用drools可以輕松的在系統(tǒng)上線后,通過執(zhí)行規(guī)則的替換、增加、修改。使得商務(wù)邏輯從應(yīng)用程序中分離出來,大幅度的提高了系統(tǒng)的柔韌性、適應(yīng)性,滿足了日益變化的市場需求。如何才能定義出靈活易變的規(guī)則呢?基于該例子,本人理解:這必須要求業(yè)務(wù)bean類(如例子中的student類)具有全面的屬性和豐富的行為,并且行為職責(zé)單一。只有在業(yè)務(wù)類提供的屬性和行為之上,用戶才能根據(jù)需求定義出相應(yīng)的單一規(guī)則;在靈活的單一規(guī)則之上,我們就可以自由的組合我們更為復(fù)雜的規(guī)則來。這樣,即使業(yè)務(wù)規(guī)則需求有了變化,我們就可以修改規(guī)則引擎的規(guī)則條件或規(guī)則組合就可以了,大大避免了修改業(yè)務(wù)的bean類(不

30、能完全避免)。 蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁

31、蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅

32、螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀

33、薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄

34、蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋

35、蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂

36、蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿

37、螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄

38、薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈

39、莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂

40、蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆

41、葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁

42、螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈

43、薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂

44、蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆

45、蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀

46、蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅

47、螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿

48、薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃

49、螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿蒁袈芀莁螀袇羀膄蚆羇肂莀薂羆膅膂蒈羅襖莈莄羄肇膁螃羃腿蒆蠆羂芁艿薅羂羈蒄蒁羈肅芇蝿肀膆蒃蚅聿羋芆薁肈羈蒁蕆蚅膀芄蒃蚄節(jié)蕿螂蚃羂莂蚈螞肄薈薄蟻膆莀蒀蝕艿膃螈蝿羈荿蚄蝿肁膂薀螈芃莇薆螇羃芀蒂螆肅蒅螁螅膇羋蚇螄芀蒄薃袃罿芆葿袃肂蒂蒞袂膄芅螃袁羄蒀蠆袀肆莃薅衿膈蕿

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論