⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨


官方(fāng)論壇
官方(fāng)淘寶(bǎo)
官方(fāng)博客
微信(xìn)公衆号(hào)
點(diǎn)擊聯系(xì)吴工 點(diǎn)擊聯系(xì)周老(lǎo)师(shī)
您的(de)當前(qián)位置:主(zhǔ)页(yè) > FPGA原創 >

温(wēn)度(dù)檢测工程模块(kuài)劃(huà)分(fēn)總(zǒng)結與(yǔ)分(fēn)析(二(èr))

發(fà)布(bù)时(shí)間(jiān):2021-04-15   作者(zhě):王斌 浏覽量(liàng):

承接內(nèi)容一(yī):

4.考慮是(shì)否涉及(jí)指令系(xì)統

本(běn)項目涉及(jí)指令系(xì)統,上(shàng)位機(jī)需要(yào)發(fà)送指令給(gěi)FPGA,進(jìn)而(ér)配置温(wēn)度(dù)傳感(gǎn)器,配置温(wēn)度(dù)報警上(shàng)限和(hé)下(xià)限值,同(tóng)时(shí)可(kě)以(yǐ)發(fà)送指令控制數碼管(guǎn)顯示關(guān)閉,蜂鳴器開(kāi)關(guān)。 因(yīn)此(cǐ),系(xì)統框图(tú)中(zhōng)需要(yào)加入(rù)“寄存器解(jiě)析模块(kuài)”,如(rú)下(xià)图(tú)所(suǒ)示:

 

5.考慮外(wài)圍器件(jiàn)是(shì)否涉及(jí)寄存器配置

本(běn)項目中(zhōng),DS18B20需要(yào)配置內(nèi)部(bù)寄存器,但是(shì)本(běn)項目并沒(méi)有(yǒu)采用(yòng)MDY模板的(de)方(fāng)式(读(dú)取(qǔ)配置寄存器表(biǎo)的(de)方(fāng)式来(lái)对(duì)DS18B20進(jìn)行配置),而(ér)是(shì)通(tòng)过(guò)上(shàng)位機(jī)發(fà)送配置命令,解(jiě)析配置寄存器值再对(duì)DS18B20進(jìn)行配置。

 

6.根(gēn)據(jù)实際情(qíng)況,增加、補充或(huò)者(zhě)拆分(fēn)独立对(duì)應(yìng)模块(kuài),随时(shí)調整

 到(dào)第(dì)6步,根(gēn)據(jù)數據(jù)流向(xiàng),需要(yào)对(duì)模块(kuài)間(jiān)的(de)接口(kǒu)進(jìn)行詳细(xì)分(fēn)析了(le),補充模块(kuài)或(huò)者(zhě)将功能(néng)相同(tóng)的(de)模块(kuài)合并。

首先(xiān),從串口(kǒu)接口(kǒu)方(fāng)向(xiàng)思(sī)考,

a) 接收(shōu)到(dào)的(de)數據(jù)是(shì)上(shàng)位機(jī)發(fà)来(lái)的(de)ASCII碼,为(wèi)了(le)方(fāng)便FPGA对(duì)指令解(jiě)析,需要(yào)将ASCII碼譯碼,轉(zhuǎn)化(huà)为(wèi)对(duì)應(yìng)的(de)十(shí)六(liù)進(jìn)制。因(yīn)此(cǐ)需要(yào)一(yī)个(gè)ASCII碼轉(zhuǎn)8bit十(shí)六(liù)進(jìn)制模块(kuài);

b) 接下(xià)来(lái),需要(yào)对(duì)接收(shōu)包(bāo)文(wén)的(de)包(bāo)头(tóu)進(jìn)行檢测,符合正(zhèng)确包(bāo)头(tóu)条(tiáo)件(jiàn)的(de)包(bāo)文(wén)保留,否則丢包(bāo)处理。所(suǒ)以(yǐ)需要(yào)一(yī)个(gè)包(bāo)头(tóu)檢测模块(kuài),用(yòng)来(lái)过(guò)濾接收(shōu)到(dào)的(de)有(yǒu)效包(bāo)文(wén);

c) 經(jīng)过(guò)寄存器解(jiě)析模块(kuài)後(hòu),会(huì)将指令解(jiě)析出(chū)来(lái),根(gēn)據(jù)指令功能(néng)要(yào)求可(kě)能(néng)分(fēn)别發(fà)送給(gěi)DS18B20、數碼管(guǎn)顯示開(kāi)關(guān)控制模块(kuài)、數碼管(guǎn)段(duàn)選位選接口(kǒu)模块(kuài)、蜂鳴器控制接口(kǒu)模块(kuài);

d) 寄存器解(jiě)析模块(kuài)發(fà)送过(guò)来(lái)的(de)是(shì)8bit數據(jù),不(bù)能(néng)直(zhí)接發(fà)送給(gěi)DS18B20(18B20只(zhī)接收(shōu)單bit),所(suǒ)以(yǐ)在(zài)寄存器解(jiě)析模块(kuài)和(hé)單總(zǒng)線(xiàn)轉(zhuǎn)換接口(kǒu)模块(kuài)之間(jiān)需要(yào)一(yī)个(gè)8bit轉(zhuǎn)換为(wèi)1bit模块(kuài);

e) 温(wēn)度(dù)報警功能(néng)需要(yào)做判斷实时(shí)温(wēn)度(dù)是(shì)否大于(yú)上(shàng)限值,是(shì)否小于(yú)下(xià)限值。所(suǒ)以(yǐ)需要(yào)一(yī)个(gè)实时(shí)温(wēn)度(dù)值比較判斷模块(kuài);

f) 然後(hòu),從DS18B20方(fāng)向(xiàng)思(sī)考;

g) 采集到(dào)的(de)温(wēn)度(dù)數據(jù),通(tòng)过(guò)單bit接口(kǒu)轉(zhuǎn)換模块(kuài)傳給(gěi)FPGA的(de)是(shì)單bit數據(jù),为(wèi)了(le)後(hòu)面(miàn)方(fāng)便FPGA对(duì)數據(jù)進(jìn)行处理,需要(yào)将1bit轉(zhuǎn)換为(wèi)8bit。所(suǒ)以(yǐ)需要(yào)一(yī)个(gè)1bit轉(zhuǎn)8bit模块(kuài);

h) 8bit温(wēn)度(dù)數據(jù)需要(yào)經(jīng)过(guò)計(jì)算处理,因(yīn)此(cǐ)需要(yào)一(yī)个(gè)數據(jù)处理模块(kuài);

i) 上(shàng)位機(jī)只(zhī)顯示ASCII碼格式數據(jù),为(wèi)实現(xiàn)温(wēn)度(dù)值在(zài)上(shàng)位機(jī)上(shàng)能(néng)顯示,需要(yào)将8bit温(wēn)度(dù)值轉(zhuǎn)換为(wèi)ASCII碼,所(suǒ)以(yǐ)需要(yào)一(yī)个(gè)8bit十(shí)六(liù)進(jìn)制數據(jù)轉(zhuǎn)換为(wèi)ASCII碼模块(kuài);

j) 經(jīng)过(guò)數據(jù)处理後(hòu)的(de)結果(guǒ)是(shì)十(shí)六(liù)進(jìn)制,而(ér)數碼管(guǎn)顯示的(de)是(shì)BCD碼,为(wèi)了(le)实現(xiàn)數碼管(guǎn)上(shàng)顯示正(zhèng)确數據(jù),因(yīn)此(cǐ)需要(yào)一(yī)个(gè)十(shí)六(liù)進(jìn)制轉(zhuǎn)BCD碼模块(kuài)。

完善後(hòu)如(rú)下(xià)图(tú)所(suǒ)示:

 

接下(xià)来(lái)将功能(néng)互斥、數據(jù)流向(xiàng)相關(guān),接口(kǒu)一(yī)致(zhì)的(de)模块(kuài)做合并化(huà)簡处理,如(rú)下(xià)图(tú)所(suǒ)示:

 

7.考慮是(shì)否涉及(jí)多(duō)路(lù)進(jìn)一(yī)路(lù)出(chū),要(yào)用(yòng)FIFO

本(běn)項目數據(jù)流方(fāng)面(miàn)沒(méi)有(yǒu)涉及(jí)多(duō)路(lù)進(jìn)一(yī)路(lù)出(chū)的(de)問(wèn)題(tí),不(bù)需要(yào)考慮此(cǐ)处的(de)FIFO問(wèn)題(tí)。

 

8.考慮是(shì)否涉及(jí)到(dào)速率匹(pǐ)配問(wèn)題(tí),要(yào)加上(shàng)RDY信(xìn)号(hào)或(huò)者(zhě)FIFO

 本(běn)項目涉及(jí)速率匹(pǐ)配問(wèn)題(tí)。

首先(xiān)考慮與(yǔ)外(wài)圍器件(jiàn)通(tòng)信(xìn)的(de)接口(kǒu)上(shàng)是(shì)否需要(yào)rdy信(xìn)号(hào)。

與(yǔ)DS18B20通(tòng)信(xìn)是(shì)通(tòng)过(guò)寄存器解(jiě)析模块(kuài)解(jiě)析出(chū)对(duì)DS18B20的(de)操作指令,發(fà)送給(gěi)8bit轉(zhuǎn)1bit模块(kuài),因(yīn)此(cǐ)需要(yào)考慮DS18B20能(néng)否时(shí)刻響應(yìng)操作指令?

这(zhè)个(gè)問(wèn)題(tí)在(zài)選擇上(shàng)位機(jī)與(yǔ)FPGA的(de)通(tòng)信(xìn)接口(kǒu)时(shí),已經(jīng)考慮过(guò)了(le),串口(kǒu)的(de)速率小于(yú)FPGA写DS18B20速率的(de)。

查閱手(shǒu)册得知,写一(yī)次(cì)1bit的(de)數據(jù)給(gěi)18B20需要(yào)63us,8bit需要(yào)63*8=504us,小于(yú)串口(kǒu)發(fà)送一(yī)次(cì)8bit指令給(gěi)FPGA时(shí)間(jiān)1000000us/9600*8=833us。

所(suǒ)以(yǐ)串口(kǒu)接收(shōu)數據(jù)通(tòng)路(lù)上(shàng)不(bù)需要(yào)考慮緩存FIFO問(wèn)題(tí)。

 

在(zài)單總(zǒng)線(xiàn)1bit接口(kǒu)轉(zhuǎn)換模块(kuài)中(zhōng),由(yóu)于(yú)写DS18B20时(shí)序速率遠(yuǎn)小于(yú)FPGA內(nèi)部(bù)读(dú)写頻率,需要(yào)告知8bit轉(zhuǎn)1bit模块(kuài)每写1bit數據(jù)要(yào)等一(yī)等,待时(shí)序滿足發(fà)送完1bit时(shí)序要(yào)求後(hòu),再發(fà)送新的(de)1bit數據(jù)。所(suǒ)以(yǐ)在(zài)bit接口(kǒu)轉(zhuǎn)換模块(kuài)與(yǔ)8bit轉(zhuǎn)1bit模块(kuài)間(jiān)需要(yào)設rdy信(xìn)号(hào)。

接下(xià)来(lái)考慮一(yī)下(xià)串口(kǒu)發(fà)送端。由(yóu)于(yú)串口(kǒu)發(fà)送模块(kuài)進(jìn)行并串轉(zhuǎn)換需要(yào)时(shí)間(jiān),因(yīn)此(cǐ)串口(kǒu)發(fà)送模块(kuài)需要(yào)告知上(shàng)遊十(shí)六(liù)制轉(zhuǎn)ASCII碼模块(kuài)等一(yī)等,因(yīn)此(cǐ)在(zài)串口(kǒu)發(fà)送模块(kuài)與(yǔ)十(shí)六(liù)進(jìn)制轉(zhuǎn)ASCII碼模块(kuài)間(jiān)需要(yào)設rdy信(xìn)号(hào)。

由(yóu)于(yú)串口(kǒu)發(fà)送模块(kuài)并串轉(zhuǎn)換需要(yào)等待,從而(ér)導致(zhì)十(shí)六(liù)進(jìn)制轉(zhuǎn)ASCII碼模块(kuài)也(yě)需要(yào)緩存control模块(kuài)發(fà)来(lái)的(de)數據(jù)。因(yīn)此(cǐ)十(shí)六(liù)進(jìn)制轉(zhuǎn)ASCII碼模块(kuài)中(zhōng)需要(yào)引入(rù)FIFO。

最(zuì)終(zhōng)得到(dào)的(de)模块(kuài)图(tú)如(rú)下(xià)所(suǒ)示:

 

到(dào)此(cǐ),根(gēn)據(jù)模块(kuài)劃(huà)分(fēn)步驟一(yī)步步做下(xià)来(lái),温(wēn)度(dù)檢测工程的(de)模块(kuài)劃(huà)分(fēn)雛形初步已經(jīng)完成(chéng)。具體(tǐ)实踐中(zhōng)需要(yào)根(gēn)據(jù)FPGA內(nèi)部(bù)信(xìn)号(hào)的(de)調整,随时(shí)拆分(fēn)或(huò)独立来(lái)增減功能(néng)模块(kuài)。

以(yǐ)上(shàng)就(jiù)是(shì)我(wǒ)做模块(kuài)劃(huà)分(fēn)的(de)基本(běn)思(sī)路(lù),大家(jiā)有(yǒu)什麼(me)問(wèn)題(tí)可(kě)以(yǐ)加Q群(qún)544453837進(jìn)行交流,更(gèng)多(duō)FPGA相關(guān)資料可(kě)以(yǐ)登录(lù)明(míng)德揚論壇進(jìn)行学習讨論:http://www.fpgabbs.cn/

  •   
  •   
  •   
  •  
  • FPGA教育領域第(dì)一(yī)品牌(pái)
  • 咨詢热(rè)線(xiàn):020-39002701
  • 技術(shù)交流Q群(qún):544453837
⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨