Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ASCII art oneliner
Search
MSR
October 29, 2016
Technology
0
1.9k
ASCII art oneliner
アスキーアート(突然の死、slコマンド、端末画面ぐちゃぐちゃ)をワンライナーでやってみた
※完全版
MSR
October 29, 2016
Tweet
Share
More Decks by MSR
See All by MSR
horizon
msr_i386
0
1.1k
fujiaire by shell
msr_i386
0
810
colaboratory
msr_i386
0
140
yes command faster
msr_i386
0
320
Amazon Dash Hack
msr_i386
0
1.4k
cgroup
msr_i386
0
1.3k
discover fork-bomb
msr_i386
0
1.8k
kanji banner
msr_i386
0
1.8k
QR Code Shell
msr_i386
0
2.2k
Other Decks in Technology
See All in Technology
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
3.2k
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
280
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
240
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
A better future with KSS
kneath
238
17k
The Language of Interfaces
destraynor
154
24k
Why Our Code Smells
bkeepers
PRO
334
57k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Into the Great Unknown - MozCon
thekraken
32
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Designing the Hi-DPI Web
ddemaree
280
34k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Typedesign – Prime Four
hannesfritz
40
2.4k
Transcript
ΞεΩʔΞʔτ ϫϯϥΠφʔ @ୈ25ճγΣϧܳษڧձ େࡕαςϥΠτ (2016.10.29) MSR (@msr386)
࣍ ➤ ࣗݾհ ➤ ࠓ·Ͱͷল ➤ ΞεΩʔΞʔτͳγΣϧܳ (όφʔܳ) ➤ ಥવͷࢮ
➤ slίϚϯυ ➤ λʔϛφϧը໘Λ͙ͪΌ͙ͪΌʹ͢Δ ➤ ·ͱΊ
ࣗݾհ ➤ ϋϯυϧωʔϜ: MSR (@msr386) ➤ C++ϓϩάϥϛϯάɺαʔόʔӡ༻͕ಘҙ ➤ ٻ৬த ➤
Chromium Contributor (1ճ͚ͩ) ➤ Webϒϥβ࡞͍ͬͯ·͢ (http://app.tungsten-start.net/)
ࠓ·Ͱͷল
͜Ε·Ͱͷࣗͷओͳ LTൃදΛৼΓฦΔͱ
(1)Χφμͷങ͍ΓVPSͷհ ӡ༻ʹ͑ͳ͍͚ͲγΣϧܳ࿉ʹͽͬͨΓ?
(2) QRίʔυγΣϧܳ? QRةݥγΣϧܳ / QRίʔυγΣϧܳͷՄೳੑΛࡧ
΄ͱΜͲγΣϧܳͱ ؔͳ͍͡ΌΜ (ΨνͷγΣϧܳΖ͏ͥ)
࠷ۙͷόφʔܳͱ͍͏ ྲྀߦʹΓ
ΞεΩʔΞʔτγΣϧ ܳΛΓ·͢
1. ಥવͷࢮ
?P? ɹɹc ɹɹ
ʘ ?P? ɹʘc ɹɹɹʼ
ʻ ?P? ʼ ɹࡾ ࡾ ʻʉʉʼ
Є ?P? ɹʻ ʼάΩο ʻʉʉʼ
ʊਓਓਓਓʊ ʼಥવͷࢮʻ ʉ:?:?:?:ʉ
ಥવͷࢮ ➤ 2012ࠒɺͱ͋Δܝࣔ൘ʹॻ͖ࠐ·Εͨͷ͕ݩωλͱݴΘΕ͍ͯΔ ➤ ࠷ޙͷғΈจࣈͷΞεΩʔΞʔτ͚͕ͩΑ͘ΘΕ͍ͯΔ ➤ 2013ʹTwitterͰվߦίʔυ͕ରԠ͔ͯ͠Βڻҟతʹ֦ࢄ ➤ ओͳಛ ➤
൚༻ੑͷߴ͞ ➤ ΞεΩʔΞʔτͷ୯७͞ ➤ ݟͨͷྗڧ͞ ➤ ʮಥવͷࢮδΣωϨʔλʔʯͱ͍͏໊લͰWebαʔϏεԽɺiOSAndroid͚ʹΞϓ ϦԽ͞Ε͍ͯΔ
ಥવͷࢮɹγΣϧεΫϦϓτ൛͕ଘࡏ ➤ γΣϧεΫϦϓτ͋Δ (https://fumiyas.github.io/2013/12/25/echo-sd.sh-advent-calendar.html) $ echo -e "crontab -r\n突然の危険シェル芸" |
echo-sd -s --center _人人人人人人人人人人人_ > crontab -r < > 突然の危険シェル芸 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $ $ echo-sd -v 縦書き _人人_ > 縦 < > 書 < > き < ‾Y^Y^‾ $
ಥવͷࢮɹγΣϧεΫϦϓτ൛͕ଘࡏ ➤ ॎॻ͖ɺɺετϨεൃੜաఔϞʔυɺπΠʔτػೳͳͲػೳ͕๛ $ echo-sd --stress "crontab: no crontab for
root" あれ?中身消えてる "(historyの結果) 334 sudo crontab -r" "eとr押し間違い!バック アップない!!" 危険シェル芸 crontab: no crontab for root ↘ あれ?中身消えてる ⾫ (historyの結果) 334 sudo crontab -r ↘ eとr押し間違い!バックアップない!! ⾫ _人人人人人人人人_ > 危険シェル芸 < ‾Y^Y^Y^Y^Y^Y^Y^Y^‾ $ echo-sd --tanzaku ":(){ :|:& };:" ┏-┷-┓ ┃ ‥ ┃ ┃ ⏜ ┃ ┃ ⏝ ┃ ┃ ⏞ ┃ ┃ ┃ ┃ ‥ ┃ ┃ | ┃ ┃ ‥ ┃ ┃ & ┃ ┃ ┃ ┃ ⏟ ┃ ┃ ; ┃ ┃ ‥ ┃ ┗━━┛
ϫϯϥΠϯ࣮ɺ։࢝
࢝ΊΔલʹ ୯७ԽͷͨΊʹɺҎԼͷΑ͏ͳखൈ͖Λ͠·͢ ➤ ෯ϑΥϯτʹಛԽ ➤ 1ߦ͚ͩରԠ ෳߦͰߟྀ͖͢͜ͱ͕૿͑ΔͨΊ ➤ શ֯จࣈ͚ͩରԠ ֯จࣈͱΓ͋͑ͣແࢹ͢Δ
➤ LANG=ja_JP .UTF-8 લఏ LANGʹΑΓจࣈܭࢉ͕͓͔͘͠ͳΒͳ͍Α͏ʹ͢ΔͨΊ
੍࡞աఔ 1. ಛΛଊ͑Δ _人人人人人人_ > 突然の死 < ‾Y^Y^Y^Y^Y^Y^‾ ಥવͷࢮɺจࣈʹԠ্ͯ͡෦ɺԼ෦ͷจࣈ͕มԽ͢Δ →্෦ʮਓʯͱԼ෦ʮY^ʯΛશ֯1จࣈʹରͯ͠1ݸͣͭ૿ͤΑ͍
੍࡞աఔ 2. จࣈΛௐΔʹ? awkͷlength()Λ༻͢Δ for (i=0; i<length()+2; i++) { up=up
"ਓ"; dn=dn "Y^" } ※+2ࠨӈͷه߸ͱ༨ന 3. printfͰܗ͢Δ printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn)
ಥવͷϫϯϥΠφʔ୯७൛ $ echo 突然の死 | awk \ '{for(i=0;i<length()+2;i++) \ {up=up
"人"; dn=dn "Y^"} printf( \ "_%s_\n> %s <\n‾%s‾\n", \ up, $0, dn)}'
ಥવͷϫϯϥΠφʔ୯७൛ɹ࣮ߦྫ $ echo 突然の死 | awk '{for(i=0;i<length()+2;i++){up=up "人"; dn=dn "Y^"}
printf("_%s_\n> %s <\n‾%s‾\n", up, $0, dn)}' _人人人人人人_ > 突然の死 < ‾Y^Y^Y^Y^Y^Y^‾ $ $ echo Hankakuだとずれる | awk '{for(i=0;i<length()+2;i++){up=up "人"; dn=dn "Y^"} printf("_%s_\n> %s <\n‾%s‾\n", up, $0, dn)}' _人人人人人人人人人人人人人人_ > Hankakuだとずれる < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $
ಥવͷϫϯϥΠφʔ୯७൛ͷಛͱ ಛ ➤ awkҰൃܳ ➤ πΠʔτՄೳ(112จࣈ) ➤ ֯จࣈࠞ͟ΔͱͣΕΔͷखൈ͖͠ա͗͡Όͳ͍? ֯จࣈͰͣΕΔݪҼɺawkͷlength()ͷ༷
➤ LANGڥมʹґଘ ➤ ja_JP .UTF-8ͷ߹ɺશ֯֯1Λฦ͢ ➤ ͳΒɺશ֯2ɺ֯1ΛฦͤͣΕͳ͍ΑͶ?
ಥવͷϫϯϥΠφʔվྑ൛ $ echo 突然の死 | awk \ '{for(i=1;i<=length();i++){ \ len+=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}
\ for(i=0;i<len/2+2;i++){ \ up=up "人";dn=dn "Y^"} \ printf("_%s_\n> %s <\n‾%s‾\n", \ up,$0,dn)}'
ಥવͷϫϯϥΠφʔվྑ൛ɹ࣮ߦྫ $ echo 突然のワンライナーEx | awk '{for(i=1;i<=length();i++){len +=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}for(i=0;i<len/2+2;i++){up=up "人";dn=dn "Y^"}printf("_%s_\n> %s <\n‾%s‾\n",up,$0,dn)}'
_人人人人人人人人人人人人_ > 突然のワンライナーEx < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $ $ echo Hankakuでもずれは最小限 | awk '{for(i=1;i<=length();i++){len +=(substr($0,i,1)~/[\x01-\x7E]/)?1:2}for(i=0;i<len/2+2;i++){up=up "人";dn=dn "Y^"}printf("_%s_\n> %s <\n‾%s‾\n",up,$0,dn)}' _人人人人人人人人人人人人人人_ > Hankakuでもずれは最小限 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^‾ $
ಥવͷϫϯϥΠφʔվྑ൛ͷಛ ➤ վળ ➤ ͕֯ࠞͬͯͣ͟Εͳ͍ ➤ վѱ ➤ πΠʔτෆՄ
վྑ൛ͷղઆ ➤ awkΛܗ͢Δͱ͜ͷΑ͏ʹͳΔ { for(i = 1; i <= length();
i++) { len += ( substr($0,i,1) ~/[\x01-\x7E]/ ) ? 1 : 2 } for(i = 0; i < len / 2 + 2; i++) { up = up "ਓ"; dn = dn "Y^" } printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn) }
վྑ൛ͷղઆ (1.) for(i = 1; i <= length(); i++) {
len += (substr($0,i,1)~/[\x01-\x7E]/) ? 1 : 2 } (2.) for(i = 0; i < len / 2 + 2; i++) { up = up "ਓ"; dn = dn "Y^" } (3.) printf("ʊ%sʊ\nʼɹ%sɹʻ\nʉ%sʉ\n", up, $0, dn) 1. จࣈΛऔಘ 1จࣈͣͭऔΓग़͠ɺจࣈ͕UTF-8Ͱ1όΠτ จࣈͰ͋Δ߹1ɺͦΕҎ֎2ͱ͢Δɻ UTF-8ͷ1όΠτจࣈɺ0x01ʙ0x7eؚ͕· Ε͍ͯΔ͔Ͳ͏͔Ͱఆ͢Δɻ 2. ্෦ʮਓʯɺԼ෦ʮY^ʯΛจࣈʹԠͯ͡ ૿͢ ૿͢શ֯ج४Ͱ͋Δ͜ͱʹҙ 3. printfͰܗ
͞ΒͳΔվྑͷಓ ➤ ෳߦରԠ ➤ ϧʔϓճΛݮΒ͢ͳͲͷ࠷దԽ ➤ awkΛΘͳ͍ํ๏ ➤ etc. ➤
ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͠·͠ΐ͏
൪֎ฤ _人人人人人人人_ > 突然のSEGV < ‾Y^Y^Y^Y^Y^Y^Y^‾
൪֎ฤ ➤ SEGVͰམͪͨɾɾɾ༷? $ awk --version GNU Awk 4.1.3, API:
1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0) <ҎԼུ> $ echo ಥવͷSEGV | awk '{print $0~/[\x00-\x7F]/}' 1 $ echo ಥવͷSEGV | awk '{print $0~/[\x00-\x80]/}' awk: ίϚϯυϥΠϯ:1: க໋తΤϥʔ: ෦Τϥʔ: ηάϝϯςʔγϣϯҧ Aborted (core dumped) $
2. SLίϚϯυ
LSͷ͋Δ͋Δ ➤ lsͱೖΕΑ͏ͱͯ͠ $ sl -l sl: command not found
$ ➤ lʮ͔ͯ͠͠ʯ sʮΘͨͨͪ͠ʯ ҎԼུ ➤ lsͱؒҧ͑ͯslͬͯೖΕͪΌͬͨʂͱ͍͏͋Δ͋Δ͔Βɺslͱ͍͏δϣʔΫίϚϯ υ͕ੜͨ͠
SLίϚϯυͷ͍ྺ࢙ ➤ 1987ɺUNIXχϡʔεάϧʔϓfj.sourceʹॳొ(࡞ऀՎਖ਼͞Μ) ➤ 1993ɺ๛ాਖ਼࢙͞Μ(ݱࡏɺ।ڭत)͕slίϚϯυΛϦϦʔε ͨͩͷδϣʔΫίϚϯυ͔ΒΩʔλΠϓڲਖ਼ίϚϯυʹਐԽ ➤ 1990ޙʙ LinuxσΟετϦϏϡʔγϣϯʹࡌ͞ΕΔΑ͏ʹͳΔ ➤
2000ɺslͷվ൛͕ొ ➤ དྷͰ30प!
SLίϚϯυͷಛ ➤ Ctrl+C (SIGINT) Λԡͯ͠தஅ͠ͳ͍ ΩʔλΠϓڲਖ਼͕త͔ͩΒ ➤ lsΑΓ࣮ߦ͕࣌ؒΔ͔ʹ͍ ΩʔλΠϓڲਖ਼͕త͔ͩΒ ➤
Φϓγϣϯ͕lsʹࣅ͍ͯΔ Ωʔt δϣʔΫίϚϯυ͔ͩΒ
SLίϚϯυΛγΣϧܳͰ
݅ ➤ ݩωλͷΞεΩʔΞʔτΛϕʔεͱ͢Δ o o o ____ --
|OO| _||__| | | | /-O=O O=O-- ➤ ंྠճΒͳ͍ ➤ ৠؾݻఆ͔ͭग़ͬͺͳ͠ ➤ ӈ͔Βࠨಈ͕͘ɺؿंશମৗʹදࣔͤ͞Δ ➤ Ctrl+C༗ޮ (ΩʔλΠϓڲਖ਼͕తͰͳ͍͔Β)
γΣϧܳखॱ̍ AAΛ1ߦʹ $ echo -e " o \n o \n
o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" o o o ____ -- |OO| _||__| | | | /-O=O O=O-- $
γΣϧܳखॱ̎ ӈ٧Ί͢Δ ڥʹԠͯ͡ tput colsɺBSDܥͳΒ tput coɺBashͳΒecho $COLUMNS Ͱͷ෯͕ औಘͰ͖Δ
$ echo $COLUMNS 120 awkͷ-vΦϓγϣϯͰγΣϧมΛ͠ɺεΫϦϓτͷprintfͰӈ٧Ίͤ͞Δ $ echo -e " o \n o \n o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" | awk -v col=$COLUMNS '{printf("%" col "s\n", $0)}'
γΣϧܳखॱ̏ ӈ٧Ίͷ෯ΛݮΒ͍͖ͯ͠ɺ for ; do ; doneΛ༻͢Δ $ for ((i=$COLUMNS;
i>=11; i--)); do clear; echo -e " o \n o \n o ____\n -- |OO|\n _||__| |\n | |\n/-O=O O=O--" | awk -v col=$i '{printf("%" col "s\n", $0)}'; sleep 0.06; done
͞ΒͳΔվྑͷಓ ➤ ͍͖ͳΓݱΕ͍͖ͯͳΓࢭ·ΔͷͰɺྻंࣄނͷΑ͏ʹݟ͑Δ ˞ݩωλΓڈΔ ➤ ʹΑͬͯͪΒͭ͘͜ͱ͕͋Δ ➤ Ctrl-CΛແޮʹ͢ΔʹͲ͏ͨ͠Β͍͍? ➤ etc.
➤ ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͠·͠ΐ͏(2ճ)
SLίϚϯυ൪֎ฤ(1) lsʹࣅͨΦϓγϣϯଘࡏ͢Δ ➤ $ sl -a HELP! ➤ $ sl
-F ඈΜͩʂ ➤ $ sl -l ͪͬ͞ʂ ➤ $ sl -c C51ͩʂ(Α͘Βͳ͍) ➤ $ sl -aFlc શ෦ͤʂ
SLίϚϯυ൪֎ฤ(2) ➤ slίϚϯυͷιʔείʔυgithubʹɻϓϧϦΫͰ͞ΒʹਐԽ ➤ վ൛ͬͱ͍͢͝ ʮSL վܭըʯhttp://www.izumix.xyz/sl/ ʢύονద༻ࡁʣhttp://qiita.com/gm_kou/items/2840a6670dc2e733d00a ٬ं૿ͨ͠Γɺ౿ग़͖ͯͨΓɺSL͕ԟ෮ͨ͠Γɺ͕όϥόϥͩͬͨΓ͍Ζ͍Ζ δϣʔΫίϚϯυͷྖҬΛ͑ͨ࡞
➤ GistʹژٸԽύον͕͋Δ https://gist.github.com/poochin/1423262 # SL͡Όͳ͍͡ΌΜʂͱ͍͏ͳಥࠐΈ͝ԕྀ͍ͩ͘͞
3.λʔϛφϧը໘Λ ͙ͪΌ͙ͪΌʹ
λʔϛφϧը໘Λ͙ͪΌ͙ͪΌʹ ➤ ANSIΤεέʔϓγʔέϯεΛ͏͜ͱͰɺจࣈʹ৭Λ͚ͭͨΓɺഎܠ৭Λม͑ͨΓ ͕Ͱ͖Δ ➤ ͜ΕΛར༻ͯ͠ɺը໘Λ͙ͪΌ͙ͪΌʹ͢Δ͜ͱ͕Մೳ
എܠ৭Λม͑ΔANSIΤεέʔϓγʔέϯε ➤ എܠ৭Λม͑ΔΤεέʔϓγʔέϯε(جຊ8৭) ESC[ʻ40ʙ47ʼm 40: ࠇ, 41: , 42: ,
43: ԫ, 44: ੨, 45: Ϛθϯλ, 46: γΞϯ, 47: ന ※ʹΑΓ৭ඍົʹҟͳΔ ➤ എܠ৭Λม͑ΔΤεέʔϓγʔέϯε(256৭) ESC[48;5;ʻ৭൪߸ʼm 48: ֦ுഎܠ৭; 5: 256৭ΠϯσοΫεΧϥʔ; ৭൪߸: 0ʙ255Λࢦఆ ➤ ΤεέʔϓγʔέϯεͷϦηοτίʔυ (͜Ε͕ͳ͍ͱ৭͕Ϧηοτ͞Εͳ͍) ESC[0m
➤ echoίϚϯυͰ"\e"Λ͏ ※"\e"Λೝࣝ͠ͳ͍ڥ͋Δ ➤ printfίϚϯυͰ"\033"Λ͏ $ printf
"\033[45m%s\033[0m\n" Ϛθϯλ ANSIΤεέʔϓγʔέϯε͖Ͱදࣔ Ϛθϯλ $ echo -e “\e[46mγΞϯ\e[0m] γΞϯ
λʔϛφϧը໘͙ͪΌ͙ͪΌɹ˞ $ clear; while :; do c=`expr $RANDOM % 256`;
echo -en "\e[48;5;$ {c}m \e[0m"; done
λʔϛφϧը໘͙ͪΌ͙ͪΌɹվྑ൛ ➤ echo ➤ printf
※ൈ͚Δʹsleep 500Λফ͔͢Ctrl+CͰ $ clear; for color in `od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom` ; do echo -en "\e[48;5;${color}m \e[0m"; done; sleep 500 $ clear; for color in `od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom` ; do printf "\033[48;5;${color}m \033[0m"; done; sleep 500
ղઆ 1. 0ʙ255·ͰͷཚΛऔಘ odͱ/dev/urandomΛ༻͢Δ $ od -vAn -tu1 -N 1
< /dev/urandom 15 2. ͷը໘͍ͬͺ͍ʹͳΔΑ͏ʹɺܻ * ߦճ͚ͩཚΛऔಘ͢Δ $ od -vAn -tu1 -N $(($COLUMNS*$LINES)) < /dev/urandom 241 178 43 211 3 255 29 178 181 247 234 112 157 18 152 29 3. ΤεέʔϓγʔέϯεͰ৭Λม͑ͤ͞Δ $ echo -en “\e[48;5;${color}m \e[0m” $ printf “\033[48;5;${color}m \033[0m” 4. 2.ͰٻΊͨ݁ՌΛforͰճͤ
·ͱΊ ➤ ಥવͷࢮδΣωϨʔλʔͱslίϚϯυͳͲΛϫϯϥΠφʔͰ࣮ݱ ➤ awkͷ൚༻ੑΕͳ͍ ➤ δϣʔΫίϚϯυΛγΣϧܳͰ࣮ݱͤ͞Δͷָ͍͠ ➤ ͬͱ͍͍ํ๏͋ΔͣͳͷͰɺՋͳͱ͖ʹνϟϨϯδ͢ΔͷΑ͍ͱࢥ͍·͢