HAL Id: hal-00342017
https://hal.archives-ouvertes.fr/hal-00342017
Submitted on 15 Apr 2014
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Synchronizing Behavioural Mismatch in Software Composition
Carlos Canal, Pascal Poizat, Gwen Salaün
To cite this version:
Carlos Canal, Pascal Poizat, Gwen Salaün. Synchronizing Behavioural Mismatch in Software Com- position. Proceedings of the 8th International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS), Jun 2006, Bologna, Italy. pp.63–77, �10.1007/11768869_7�. �hal- 00342017�
✝✔✓✕☞✆☛ ✖✝✒✗✝✑✞✓✞✝✂✘
✙✚✛✜✢✣ ✙✚✤✚✜✥✦ ✧✚✣★✚✜ ✧✢✩✪✚✫✬✦✚✤✭ ✮✯✰✤ ✱✚✜✚✲
✳
✤✴
✵ ✶✷✸✹✺✻✼✸✽✾ ✿❀ ❁❂
❃❄❃❅❃❆❇
✺❈
❃
✻✽❉✺✷✽✿❀ ❊✿❉❈❋✽✺✻●❍✸✺✷❍✺
❊
❃
❉❈❋✼■✺❏✺
❃
✽✸✷✿✼
❆❑▲▼◆❖
❁❂
❃❄❃❅❃❆
●❈
❃
✸✷
P◗❘◗❙❚❙PP❯❱❲◗❯❳❨
❩ ❬❭❬●❊ ❪❫❴
❑❵◆❛
❊❜❫●❝ ✶✷✸✹✺✻✼✸✽✾ ✿❀
❂
❴✹✻✾ ❞
❃❄
■❡❴✼✼✿✷✷✺
❆❢
✺✷✿❈✿
❄
✺
❏✿❋✻
❂
❴✹✻✾
❑❆ ❣❑❛
❈
❄❃
❍✺ ■✺✼✽✺✻✻
❃
✼✼✺✼■✺
❄
❡❤
❅
✿✻
❃❆▲❖▼▼▼
❂
❴✹✻✾
❆
❪ ✻
❃
✷❍✺
✐
◗❨P◗❙❯
✐❥❦❧
◗♠❚
❦♥❦
❨P❯❱❘
❦♦♣
❳
♦qr
❯ sq
t ❞❤●✉ ❈✻✿✈✺❍✽
❆
❬❜❫❬❤ ❫✇✿✷✺②❤①
❄
❈✺✼
❆
❪ ✻
❃
✷❍✺
③
❣❣❃
✹✺✷❋✺ ■✺
❄
❡❴❋✻✿❈✺
❆❛❵❛❛▼
❁✿✷✽④✿✷✷✿✽ ●
❃
✸✷✽②❁
❃
✻✽✸✷
❆
❪ ✻
❃
✷❍✺
⑤⑥
❳❘❯
⑦
◗❙◗❱❘❚
❦
❘ q❦
◗❙⑧❳❨❯ sq
⑨⑩❶❷❸❹❺❷❻
●✿❀✽❼
❃
✻✺ ❤■
❃
❈✽
❃
✽✸✿✷ ✸✼
❃
❍✻❋❍✸
❃❄
✸✼✼❋✺ ❀✿✻ ✽✇✺ ■✺✹✺
❄
✿❈❉✺✷✽
✿❀
❃
✻✺
❃❄
❉
❃
✻❽✺✽✿❀ ❍✿❉❈✿✷✺✷✽✼❈✻✿❉✿✽✸✷
❅
✼✿❀✽❼
❃
✻✺ ✻✺❋✼✺❾❫✺❍✺✷✽❼✿✻❽
✸✷ ✽✇✸✼❿✺
❄
■ ✇
❃
✼
❃
■■✻✺✼✼✺■ ✼✺✹✺✻
❃❄
❈✻✿④
❄
✺❉✼✻✺
❄❃
✽✺■ ✽✿ ✸✷✽✺✻❀
❃
❍✺
❃
✷■ ④✺②
✇
❃
✹✸✿❋✻
❃❄
❉✸✼❉
❃
✽❍✇❾❬✷ ✽✇✸✼❈
❃
❈✺✻
❆
❼✺❈✻✺✼✺✷✽ ✿❋✻❈✻✿❈✿✼
❃❄
❀✿✻✼✿❀✽❼
❃
✻✺
❃
■
❃
❈✽
❃
✽✸✿✷
❆
❼✇✸❍✇ ④❋✸
❄
■✼ ✿✷ ❈✻✺✹✸✿❋✼ ❼✿✻❽ ✿✹✺✻❍✿❉✸✷
❅
✼✿❉✺ ✿❀ ✸✽✼
❄
✸❉②
✸✽
❃
✽✸✿✷✼
❆ ❃
✷■ ❉
❃
❽✺✼
❃
✼✸
❅
✷✸❿❍
❃
✷✽
❃
■✹
❃
✷❍✺ ✽✿ ✼✿
❄
✹✺ ❈✺✷■✸✷
❅
✸✼✼❋✺✼❾ ➀❋✻
❃
❈❈✻✿
❃
❍✇ ✸✼ ④
❃
✼✺■ ✿✷ ✽✇✺ ❋✼✺ ✿❀ ✼✾✷❍✇✻✿✷✿❋✼ ✹✺❍✽✿✻✼
❃
✷■ ✻✺
❅
❋
❄❃
✻ ✺➁②
❈✻✺✼✼✸✿✷✼ ❀✿✻
❅
✿✹✺✻✷✸✷
❅ ❃
■
❃
❈✽
❃
✽✸✿✷ ✻❋
❄
✺✼
❆❃
✷■ ✸✼ ✼❋❈❈✿✻✽✺■ ④✾ ■✺■✸❍
❃
✽✺■
❃❄❅
✿✻✸✽✇❉✼
❃
✷■ ✽✿✿
❄
✼❾
➂ ➃➄➅➆➇➈➉➊➅➋➇➄
✙✢➌➍✢✤✰✤✫➎➏✚✣✰✭ ✱✢➐✫✯✚✛✰ ➑✤➒✩✤✰✰✛✩✤➒ ➓✙➏✱➑➔ ➐✢★
✳
✣✰✣ ✢✤ ★✢➌➍✢✣✩✫✩✢✤ ✚✤✭
✛✰
✳
✣✰✦✚✩➌✩✤➒ ✫✢ ✭✰→✰✜✢➍ ✚ ➌✚✛➣✰✫ ✢➐ ✣✢➐✫✯✚✛✰ ★✢➌➍✢✤✰✤✫✣✦ ✩✤ ✯↔✩★↔ ★
✳
✣✫✢➌✰✛✣
✣✰✜✰★✫ ✫↔✰ ➌✢✣✫ ✚➍➍✛✢➍✛✩✚✫✰ ✣✢➐✫✯✚✛✰ ➍✩✰★✰ ✭✰➍✰✤✭✩✤➒ ✢✤ ✩✫✣ ✫✰★↔✤✩★✚✜ ✣➍✰★✩↕★✚➎
✫✩✢✤ ➙➛➜➝ ➞↔✰ ✭✰→✰✜✢➍➌✰✤✫ ✢➐ ✣
✳
★↔ ✚ ➌✚✛➣✰✫ ↔✚✣ ✚✜✯✚➟✣ ➠✰✰✤ ✢✤✰ ✢➐ ✫↔✰ ➌✚➡✢✛
★✢✤★✰✛✤✣✢➐ ✱✢➐✫✯✚✛✰ ➑✤➒✩✤✰✰✛✩✤➒✦➠
✳
✫ ✩✫↔✚✣ ✤✰→✰✛ ➠✰★✢➌✰ ✚ ✛✰✚✜✩✫➟➝➞↔✰ ✛✰✚✣✢✤
✩✣ ✫↔✚✫ ✯✰ ★✚✤✤✢✫ ✰➢➍✰★✫ ✫↔✚✫ ✚✤➟ ➒✩→✰✤ ✣✢➐✫✯✚✛✰ ★✢➌➍✢✤✰✤✫ ➍✰✛➐✰★✫✜➟ ➌✚✫★↔✰✣
✫↔✰✤✰✰✭✣✢➐✚✣➟✣✫✰➌ ✯↔✰✛✰✩✫✩✣✫✛➟✩✤➒✫✢➠✰✩✤✫✰➒✛✚✫✰✭➝✱✢➐✫✯✚✛✰✩✣✤✰→✰✛✛✰
✳
✣✰✭
➤✚✣ ✩✫ ✩✣➥✦ ✰✣➍✰★✩✚✜✜➟ ✩✤ ★✚✣✰ ✢➐ ✜✰➒✚★➟ ★✢✭✰✦ ✚✤✭ ✚ ★✰✛✫✚✩✤ ✭✰➒✛✰✰ ✢➐ ✚✭✚➍✫✚✫✩✢✤
✩✣ ✚✜✯✚➟✣✛✰➦
✳
✩✛✰✭ ➙➧➛➜➝
➞✢ ✭✰✚✜✯✩✫↔✫↔✰✣✰➍✛✢➠✜✰➌✣✚✤✰✯ ✭✩✣★✩➍✜✩✤✰✦➨➩➫➭➯➲➳➵➸➺➲
➻
➭➲➭➼➩➽✦✩✣✰➌✰✛➒➎
✩✤➒✦✯↔✩★↔ ✩✣ ★✢✤★✰✛✤✰✭ ✯✩✫↔ ➍✛✢→✩✭✩✤➒ ✫✰★↔✤✩➦
✳
✰✣ ✫✢ ✚✛✛✚✤➒✰✚✜✛✰✚✭➟ ✭✰→✰✜✢➍✰✭
➍✩✰★✰✣ ✢➐ ✣✢➐✫✯✚✛✰✦✩✤ ✢✛✭✰✛ ✫✢ ✛✰
✳
✣✰✫↔✰➌ ✩✤ ✤✰✯ ✣➟✣✫✰➌✣ ➙➾➜➝ ✱✢➐✫✯✚✛✰ ➚✭✚➍✫✚➎
✫✩✢✤➍✛✢➌✢✫✰✣✫↔✰
✳
✣✰✢➐ ➲➺➲
➻
➭➩➳➪➶✣➍✰★✩↕★★✢➌➍
✳
✫✚✫✩✢✤✚✜ ✰✤✫✩✫✩✰✣➒
✳
✚✛✚✤✫✰✰✩✤➒
✫↔✚✫ ★✢➌➍✢✤✰✤✫✣ ✯✩✜✜ ✩✤✫✰✛✚★✫ ✩✤ ✫↔✰ ✛✩➒↔✫ ✯✚➟➝
➹
❏✇✸✼❼✿✻❽✇
❃
✼④✺✺✷❈
❃
✻✽
❄
✾❀❋✷■✺■④✾✽✇✺❴❋✻✿❈✺
❃
✷❜✺✽❼✿✻❽✿❀ ❴➁❍✺
❄❄
✺✷❍✺✿✷❤➀●
❇❆
❤➀● ②❴❋✻✿❈✺❬●❏② ② ②❜➀❴❾
❑ ❃ ❄ ❃ ❃❄❆ ❃ ❃❄ ❃ ❆ ❃ ❢ ❃❄❃✂
✙➏✱➑ ➍✢✣✫
✳
✜✚✫✰✣ ✫↔✚✫ ✚ ★✢➌➍✢✤✰✤✫ ➌
✳
✣✫ ➠✰ ✛✰
✳
✣✚➠✜✰➐✛✢➌ ✩✫✣✩✤✫✰✛➐✚★✰ ➙✄
☎➜
✦
✯↔✩★↔✩✤➐✚★✫★✢✤✣✫✩✫
✳
✫✰✣✩✫✣➐
✳
✜✜✫✰★↔✤✩★✚✜✣➍✰★✩↕★✚✫✩✢✤
➝✆
✰✤★✰✦✯✰↔✚→✰✫✢➍✛✢→✩✭✰
★✢➌➍✢✤✰✤✫✣✯✩✫↔✚✣➍✰★✩↕★✚✫✩✢✤✫↔✚✫↔✰✜➍✣✩✤✫↔✰➍✛✢★✰✣✣✢➐✚✭✚➍✫✩✤➒✚✤✭✛✰
✳
✣✩✤➒
✫↔✰➌➝➞↔✰✩✤✫✰✤✭✰✭ ✚✭✚➍✫✚✫✩✢✤ ✯✩✜✜ ✫↔✰✤✫✚➣✰✫↔✰➐✢✛➌ ✢➐✚ ➌✚➍➍✩✤➒ ✚➌✢✤➒✫↔✰
✩✤✫✰✛➐✚★✰✭✰✣★✛✩➍✫✩✢✤✣ ✢➐✫↔✰★✢➌➍✢✤✰✤✫✣✩✤→✢✜→✰✭➝
➞
↔✰ ★↔✚✛✚★✫✰✛✩✣✫✩★✣✚✤✭ ✰➢➍✛✰✣✣✩→✰✤✰✣✣✢➐ ✫↔✰ ✜✚✤➒
✳
✚➒✰
✳
✣✰✭ ➐✢✛ ✩✤✫✰✛➐✚★✰✭✰➎
✣★✛✩➍✫✩✢✤ ✭✰✫✰✛➌✩✤✰✣ ✫↔✰ ✭✰➒✛✰✰ ✢➐ ✩✤✫✰✛✢➍✰✛✚➠✩✜✩✫➟ ✯✰ ★✚✤ ✚★↔✩✰→✰
✳
✣✩✤➒ ✩✫✦✚✤✭
✫↔✰ ➣✩✤✭ ✢➐ ➍✛✢➠✜✰➌✣ ✫↔✚✫ ★✚✤ ➠✰ ✣✢✜→✰✭
➝
✝✰ ★✚✤ ✭✩✣✫✩✤➒
✳
✩✣↔ ➠✰✫✯✰✰✤ ✣✰→✰✛✚✜
✜✰→✰✜✣ ✢➐ ✩✤✫✰✛✢➍✰✛✚➠✩✜✩✫➟✦ ✚✤✭ ✚★★✢✛✭✩✤➒✜➟ ✢➐ ✩✤✫✰✛➐✚★✰ ✭✰✣★✛✩➍✫✩✢✤ ➙ ➾➜
✞
✣✩➒✤✚✫
✳
✛✰
✜✰→✰✜ ➓✣✰✛→✩★✰ ✤✚➌✰✣ ✚✤✭ ✫➟➍✰✣➔✦ ➠✰↔✚→✩✢
✳
✛✚✜ ✜✰→✰✜ ➓✩✤✫✰✛✚★✫✩✢✤ ➍✛✢✫✢★✢✜✣➔✦ ✣✰➎
➌✚✤✫✩★ ✜✰→✰✜ ➓➐
✳
✤★✫✩✢✤✚✜ ✣➍✰★✩↕★✚✫✩✢✤ ✢➐✯↔✚✫✫↔✰★✢➌➍✢✤✰✤✫✚★✫
✳
✚✜✜➟ ➺➩➵➪➔✚✤✭
✣✰✛→✩★✰✜✰→✰✜ ➓✤✢✤ ➐
✳
✤★✫✩✢✤✚✜ ➍✛✢➍✰✛✫✩✰✣ ✣
✳
★↔ ✚✣➦
✳
✚✜✩✫➟✢➐ ✣✰✛→✩★✰➔➝➚✫ ✰✚★↔ ✢✤✰✦
➌✩✣✫➌✚✫★↔ ★✚✤ ✢★★
✳
✛ ➙ ➾➜ ✚✤✭ ✯✢
✳
✜✭ ↔✚→✰ ✫✢ ➠✰ ★✢✛✛✰★✫✰✭➝ ✙
✳
✛✛✰✤✫✜➟✦ ✩✤✭
✳
✣✫✛✩✚✜
★✢➌➍✢✤✰✤✫ ➌✢✭✰✜✣ ✢✤✜➟ ✫✚★➣✜✰ ✫↔✰ ✣✩➒✤✚✫
✳
✛✰ ✜✰→✰✜✦ ✯✩✫↔ ✟✤✫✰✛➐✚★✰ ✠✰✣★✛✩➍✫✩✢✤
✡✚✤➒
✳
✚➒✰✣ ➓✟✠✡✣➔➝ ➚✜✫↔✢
✳
➒↔ ➓ ✚
✳
✫✢➌✚✫✩★➔ ✚✭✚➍✫✚✫✩✢✤ ✩✤ ✫↔✰ ✣✰➌✚✤✫✩★ ✚✤✭ ✣✰✛➎
→✩★✰ ✜✰→✰✜✣ ✣✫✩✜✜ ✛✰➌✚✩✤✣
✳
✤★✰✛✫✚✩✤✦ ✣✰→✰✛✚✜ ✚➍➍✛✢✚★↔✰✣ ↔✚→✰ ➠✰✰✤ ➍✛✰✣✰✤✫✰✭ ➐✢✛
✰➢✫✰✤✭✩✤➒ ★✢➌➍✢✤✰✤✫ ✩✤✫✰✛➐✚★✰✣ ✯✩✫↔ ➠✰↔✚→✩✢
✳
✛✦✫↔
✳
✣ ✛✰✣
✳
✜✫✩✤➒ ✩✤ ✯↔✚✫ ✯✰ ➌✚➟
★✚✜✜ ✚ ➏✰↔✚→✩✢
✳
✛✚✜ ✟✠
✡
➓➏✟✠✡➔ ➓➵☛
☞
☛✦
✝
✱➏✧➑✡ ➙➧➜ ➐✢✛ ✯✰➠ ✣✰✛→✩★✰✣➔➝
✟✤ ✫↔✩✣ ➍✚➍✰✛✦✯✰➐✢★
✳
✣ ✢✤ ➌✩✣➌✚✫★↔ ✚➍➍✰✚✛✩✤➒ ✚✫ ✫↔✰ ➠✰↔✚→✩✢
✳
✛✚✜ ✜✰→✰✜➝✟✤➎
✫
✳
✩✫✩→✰✜➟✦✩✫ ➌✰✚✤✣✫↔✚✫ ✫✯✢ ➓✢✛➌✢✛✰➔★✢➌➍✢✤✰✤✫✣★✚✤✤✢✫➶✚✣✫↔✰➟ ✚✛✰➶ ✩✤✫✰✛➎
✚★✫ ✫✩✜✜ ✫↔✰➟ ✛✰✚★↔ ★✢✛✛✰★✫ ✫✰✛➌✩✤✚✫✩✢✤ ✣✫✚✫✰✣➝ ➞✢ ★✢➌➍✰✤✣✚✫✰ ✣
✳
★↔ ➠✰↔✚→✩✢
✳
✛✚✜
✩✤★✢➌➍✚✫✩➠✩✜✩✫✩✰✣✦ ✯✰ ➍✛✢➍✢✣✰ ↕✛✣✫ ✫✢
✳
✣✰ ✣➟✤★↔✛✢✤✢
✳
✣ →✰★✫✢✛✣ ✚✣ ✫↔✰ ➌✚➍➍✩✤➒
✜✚✤➒
✳
✚➒✰ ✫✢ ➌✚➣✰ ✰➢➍✜✩★✩✫ ★✢➌➌
✳
✤✩★✚✫✩✢✤✣✢✤ ✭✩✌✰✛✰✤✫ ➌✰✣✣✚➒✰✤✚➌✰✣➝ ✱✰★✢✤✭✦
✯✰ ✰➢✫✰✤✭ ✢
✳
✛ ✤✢✫✚✫✩✢✤ ✫✢ ✰✤✚➠✜✰ ✯✛✩✫✩✤➒ ✛✰➒
✳
✜✚✛✰➢➍✛✰✣✣✩✢✤✣✢➐→✰★✫✢✛✣➝ ✱
✳
★↔ ✚
➌✚➍➍✩✤➒ ✤✢✫✚✫✩✢✤ ✩✣ ★✢✤→✰✤✩✰✤✫ ✫✢ ✭✰✣★✛✩➠✰ ✩✤ ✚✤ ✚➠✣✫✛✚★✫ ✯✚➟ ➌✢✛✰ ✚✭→✚✤★✰✭
✚✭✚➍✫✚✫✩✢✤ ✣★✰✤✚✛✩✢✣ ✣
✳
★↔ ✚✣✛✰✢✛✭✰✛✩✤➒ ✢➐ ➌✰✣✣✚➒✰✣➝ ✍✩➒
✳
✛✰ ➧ ➒✩→✰✣ ✚ ➒✛✚➍↔✩★✚✜
✢→✰✛→✩✰✯ ✢➐ ✢
✳
✛➌✰✫↔✢✭ ➐✢✛ ✚✭✚➍✫✚✫✩✢✤
➝
Behavioural adaptation
(Petri net encoding) (synchronous product)
needed?
no
yes Component interfaces
mismatch detected?
no adaptor needed
Adaptor (vectors + regex)
adaptor specification
A = (v1.v2)*
v2 = <a?,b!>
v1 = <a!,b?>
adaptor generation reordering
yes no
✎✏✑
❻✒❻
➀✹✺✻✹✸✺❼ ✿❀ ✿❋✻
❃
❈❈✻✿
❃
❍✇ ❀✿✻
❃
■
❃
❈✽
❃
✽✸✿✷ ✿❀ ✸✷❍✿❉❈
❃
✽✸④
❄
✺❍✿❉❈✿✷✺✷✽✼
➞↔✰✛✰➌✚✩✤✭✰✛ ✢➐✫↔✰ ➍✚➍✰✛ ✩✣✢✛➒✚✤✩✪✰✭✚✣➐✢✜✜✢✯✣➝✱✰★✫✩✢✤ ✄ ➐✢✛➌✚✜✜➟✩✤✫✛✢➎
✭
✳
★✰✣ ✢
✳
✛ ★✢➌➍✢✤✰✤✫ ✩✤✫✰✛➐✚★✰➌✢✭✰✜✦✚✤✭ ✭✰↕✤✰✣ ✩✤✫✰✛➐✚★✰➌✩✣➌✚✫★↔ ➠➟➌✰✚✤✣
✢➐ ✣➟✤★↔✛✢✤✢ ✣ ➍✛✢✭ ★✫✣➝✱✰★✫✩✢✤ ✓ ➍✛✰✣✰✤✫✣ ✢ ✛ ✚➍➍✛✢✚★↔ ✫✢ ★✢➌➍✢✤✰✤✫ ✚✭✚➍➎
❅ ❃ ❃❄ ❃ ❃ ❛
✫✚✫✩✢✤✦ ✯↔✩★↔ ★✢➌➠✩✤✰✣✫↔✰ ➍✢✩✤✫✣ ✩✤ ➐✚→✢
✳
✛ ✢➐ ✭✩✌✰✛✰✤✫ ✚✭✚➍✫✚✫✩✢✤ ✚➍➍✛✢✚★↔✰✣✦
✯↔✩✜✰✫✛➟✩✤➒✫✢✢→✰✛★✢➌✰✫↔✰✩✛✜✩➌✩✫✚✫✩✢✤✣
➝
✳
✛➍✛✢➍✢✣✚✜✣➐✢✛➠✰↔✚→✩✢
✳
✛✚✜✚✭✚➍✫✚➎
✫✩✢✤ ✯✩✫↔ ✢✛✯✩✫↔✢
✳
✫➌✰✣✣✚➒✰✛✰✢✛✭✰✛✩✤➒ ✚✛✰ ✣
✳
➍➍✢✛✫✰✭➠➟ ✭✰✭✩★✚✫✰✭✚✜➒✢✛✩✫↔➌✣✦
✚✤✭ ✩✤ ➠✢✫↔ ★✚✣✰✣✫↔✰ ✚✭✚➍✫✚✫✩✢✤ ➌✚➍➍✩✤➒✣ ✛✰✜➟ ✢✤ ✣➟✤★↔✛✢✤✢
✳
✣ →✰★✫✢✛✣➝ ✁✰➢✫✦
✱✰★✫✩✢✤✂ ✰➢✫✰✤✭✣✢
✳
✛✩✤✩✫✩✚✜➌✚➍➍✩✤➒✤✢✫✚✫✩✢✤✯✩✫↔✛✰➒
✳
✜✚✛✰➢➍✛✰✣✣✩✢✤✣✦✰✤✚➠✜✩✤➒
★✢➌➍✜✰➢➍✢✜✩★✩✰✣➐✢✛✚➍➍✜➟✩✤➒✫↔✰✚✭✚➍✫✚✫✩✢✤→✰★✫✢✛✣➝✟✤✱✰★✫✩✢✤ ✄✦✯✰✣
✳
✛→✰➟✫↔✰
➌✢✛✰ ✚✭→✚✤★✰✭ ➍✛✢➍✢✣✚✜✣ ➐✢✛ ✣✢➐✫✯✚✛✰ ✚✭✚➍✫✚✫✩✢✤✦ ✚✤✭ ★✢➌➍✚✛✰ ✢
✳
✛✣ ✫✢ ✫↔✰➌➝
✍✩✤✚✜✜➟✦✱✰★✫✩✢✤ ➛✭✛✚✯✣
✳
➍✫↔✰ ➌✚✩✤★✢✤★✜
✳
✣✩✢✤✣✢➐✫↔✩✣✯✢✛➣✚✤✭ ✣➣✰✫★↔✰✣✣✢➌✰
➐
✳
✫
✳
✛✰ ✫✚✣➣✣ ✫↔✚✫ ✯✩✜✜ ➠✰ ✚★★✢➌➍✜✩✣↔✰✭ ✫✢ ✰➢✫✰✤✭ ✩✫✣ ✛✰✣
✳
✜✫✣➝
☎ ➃➄➅✆➆✝✞➊✆✟ ✞➄➈ ✠➋✟✡✞➅➊☛
☞✌✍ ✎✏✑✒✏✓✔✓✕ ✖✓✕✔✗✘✙✚✔✛
✙✢➌➍✢✤✰✤✫ ✩✤✫✰✛➐✚★✰✣ ✚✛✰ ➒✩→✰✤
✳
✣✩✤➒ ✚ ✣✩➒✤✚✫
✳
✛✰✚✤✭ ✚ ➠✰↔✚→✩✢
✳
✛✚✜✩✤✫✰✛➐✚★✰➝
✜✔✢✓✣✕✣✏✓ ✍ ✤✥✣✦✓✙✕✧✗✔★✌➸ ✣✩➒✤✚✫
✳
✛✰✩ ➼➪ ➲➪➵➭➩➫ ➩
➻
➵➳➲➭➼➩➽
➻
➳➩✪✫➵➪☛✬✭➼➪➪➵➭
➼➪ ➲ ➺➼➪✮➩➼➽➭✯➽➼➩➽ ➩➫ ➍✛✢→✩✭✰✭ ➩
➻
➵➳➲➭➼➩➽➪ ➲➽➺ ✛✰➦
✳
✩✛✰✭ ➩
➻
➵➳➲➭➼➩➽➪☛➸➽ ➩
➻
➵➳➲➭➼➩➽
➻
➳➩✪✫➵ ➼➪ ➪➼✰
➻
✫✱ ➭✭➵ ➽➲✰➵ ➩➫ ➲➽ ➩
➻
➵➳➲➭➼➩➽✲ ➭➩
☞
➵➭✭➵➳ ➯➼➭✭ ➼➭➪ ➲➳
☞
✯✰➵➽➭ ➭✱
➻
➵➪✲ ➼➭➪
➳➵➭✯➳➽ ➭✱
➻
➵ ➲➽➺ ➭✭➵ ➵ ✳✴➵
➻
➭➼➩➽➪ ➼➭ ➳➲➼➪➵➪☛
➞
↔✩✣ ✭✰↕✤✩✫✩✢✤ ✤✚✫
✳
✛✚✜✜➟ ★✢✛✛✰✣➍✢✤✭✣ ✫✢ ✫↔✰ ✣✩➒✤✚✫
✳
✛✰ ✭✰↕✤✩✫✩✢✤✣ ✩✤ ★✢➌➍✢➎
✤✰✤✫ ➠✚✣✰✭ ➌✢✭✰✜✣ ✣
✳
★↔ ✚✣ ✙✙✵ ✢✛ ✶✄➑➑
➝
✱
✳
★↔ ✣✩➒✤✚✫
✳
✛✰✣ ✚✛✰ ✭✰↕✤✰✭
✳
✣✩✤➒ ✚✤
✟✠✡
➝
✍✢✛ ✫↔✰ ✣✚➣✰✢➐ ✣✩➌➍✜✩★✩✫➟✩✤✫↔✰➍✛✰✣✰✤✫✚✫✩✢✤✦✩✤ ✫↔✩✣➍✚➍✰✛✯✰ ✭✢ ✤✢✫ ✭✰✚✜
✯✩✫↔ ✢➍✰✛✚✫✩✢✤ ✚✛➒
✳
➌✰✤✫✣✦✛✰✫
✳
✛✤ →✚✜
✳
✰✣✢✛ ✰➢★✰➍✫✩✢✤✣➝
✝✰✚✜✣✢✫✚➣✰✩✤✫✢ ✚★★✢
✳
✤✫➠✰↔✚→✩✢
✳
✛✚✜ ✩✤✫✰✛➐✚★✰✣ ✫↔✛✢
✳
➒↔✫↔✰
✳
✣✰✢➐✡✚➠✰✜✜✰✭
➞✛✚✤✣✩✫✩✢✤ ✱➟✣✫✰➌✣ ➓✡➞✱✣➔
➝
✜
✔✢✓✣✕✣✏✓ ☞ ✤✷✸✥★✌
➸ ✡✚➠✰✜✜✰✭ ➞✛✚✤✣✩✫✩✢✤ ✱➟✣✫✰➌ ➼➪ ➲ ➭✯
➻
✫➵ ➓ ✹✺✻✺✼✺✽✺✾➔
➯✭➵➳➵✿ ✹ ➼➪ ➲➽ ➲✫
➻
✭➲❀➵➭ ❁➪➵➭ ➩➫ ➵❂➵➽➭➪ ❃✲ ✻ ➼➪ ➲ ➪➵➭ ➩➫ ➪➭➲➭➵➪✲✼ ❄ ✻ ➼➪ ➭✭➵ ➼➽➼➭➼➲✫
➪➭➲➭➵✲✽ ❅✻ ➲➳➵✪➽➲✫ ➪➭➲➭➵➪✲ ➲➽➺✾ ❅ ✻ ❆✹ ❆✻ ➼➪ ➭✭➵ ➭➳➲➽➪➼➭➼➩➽➫✯➽✴➭➼➩➽☛
➞
↔✰ ✚✜➍↔✚➠✰✫ ✢➐✫↔✰
✡➞
✱ ✩✣ ➠
✳
✩✜✫✢✤ ✫↔✰ ✣✩➒✤✚✫
✳
✛✰
➝
➞↔✩✣ ➌✰✚✤✣✫↔✚✫ ➐✢✛ ✰✚★↔
➍✛✢→✩✭✰✭ ✢➍✰✛✚✫✩✢✤ ❇ ✩✤ ✫↔✰ ✣✩➒✤✚✫
✳
✛✰✦ ✫↔✰✛✰ ✩✣ ✚✤ ✰✜✰➌✰✤✫ ❇❈ ✩✤ ✫↔✰ ✚✜➍↔✚➠✰✫✦
✚✤✭ ➐✢✛ ✰✚★↔ ✛✰➦
✳
✩✛✰✭ ✢➍✰✛✚✫✩✢✤ ❉✦ ✚✤ ✰✜✰➌✰✤✫ ❉❊➝ ➚✣ ✩✤ ✙✙✱✦ ➓❋✦ ❋➔● ✭✰✤✢✫✰
★✢➌➍✜✰➌✰✤✫✚✛➟✚★✫✩✢✤✣➶➼☛➵☛✦✩➐❋✩✣❇❈ ➓✛✰✣➍✰★✫✩→✰✜➟❉❊ ➔✦✫↔✰✤❋●✩✣❇❊➓✛✰✣➍✰★✫✩→✰✜➟
❉❈➔➝
✡➞✱✣ ✚✛✰ ✚✭✰➦
✳
✚✫✰ ✚✣ ➐✚✛ ✚✣
✳
✣✰✛➎➐✛✩✰✤✭✜✩✤✰✣✣ ✚✤✭ ✭✰→✰✜✢➍➌✰✤✫ ✢➐ ➐✢✛➌✚✜ ✚✜➎
➒✢✛✩✫↔➌✣ ✚✛✰ ★✢✤★✰✛✤✰✭
➝ ✆
✢✯✰→✰✛✦ ↔✩➒↔✰✛➎✜✰→✰✜ ➠✰↔✚→✩✢
✳
✛✚✜ ✜✚✤➒
✳
✚➒✰✣ ✣
✳
★↔ ✚✣
➍✛✢★✰✣✣ ✚✜➒✰➠✛✚✣ ★✚✤ ➠✰
✳
✣✰✭ ✫✢ ✭✰↕✤✰ ➠✰↔✚→✩✢
✳
✛✚✜ ✩✤✫✰✛➐✚★✰✣ ✩✤ ✚ ➌✢✛✰ ★✢✤★✩✣✰
✯✚➟➝✟✤ ✫↔✩✣ ➍✚➍✰✛✦✯✰
✳
✣✰ ✚✣✚ ➏✟✠✡✫↔✰➍✚✛✫✢➐✫↔✰ ✙✙✱ ✤✢✫✚✫✩✢✤ ✛✰✣✫✛✩★✫✰✭ ✫✢
✣✰➦
✳
✰✤✫✩✚✜ ➍✛✢★✰✣✣✰✣✯↔✩★↔ ★✚✤➠✰✫✛✚✤✣✜✚✫✰✭ ✩✤✫✢ ✡➞✱➌✢✭✰✜✣✞
❍ ■■
❏ ❑ ▲ ▼◆❖
❍
▲ ▼P❖
❍
▲
❍◗❘❍❙
▲ ❚
✦ ✯↔✰✛✰
❑
✭✰✤✢✫✰✣ ✚ ✭✢➎✤✢✫↔✩✤➒ ➍✛✢★✰✣✣✦
▼◆❖
❍ ✚ ➍✛✢★✰✣✣
✯↔✩★↔ ✛✰★✰✩→✰✣
▼
✚✤✭ ✫↔✰✤ ➠✰↔✚→✰✣ ✚✣ ❍✦
▼P❖
❍✚ ➍✛✢★✰✣✣ ✯↔✩★↔ ✣✰✤✭✣
▼
✚✤✭ ✫↔✰✤
➠✰↔✚→✰✣ ✚✣ ❍✦❍◗❘❍❙ ✚ ➍✛✢★✰✣✣✯↔✩★↔ ➌✚➟ ✚★✫ ✰✩✫↔✰✛ ✚✣❍◗✢✛ ❍❙✦ ✚✤✭
❚
✭✰✤✢✫✰✣
✫↔✰ ★✚✜✜✫✢ ✚ ➍✛✢★✰✣✣ ✭✰↕✤✰✭ ➠➟ ✚✤ ✚➒✰✤✫ ✭✰↕✤✩✫✩✢✤ ✰➦ ✚✫✩✢✤ ❍➝