n Makefile - - PDF document

n makefile
SMART_READER_LITE
LIVE PREVIEW

n Makefile - - PDF document


slide-1
SLIDE 1
  • ✁✄✂✆☎✞✝✠✟
✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ ✚ ✛

n

✜✣✢✥✤✧✦★✢✥✤✪✩✫✩✥✬✪✭✥✮✰✯ ✱✲✤✳✮✵✴✷✶✫✸ ✹✺✬✰✱✻✯ ✼ ✬✽✯ ✮✾✹✿✢✥✤✲✭✥❀✫✬❂❁✫❃ n ❄✌❅✥❆✞❆✥❇ ❈✥❉ ❊●❋■❍✥❍✵❏★❑ ❅▼▲ ❍✵◆✞❅P❖❘◗✺❇ ❉ ❍❚❙✿❉ ❉❯❑✌❱✌❍❚❲❯❇ ❉ ❍✥❆✷❑✌❱■❙✵❑ ▲ ❍✥❲ ❍✫▲ ❍❳❋✌◆✌❍✥❏✳❇ ❑

n

❨❩✴✿❬❭✦✍✴❪❁✫✴✳✦✓✢✫✯ ✮✵❃ n ❫✻❴❛❵❝❜P❈❝❞❝❇ ❉ ❑ ❡✻❇ ❋ n ❢❝❅★❲ ❙✿▲✆❜P❈✌❊●❱■❙✿❋✌❏ n ❣✓❤✥✐ ✐ javac ❥✌❦✲❥✌❧✻♠ ♥ ❥✌♦ ♥ ♣✞❤✌♠ q❛rs❥■❧✻t ✉✍q❛♦ ✈ ✐ q■r✆✇✺①❛❤■②❯③✻q❩t q■♥ jar n ④s❧✞♠⑥⑤✌♠ q❯♣✞✈ ❥✌❧✻r✆✇✵q■t t ❥✌t❝⑦✞t ❥✌❦✻q n ⑧⑨❅✺❅P❉ ❡✻❈✌❙✵❆■❍✥❏★❙✿◗❝◗✥▲ ❅✥❙✵◆⑨❱❝❜P❖✲❙✿⑩✍❍❘❙❘❑✠❅✺❅P❉❯❲ ❅✫▲P❇ ❑✌❶ ✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ ✚ ✟

n make

✯ ✮❷✤✳❀❸✸ ✬❂✤✧✦✷✦✍✴✿✴✷✼✺✦✗✢✥✤✧✦★❹★✤✲✭✥✤❂❀❳✬✧✮✾✤✲✭✥❺❼❻⑨✯ ✭✺❁ ✴✿✱❚✩✫✸ ✴✿✹✥✬✧✮✵✮✾❬▼✯ ✦✓✢❽❁❳✬✲✩✥✬✲✭✺❁✫✬✲✭✥✹✿✯ ✬✿✮

n

Makefile

❁❳✬✧✮✺✹❳✸❯✯ ❿✥✬✧✮❪✸❯✶❳✼ ✬✧✮✾✱✆✴✷✸✫❬✳✢✥✬➀✭ ✮✵✴➀❹❷✬✿✦✗✢✫✯ ✭✺❀➁❁❳✬✲✩✥✬✪✭✥❁✫✮❷✴✷✭✾✮✵✴✷❹❚✬✿✦✗✢✫✯ ✭✺❀➁✬✲✼ ✮✵✬✧➂✪✤✲✭✺❁ ❬✳✢✥✤✧✦✷✦✍✴❪❁✫✴✳✦✍✴➃❹★✤✲❻✻✬➄✯ ✦★✶✫✩✺➅❯✦✍✴❳➅❯❁❳✤✿✦s✬ n ❈✌❙✵❆✌❍✥❏❚❅P❋✷❲■❇ ❉ ❍▼❖✪❅❝❏✫❇ ❲❯❇ ◆✞❙✵❑✌❇ ❅P❋✷❑✌❇ ❖✪❍✺❆✷❆✌❑ ❅P▲ ❍✺❏★➆★❇ ❑✌❱✷❍✺➇✗❍❳▲ ❊ ➈ ❋❝❇ ➉➊❲■❇ ❉ ❍

n

➋✥✭✥➌⑨✴➀❻⑨✯ ✭✥❀

make

✦✓✢✺✬✲✭➁✸❯✶✫✭✺✮✾✦✓✢✺✬✿✮✓✬✽✸✍✶✫✼ ✬✿✮❷✦✍✴ ❁❳✬✿✹❳✯ ❁❳✬✰❬▼✢✥✤✧✦✍➂➊✯ ✱✲✤✲✭✺❺⑨✦✓✢✫✯ ✭✥❀✫➂➍✭✥✬✧✬❂❁✫✮✾✦✆✴➃❿✥✬✳❁❳✴✷✭✥✬▼✦✍✴ ❿❳✸❯✯ ✭✺❀➎✦✗✢✫✯ ✭✺❀✫✮✰✶❳✩✥➅❯✦s✴❳➅❯❁✫✤✧✦✍✬ ✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✡

n Makefile

➐ ➑✷➒✿➓ ➔➀→➀➣❛↔➎➓ ➐ ➑➀➣✪↔❪↕✲➙❚➛✌➜➀➣➝➙❯↕✲➞✻➟ ➠ ➡✿➢❯➤❸➥✧➠✆➦

:

➧✿➨❳➩ ➢✺➫✵➥⑨➦

n

➭➯✬✧✤➀✭✺✮✾✦✓✢✺✤✿✦➀✬✧✤✧✹✫✢❽✦✍✤✲✸ ❀✫✬✧✦✾➲ ➥✓➳✷➥✓➵ ➲✥➧✳➨ ➵ ✬✧✤✿✹❳✢ ✮✵✴✷✶✫✸ ✹✺✬

n

➋■✱➀✤✲✭✥❺▼✴✿✱➀✦✓✢✺✬✳✮✵✴✷✶✫✸ ✹✺✬✧✮❷✤✲✸ ✬✽❹★✴✿❁❸✯ ✱✗✯ ✬❂❁✫➂✪✦✓✢✥✬✲✭❽✤✪✼ ✼ ✦✓✢✺✬✰✦✍✤✲✸ ❀✫✬✧✦✍✮✾✤✲✸ ✬✳✹✺✴✷✭✺✮❳✯ ❁✿✬➀✸ ✬✧❁❪✴✷✶✥✦s➅❯✴❳✱✆➅❯❁✫✤✧✦✍✬

n

➸➀➺P➻✪➟✽➼➀➓ ➣➊➽

main.class: main.java

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏✄✚

n

➾❩↕✪➞✾➣✲➻❛➒❂➜➚→➀➣❛➼➀➣❛➑✷→➀➣✪➑✷➒❂➪P➶➊➒✧➻❩➑✣➻✪→✲→➚➻❩➑ ➻❩➒✧➛■➐ ↕✲➑✣➛■↕➹➼✲➣✪➞✗➙❯↕✲➞✻➟➘➛✌↕➝➴✷➞✻➐ ➑✲➷➚➛✞➜✷➣➃➛■➻✪➞✞➷➀➣✲➛■➬✓↔❂➮ ➔✲➼➀➱✗➛■↕✲➱✗→✷➻❛➛■➣

n

❾✪✹✺✦✓✯ ✴➀✭➎✯ ✮❷✤✳✮✵✬➀✸❯✯ ✬✧✮✾✴✿✱✲✮✿✢✥✬✲✼ ✼✓✹✺✴✷❹✳❹★✤✲✭✺❁➹✼ ✯ ✭✺✬✧✮ n ❍✺❙✺◆✃❱❷❉ ❇ ❋■❍▼❖❘❞■❆✞❑✿❆✞❑✠❙✿▲ ❑❳➆★❇ ❑✌❱✷❙❘❑✠❙✿❈ n ❞✌❆✌❍❚❐✓❈✺❇ ❋✌❐s❆✃❱✷❆■❊✧❋✌❑✠❙✵➉

n

➸✲➺P➻✪➟✽➼➀➓ ➣➊➽

main.class: main.java javac main.java

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ➏

n make

➠ ➡✧➢❯➤❸➥✧➠✆➦ n ❞✌❆✌❍✺❆

Makefile

❇ ❋❸◆✃❞✥▲✆▲ ❍✫❋■❑✫❏❳❇ ▲ ❍✥◆✞❑ ❅P▲ ❊➊❑ ❅▼❈✥▲s❇ ❋■❒❚❅P❋❯❍ ❅P▲P❖✲❅❳▲ ❍✰❮ ❰✺Ï✆Ð❳Ñ✥❮ ❆❷❞❝◗➀❑✠❅❚❏❝❙✵❑✠❍✺Ò➀❞❯❆❝❇ ❋✌❒★❑✌❱✌❍✿❇ ▲❝❙✵◆✻❑✌❇ ❅P❋✌❆ n ❏❝❅✥❍✵❆✾❋■❅✥❑✌❱✥❇ ❋✌❒✳❇ ❲✿❙❳❉ ❉✌❑✠❙✿▲ ❒✥❍✺❑✠❆★❞❝◗✷❑ ❅★❏❝❙✵❑✠❍ n ❇ ❲✿❅P❖➊❇ ❑❳❑✠❙❳▲ ❒✥❍✥❑✿❙❳▲ ❒P❞✥❖✲❍✫❋■❑✠❆✞Ò❂❑✌❱■❍✫❋❚▲ ❍✫❈✥❞❝❇ ❉ ❏★❑✌❱■❍❚❲■❇ ▲ ❆✞❑ ❑✠❙✿▲ ❒✥❍✥❑➀❇ ❋★ÓP❙✿⑩✍❍✺❲❯❇ ❉ ❍ n ♠ Ô✻q❩♣✻q■♦ ❤■❧⑨✐ ♠❝♠ ❤■t Õ✞q■♠

n

Ö✥×⑨✤➀❹▼✩✫✼ ✬✪Ø

> make main.class javac main.java >

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ Ù

n

Ú✃❺Û❁✫✬✧✱s✤✪✶✫✼ ✦✍➂ make ✩✫✸❯✯ ✭✥✦s✮✾✴➀✶✥✦✷✬❂✤✿✹❳✢✾✤✿✹✺✦✓✯ ✴➀✭➎✯ ✦ ✩✺✬➀✸ ✱✆✴✷✸❯❹❷✮

n

Ü❛✤✲✭●❁✷✯ ✮✓✤✲❿✫✼ ✬✽✩❳✸❯✯ ✭✺✦✓✯ ✭✺❀➁✤✪✭❽✤✿✹✺✦✓✯ ✴✷✭❪❿✺❺Ý✩❳✸ ✬✿✱✻✯ ×❩✯ ✭✥❀➃✯ ✦ ❬✳✯ ✦✓✢

@

n

Ö✺×⑨✤➀❹▼✩✫✼ ✬✲Ø

main.class: main.java @echo Compiling main.java… @javac main.java > make main.class Compiling main.java… >

slide-2
SLIDE 2
  • ✁✄✂✆☎✞✝✠✟
✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✝

n

✁Û➙❯➛■➣✪➑➚➜✷➻✄✂❳➣➝➻✽↔❂➐ ➟➃➼➀➓ ➣➃➞✗➔➀➓ ➣➝↕☎✂✫➣✲➞❷➻❛➓ ➓✲➙❯➐ ➓ ➣✪↔ ✆ ➐ ➛✌➜➚➒❂➣✲➞✞➛✞➻❩➐ ➑➚➑✷➻❛➟✽➐ ➑➀➷➹➼✷➻✪➛✌➛■➣✪➞✞➑✷↔

n

Ü❛✤➀✭➁✶✥✮✵✬

%

✯ ✭✾✦✗✢✥✬✰✦s✤➀✸ ❀✿✬✿✦✷✤✲✭✺❁➁✮✵✴✷✶✫✸ ✹✥✬

n

✝✲✶❳✼ ✬✳✤➀✩✿✩✫✼ ✯ ✬✿✮❷✦✍✴❪✤✲✭✥❺❼✸ ✬✿✤✲✼✵✦s✤➀✸ ❀❳✬✿✦s✮✾✤✪✭✥❁ ✮✵✴✷✶✫✸ ✹✺✬✧✮✾❬✳✢✥✬➀✸ ✬

%

✯ ✮❪✸ ✬✲✩✫✼ ✤✧✹✥✬❂❁➝❿✺❺Û✦✓✢✺✬✰✮✵✤✲❹★✬ ✦✓✢❳✯ ✭✺❀➎✴➀✭❪❿✥✴❳✦✗✢❽✮❳✯ ❁❳✬✿✮

n

➸➀➺P➻✪➟✽➼➀➓ ➣➊➽

%.class: %.java

n

➭➯✬✧✤➀✭✺✮✾✦✓✢✺✤✿✦✟✞ .class ❁✫✬✪✩✥✬✲✭✺❁✫✮❷✴➀✭✠✞ .java ✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✡

n

❾❛✹✺✦✓✯ ✴✷✭✥✮❷✱s✴➀✸❩❁❳✬✲✩✺✬➀✭✵❁✫✬➀✭✺✹✺❺Ý✩✺✤✧✦✍✦s✬➀✸❯✭✺✮❪✭✥✬✧✬✿❁❪✦s✴ ✢✺✤✿➌⑨✬ ✩✥✤✿✦s✦✍✬✲✸❯✭✥✮✾✦s✴❳✴ n $@ ❜❝❑✌❱■❍❘❑✠❙✿▲ ❒✺❍✥❑ n $^ ❜❝❑✌❱■❍❘❆■❅P❞❝▲ ◆✌❍☞☛s❆✍✌ n $* ❜❝❑✌❱■❍❘❑✌❱❝❇ ❋■❒✰❖✲❙✵❑✠◆✃❱✌❍✺❏✳❈■❊

%

❇ ❋✷❑✌❱❯❍Û▲s❞✥❉ ❍

n

Ö✺×⑨✤➀❹▼✩✫✼ ✬✲Ø

%.class: %.java @echo –n "compiling class $* " @echo "($^ to $@)" javac $^

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✎

n

✁Û➑✲➣➝➛✌➻❩➞✗➷➀➣❛➛❷➒❂➻❛➑➚→➀➣❛➼➀➣✪➑✲→✣↕✲➑➚➻❛➑➀↕✲➛✌➜➀➣❛➞ ➛✌➻❛➞✻➷✲➣✲➛■➶❘➻❩→➚➑✷➻❩➔➀↔⑨➣✲➔✷➟

n

✏P✬➀✩✥✬✲✭✺❁❳✬➀✭✥✹✺❺Ý✸❯✶❳✼ ✬✿✮❷✱s✴➀✸❯❹ ✤✒✑✔✓✖✕✘✗✌❁➀✯ ✸ ✬✿✹✺✦✍✬✧❁ ✤✧✹✥❺⑨✹❳✼ ✯ ✹❷❀❸✸ ✤✲✩✫✢✚✙

n make

➙❯➐ ➷✷➔➀➞✻➣✪↔❪↕✲➔✷➛❚➜➀↕ ✆ ➛✌↕➹➞✻➣❛➴✷➔➀➐ ➓ →✣➻ ➛✌➻❛➞✻➷✲➣✲➛❚➴✷➪ ➙❯➐ ➞✞↔✧➛★➟✽➻✄✛❳➐ ➑➀➷➚↔❂➔➀➞✞➣➝➐ ➛✌↔❪↔⑨↕✲➔✷➞✻➒✧➣❛↔ ➻❛➞✞➣➝➔✷➼✲➱✗➛■↕✲➱✗→✷➻❛➛■➣✪➶ ✆ ➜✷➐ ➒✧➜➚➟➝➻❛➪ ➒✧➻❩➔✷↔⑨➣

make

➛✌↕➝➙■➐ ➞✗↔⑨➛★➞✻➣❛➴➀➔✷➐ ➓ →✣➛■➜➀➣✲➟✽➶❘➞✻➣❛➒✧➔➀➞✗↔⑨➐ ✂P➣❛➓ ➪ ✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✜

%.class: %.java javac $^ main.jar: main.class helper.class jar cfv $@ $^ install: main.jar cp $^ ${HOME}/bin

> make install javac main.java javac helper.java jar cfv main.jar main.class helper.class cp main.jar /homes/iws/myLogin/bin

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✛

n

Ü✪✤✲✭❽❁❳✬✧✱✗✯ ✭✥✬▼➌⑨✤➀✸❯✯ ✤✪❿✫✼ ✬✿✮✰✯ ✭

Makefile

✮✵➂✲✤✲✭✥❁➃✶✥✮✵✬ ✦✓✢✥✬✲❹ ✯ ✭❪✸❯✶❳✼ ✬✧✮★✤➀✭✥❁❪✤✧✹✺✦✓✯ ✴✷✭✥✮ n ✢✤✣✦✥★✧✩✣✦✪✟✫

=

✥✦✫✭✬☞✮✯✣✱✰✲✫✭✪✳✫✭✧✵✴✷✶ n ✸✓❍✥❲ ❍✿▲ ❍✫❋❯◆✻❍✺❏▼❞✌❆❝❇ ❋✌❒

${

✢✤✣✹✥✹✧✺✣✦✪✟✫ }

n

Ö✥×⑨✤➀❹▼✩✫✼ ✬✪Ø

JAVAC_FLAGS = -g %.class: %.java @echo "compiling class $*" javac ${JAVAC_FLAGS} $^

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ ➏ ✟

n

✻ ➻❛➑➚→➀↕➚➞✞➣✪➼➀➓ ➻❛➒❂➣✪➟➃➣❛➑✷➛✌↔❪➐ ➑✼✂P➻❩➞✻➐ ➻❛➴➀➓ ➣✪↔

n ${

✽✾✓✄✿ : ➨❁❀s➲✚❂ ➡✲➠ = ➵❸➥✹❃ ❂ ➡➀➠ }

n

➨✚❀s➲☞❂ ➡➀➠ ✤✲✭✺❁ ➵❸➥✦❃ ❂ ➡✲➠ ✹✥✤✲✭✾✹✥✴➀✭✥✦✍✤✲✯ ✭ %

n

❹❷✤✧✦✍✹❳✢●✬❂✤✧✹✫✢❽❬❚✴✷✸ ❁➝✯ ✭ ${ ✽✾✓✱✿ } ✤✧❀❳✤✪✯ ✭✥✮✵✦ ➨✚❀s➲☞❂ ➡➀➠ ➂✲❬✳✢✺✬✲✸ ✬

%

✹✺✤➀✭❪❹★✤✿✦s✹✫✢✾✤✲✭✥❺⑨✦✓✢✿✯ ✭✥❀

n

✸ ✬➀✩❳✼ ✤✧✹✺✬➄❹★✤✧✦✍✹❳✢✥✬✧✮✾❬✳✯ ✦✓✢ ➵❸➥✹❃ n ❇ ❲✩❄PÑ❁❅●◆✌❅P❋✌❑✠❙✿❇ ❋■❆

%

Ò❂❆❝❞❝❈■❆✞❑■❇ ❑✌❞✌❑✠❍❘➆★❇ ❑✌❱✷➆★❱✌❙✵❑ % ❖✲❙✵❑✠◆⑨❱■❍✥❏

n

❆❷↕✲↕✪→➚➙❯↕➀➞✾➻❩→❈❇✻➔✷↔⑨➛✞➐ ➑➀➷➚➣✪➺✫➛■➣✲➑➀↔⑨➐ ↕✪➑✷↔⑨➶➊➼➀➞✞➣✲➙❯➐ ➺❳➣✲↔
slide-3
SLIDE 3
  • ✁✄✂✆☎✞✝✠✟
✡ ☛✌☞ ☞✍✁✄✎ ✏ ✑ ✒✓✁✆✔ ✏ ✕✗✖ ✘ ✎ ✙ Ù ✡

SRCS = A.java B.java C.java OBJS = ${SRCS:%.java=%.class} default: ${OBJS} INSTALL_DIR = ${HOME}/bin INSTALLED_OBJS = \ ${OBJS:%=${INSTALL_DIR}/%} ${INSTALL_DIR}/%.class: %.class cp $^ $@ install: ${INSTALLED_OBJS}

✁✄✂✆☎✞✝✠✟ ✡ ☛✌☞ ☞⑥✁✄✎ ✏ ✑ ✒✓✁s✔ ✏ ✕✗✖ ✘ ✎ ✙ Ù✆✚

n

Ö✺×⑨✦✍✬✲✭✥❁

Makefile

✮✺✴✳✦✓✢✥✤✧✦✂✁ make clean ✁ ✸ ✬✲❹❷✴✿➌⑨✬✿✮★✤➀✼ ✼ .class ✱✻✯ ✼ ✬✿✮

n

❾❛❁✫❁❪✤✽✸❯✶❳✼ ✬✰✮✵✴❪✦✓✢✥✤✧✦✷➋➍✹✵✤✲✭●✮✵✤❂❺✄✁ make ☎ ➨❳➨ .java.ps ✁✻➂✪✱s✴➀✸✫✤➀✭✥❺ ☎ ➨❳➨ .java ➂✲✦s✴❪✱s✴➀✸❯❹❷✤✧✦ ❹★❺✝✆✗✤❂➌⑨✤✰✮✵✴➀✶✫✸ ✹✵✬✰✱✗✯ ✼ ✬➄✶✺✮❳✯ ✭✥❀

enscript –2r

✯ ✭✥✦s✴❪✤✽✭✫✯ ✹✵✬➀✼ ❺Û✱s✴➀✸⑥❹❷✤✧✦✍✦s✬✿❁

.ps

✱✗✯ ✼ ✬

n

❾❛❁✫❁❪✤✽✸❯✶❳✼ ✬✰✦✍✴➃✩✫✶✺✦➀✤➀✼ ✼✧❹❷❺

.class

✱✗✯ ✼ ✬✿✮✰✯ ✭✥✦✍✴❪✤ ✮✿✯ ✭✥❀❸✼ ✬

.jar

✱✗✯ ✼ ✬

n

❾❛❁✫❁❪✤✰➌❝✤➀✸❯✯ ✤✲❿❳✼ ✬✳❁✫✬✧✱✻✯ ✭❳✯ ✭✵❀❪✤➀✼ ✼✵✦✓✢✥✬

.java

✱✻✯ ✼ ✬✿✮✰✯ ✭ ❹★❺▼✤✪✩✫✩✫✼ ✯ ✹✺✤✿✦✗✯ ✴✷✭✥➂✪✤✲✭✺❁➎✴✲✭✫✼ ❺Û✹✫✼ ✬✧✤➀✭✺➂✲✱✄✴✷✸❯❹❷✤✧✦✍➂✪✤➀✭✵❁ ✤✲✸ ✹❳✢✫✯ ➌⑨✬✰✦✓✢✥✴✿✮✵✬✳✱✻✯ ✼ ✬✧✮