$30 off During Our Annual Pro Sale. View Details »

自律制御するWebサーバのための高速に動作する権限分離アーキテクチャ / pepabo-web-priv-autonomous

自律制御するWebサーバのための高速に動作する権限分離アーキテクチャ / pepabo-web-priv-autonomous

超高集積マルチテナント環境におけるなめらかなシステム

MATSUMOTO Ryosuke
PRO

July 09, 2016
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Technology

Transcript

  1. ௒ߴूੵϚϧνςφϯτ؀ڥʹ͓͚ΔͳΊΒ͔ͳγεςϜ
    দຊ྄հ(.01&1"#0JOD
    ϖύϘɾ͸ͯͳٕज़େձʙΠϯϑϥٕज़ج൫ʙ!෱Ԭ
    ࣗ཯੍ޚ͢Δ8FCαʔόͷͨΊͷ
    ߴ଎ʹಈ࡞͢Δݖݶ෼཭ΞʔΩςΫνϟ

    View Slide

  2. ओ੮ݚڀһγχΞɾϓϦϯγύϧΤϯδχΞ
    দຊ྄հ!NBUTVNPUPSZ
    ϖύϘݚڀॴ
    IUUQSFTFBSDINBUTVNPUPSKQ

    View Slide

  3. ೥݄೔૑ઃ
    IUUQSBOEQFQBCPDPN

    View Slide

  4. ϖύϘݚڀॴؔ࿈هࣄ
    w*/5&3/&58BUDI͞ΜʹΑΔऔࡐهࣄ
    ɹIUUQJOUFSOFUXBUDIJNQSFTTDPKQEPDTJOUFSWJFXIUNM
    w5IJOL*5͞ΜʹΑΔऔࡐهࣄ
    ɹIUUQTUIJOLJUDPKQBSUJDMF
    wϖύϘݚڀॴαΠτ
    ɹIUUQSBOEQFQBCPDPN

    View Slide

  5. ໨࣍ɿϖύϘݚڀॴͷऔΓ૊Έ
    wߴूੵϚϧνςφϯτ؀ڥͱ͸
    w8FCαʔόͷߴ଎ʹಈ࡞͢Δݖݶ෼཭ΞʔΩςΫνϟ
    w8FCαʔόͷࣗ཯੍ޚ
    w·ͱΊ

    View Slide

  6. ߴूੵϚϧνςφϯτ؀ڥͱ͸

    View Slide

  7. ྫ͑͹ฐࣾͰ͸
    ߴूੵϗεςΟϯάαʔϏε

    View Slide

  8. ϗεςΟϯάαʔϏεͷಛ௃
    wࣄۀऀ͸͓٬༷ͷ8FCίϯςϯπΛ੍ޚͰ͖ͳ͍
    wϛυϧ΢ΣΞɾ04Ͱ੍ޚ͢Δඞཁ͕͋Δ
    wڞ༗ͷ৔߹͸Ϧιʔε੍ޚ΍ηΩϡϦςΟ͕ॏཁ
    wಛʹੑೳͱ͍͔ʹόϥϯεΛͱΔ͔
    wฐࣾͰ͸௒ߴूੵͷڞ༗ϗεςΟϯάʹ߆͍ͬͯΔ

    View Slide

  9. ͳͥ௒ߴूੵʹͩ͜ΘΔͷ͔

    View Slide

  10. ಛʹن໛ͷେ͖͍ϩϦϙοϓʂ
    ສαΠτҎ্؅ཧ͓ͯ͠Γɺ೔ͷΞΫηε਺͸ԯҎ্

    View Slide

  11. ݸਓ޲͚αΠτத৺
    w໿ສαΠτΛӡ༻
    wֶੜ΍ओ්ͩͬͨΓݸਓ͕झຯͰ࢖͏༻్͕ଟ͍
    wϋʔυ΢ΣΞʹͲΕ͚ͩߴूੵͰ͖Δ͔ʹ௅ઓ
    wͱʹ͔҆͘͘ੑೳͷྑ͍΋ͷΛఏڙ͍ͨ͠
    wιϑτ΢ΣΞٕज़ʹΑͬͯղܾ͍ͨ͠

    View Slide

  12. 8FCαʔόͷΞʔΩςΫνϟ

    View Slide

  13. ϓϩηε਺ͱऩ༰αΠτ਺͕ॏཁ
    wϝϞϦ͸(#Ͱ$16ίΞ͸ݸ
    wαΠτ਺Λ਺ສ͔ΒສαΠτͰऩ༰͍ͨ͠
    wϓϩηε਺͕αΠτ਺ʹґଘ͠ͳ͍Α͏ͳߏ੒
    wෳ਺αΠτڞ༗ͷIUUQEϓϩηε͕ϦΫΤετ͞Εͨ
    ϗετ໊͔ΒಈతʹίϯςϯπΛݕग़ͯ͠ॲཧ˞
    ˞IUUQIUUQEBQBDIFPSHEPDTDVSSFOUFOWIPTUT

    View Slide

  14. ߴूੵͷͨΊͷΞʔΩςΫνϟ
    IUUQEϓϩηεݸºສສϓϩηεʢϢʔβݸผʹϓϩηεىಈʣ
    IUUQEϓϩηεݸ͙Β͍ͷԾ૝ϗετͰશϢʔβڞ༗
    IUUQE
    Ϣʔβ"
    IUUQE
    Ϣʔβ#
    IUUQE
    Ϣʔβ$
    IUUQE
    Ϣʔβ"
    Ϣʔβ#
    Ϣʔβ$
    ޮ཰ྑ͘࢒ϦιʔεΛ࢖͑Δ
    ىಈʹඞཁ
    ͳϦιʔε
    ىಈʹඞཁ
    ͳϦιʔε
    ىಈʹඞཁ
    ͳϦιʔε
    ىಈʹඞཁͳϦιʔε
    04 04

    View Slide

  15. ௒ߴूੵϚϧνςφϯτ؀ڥͷͨΊͷ
    ΞʔΩςΫνϟͷ՝୊

    View Slide

  16. ࠓ೔͸ҎԼͷͭͷ՝୊ղܾͷ࿩
    ηΩϡϦςΟͱੑೳͷཱ྆
    ςφϯτಛ༗ͷݪҼಛఆ͕ࠔ೉

    View Slide

  17. ηΩϡϦςΟͱੑೳͷཱ྆
    wϚϧνςφϯτͷಛੑ্ςφϯτຖʹݫີʹݖݶ෼཭
    wݖݶ෼཭ͷίετ͕ߴ͘ੑೳ͕ѱ͍
    w௒ߴूੵΛҡ࣋͠ͳ͕ΒηΩϡϦςΟͱੑೳΛཱ྆͠
    ͍͔ͯʹద੾ʹݖݶ෼཭͢Δ͔
    ˠɹߴ଎ʹಈ࡞͢Δݖݶ෼཭ΞʔΩςΫνϟ͕ཉ͍͠

    View Slide

  18. ςφϯτಛ༗ͷݪҼಛఆ͕ࠔ೉
    wαʔόෛՙ͕ṧഭ͖ͯͨ͠ࠒʹ͸ݪҼ͕ແ਺
    w௒ߴूੵϗεςΟϯάͩͱෛՙ͔͚͍ͯΔϢʔβ͕਺
    ඦͷ୯ҐͰ͍ΔͱݪҼಛఆͱͦͷ੍ݶ͕ࠔ೉
    wߴෛՙ΍ো֐࣌ͷӡ༻ίετ͸ඇৗʹߴ͍
    ˠɹࣗ཯੍ޚ͍ͤͨ͞

    View Slide

  19. ແ͍ͷͰ͋Ε͹࡞Γ·͠ΐ͏

    View Slide

  20. ֶज़ݚڀͷΞϓϩʔνͰ৽ٕज़Λ
    ݚڀ։ൃɾಋೖ

    View Slide

  21. ೥݄೔૑ઃ
    IUUQSBOEQFQBCPDPN

    View Slide

  22. View Slide

  23. ηΩϡϦςΟͱੑೳͷཱ྆
    ͱ͍͏՝୊Λղܾ

    View Slide

  24. 8FCαʔόͷ
    ߴ଎ʹಈ࡞͢Δݖݶ෼཭ΞʔΩςΫνϟ

    View Slide

  25. ௒ߴूੵԼͰͷಈతίϯςϯπͷݖݶ෼཭
    wTV&9&$͸ϦΫΤετຖʹϓϩηεͷੜ੒ഁغ͕ඞཁͰ஗͍
    w'BTU$(*͸Ϣʔβ਺ʹԠͯ͡ϓϩηε਺ͱϝϞϦྔ૿Ճ
    wNPE@SVJE΍TVJE͸ੑೳɾηΩϡϦςΟ໘Ͱ໰୊͋Γ˞
    wݖݶ෼཭ͷͨΊͷίετΛͲ͏Լ͛Δ͔
    w௒ߴूੵͷͨΊͷݖݶ෼཭ΞʔΩςΫνϟݕ౼
    ˞দຊ྄հ Ԭ෦णஉ εϨου୯ҐͰݖݶ෼཭Λߦ͏8FCαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ ిࢠ৘ใ௨৴ֶձ࿦จࢽ
    7PM+# /P QQ 0DU

    View Slide

  26. NPE@QSPDFTT@TFDVSJUZΛݚڀ։ൃ
    w"QBDIFͷεϨου୯Ґͷݖݶ෼཭ΞʔΩςΫνϟ
    wNPE@QIQͳͲͷ%40ͷݖݶ෼཭Λߴ଎ʹߦ͑Δ
    wϦΫΤετ࣌ͷݖݶ෼཭ͷίετΛ௿ݮ
    wϓϩηεͷੜ੒ഁغ͔ΒεϨουͷੜ੒ഁغ΁
    ˞দຊ྄հ Ԭ෦णஉ εϨου୯ҐͰݖݶ෼཭Λߦ͏8FCαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ ిࢠ৘ใ௨৴ֶձ࿦จࢽ
    7PM+# /P QQ 0DU
    IUUQTHJUIVCDPNNBUTVNPUPSNPE@QSPDFTT@TFDVSJUZ

    View Slide

  27. $(*QSPDFTT
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSSPPU

    QIQDHJJOEFYQIQ
    PXOFSVTFS

    $(*QSPDFTT
    PXOFSVTFS

    TFUVJE
    TFUHJE
    ʜ
    GPSL

    FYFDWF
    TVFYFDQSPHSBN TFUVJESPPU

    UFSNJOBUFQSPDFTT
    FYFDWF

    1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    ˞$(*TV&9&$NPEFM

    View Slide

  28. εϨουͱ-JOVY$BQBCJMJUJFT
    w਌ϓϩηε͔Βݖݶ෼཭ͷͨΊͷ$BQBCJMJUZ DBQ
    ͷΈΛҾ͖ܧ͙
    wNPE@QIQͳͲʹΑΔಈతίϯςϯπ࣮ߦ࣌ʹεϨουΛ࡞Δ
    wεϨου্ͰݖݶมߋޙʹDBQΛམͱͯ͠ίϯςϯπ࣮ߦ
    w7JSUVBMJOH˞Λ࢖ͬͯɺ"QBDIFͦͷ΋ͷΛ֤छಛݖΛམͱͭͭ͠
    3FBE0OMZͷCJOEϚ΢ϯτͱඞཁϑΝΠϧͱϦιʔε੍ݶԽͷ
    DISPPU؀ڥʹͯىಈ͓ͤͯ͘͞ͱΑΓڧݻ
    IUUQTHJUIVCDPNNBUTVNPUPSNSVCZWJSUVBMJOH

    View Slide

  29. 1BSFOUIUUQEQSPDFTT
    PXOFSSPPU

    $IJMEIUUQEQSPDFTT
    PXOFSBQBDIF

    NQTUISFBE
    PXOFSVTFS

    NQTUISFBE
    PXOFSBQBDIF

    JOEFYQIQ
    PXOFSVTFS

    TFUVJE
    TFUHJE
    ʜ VOTFUDBQT
    DSFBUFUISFBE TFUDBQT
    EFTUSPZUISFBE
    QBSTF SVO
    QSDUM
    TFUVJETFUHJEDBQT
    NQTUISFBE
    PXOFSVTFS

    ˞%40NPE@QSPDFTT@TFDVSJUZNPEFM
    7JSUVBMJOH&OWJSPONFOU

    View Slide

  30. γεςϜίʔϧͷ਺Λൺֱ
    wQIQJOGP
    ΁ͷΞΫηεΛTUSBDF͔Βղੳ
    w$(*ʴTV&9&$ճ
    wNPE@QIQNPE@QSPDFTT@TFDVSJUZճ
    wΦʔόʔϔουʹͳͬͯΔγεςϜίʔϧ
    wDMPOF
    PQFO
    DMPTF
    FYFDWF
    ͳͲTV&9&$ؔ࿈
    ˞TUSBDFDGQ1*%
    ˞DBUDHJMPHcHSFQWFQPMM@XBJUcHSFQWGVUFYcQFSMBOF
    QSJOU@JG

    View Slide

  31. View Slide

  32. ಋೖલޙͷ$16࢖༻ྔൺֱ
    Ұ೔ͷΞΫηε਺͸ͲͪΒͷαʔό΋໿ສʢαʔϏεશମͰ͸਺ेԯʣ
    $(*ʴTV&9&$ %40ʴNPE@QSPDFTT@TFDVSJUZ
    ˙TZTUFN
    ˙VTFS
    ˙JEMF

    View Slide

  33. ͦͷଞͷϝϦοτ
    wෛՙ͕େ෯ʹ௿ݮʢ1)1ར༻ऀ͕ଟ਺ʣ
    w%40ͳͷͰϓϩηεϦιʔεΧ΢ϯλΛऔಘՄೳ
    wࣗ཯੍ޚతʹϓϩηεࣗ਎ͷϦιʔε࢖༻ྔΛܭଌ͠
    ͯղੳ͔ͯ͠ΒԿΒ͔ͷ੍ޚ͕Մೳʹ
    ˠɹࣗ཯੍ޚͷલఏ৚݅Λຬͨ͢

    View Slide

  34. ߴूੵ؀ڥԼͰ΋ߴ଎͔ͭ҆ఆతͳ
    ݖݶ෼཭ΞʔΩςΫνϟ͕Ͱ͖ͨ

    View Slide

  35. ͞Βʹಥ͖٧Ί͍ͯ͘

    View Slide

  36. ӡ༻վળͷͨΊʹ͸ߴूੵԽʹ࠷దͳ
    Ϧιʔε੍ޚΞʔΩςΫνϟ͕ඞཁ

    View Slide

  37. ςφϯτಛ༗ͷݪҼಛఆͱ
    ੍ޚ͕ࠔ೉ͱ͍͏՝୊Λղܾ͍ͨ͠

    View Slide

  38. 8FCαʔόͷࣗ཯੍ޚ

    View Slide

  39. ैདྷͷᮢ஋؂ࢹ
    ᮢ஋

    View Slide

  40. มԽ఺ݕग़ʹΑΔݕ஌Ͱ͖Δ࣌఺ͷ૿Ճ

    View Slide

  41. ᮢ஋ҎԼͰ΋܏޲มԽΛݕ஌Ͱ͖Δ
    w܏޲มԽͷੵΈॏͶʹΑΓߴෛՙʹͳΔͱԾఆ
    wߴෛՙݕ஌࣌ʹ͸ݪҼ͕ແ਺ʹ͋Δঢ়ଶʹͳΔ
    wᮢ஋͸௒ա͍ͯ͠ͳ͍͕܏޲͕มԽͨ࣌͠఺Λ஌Δ
    w8FCαʔϏεج൫ʹ͓͍ͯ͸มԽ఺΍֎Ε஋ʹ͸Կ
    ͔ݪҼ͕͋Δ͸ͣ

    View Slide

  42. ܏޲มԽͨ࣌͠఺ͰԿΛ͢΂͖͔
    wҟৗݕ஌ͳͷͰGBMTFQPTJUJWFOFHBUJWF͕ॏཁ
    wݕ஌੍͙ͯ͢͠ݶΛ͢Δͱޡݕ஌ͷӨڹ͕େ͖͍
    wͱ͸͍͑ݕग़ͨ͠ΒݪҼΛಛఆͯ͠ΞΫγϣϯ͢΂͖
    w͜ΕΒͷಛੑΛ׆੍͔͢ޚख๏Λߟ͑Δ
    wඇఆৗͳσʔλͷ౷ܭ஋ΛͲ͏׆༻͢Δ͔

    View Slide

  43. զʑ͕๬ΉͳΊΒ͔ͳঢ়ଶͱ͸

    View Slide

  44. όϥϯεͷྑ͍མͱ͠ॴΛݟ͚ͭΔ
    wྫ͑͹ߴूੵͳϚϧνςφϯτ؀ڥ
    wશମͷϦιʔε͕ۭ͍͍ͯΔঢ়گͰ͸ࣗ༝ʹ࢖͑Δ
    wϦιʔε͕ṧഭ͖ͯͨ࣌͠ͷΈʹ੍ݶΛ͔͚Δ
    wṧഭ࣌ͷ੍ݶର৅͸໰୊ͱͳΔςφϯτͷΈ
    wશମͱͯ҆͠ఆͨ͠ͳΊΒ͔ͳঢ়ଶΛ࡞Γ͍ͨ

    View Slide

  45. ͞Βʹ۩ମతʹ

    View Slide

  46. ϨϯαόΛྫʹݕ஌ɾ੍ޚΛߟ͑Δ
    wมԽ఺ݕग़࣌ʹͲͷϗετ͕มԽ఺είΞ͕ߴ͍͔
    w֤ϗετͷϦιʔε࢖༻܏޲ͷॏΈ෇͚Λߦ͏
    wॏΈ෇͚ϦετΛ܏޲มԽຖʹߋ৽͍ͯ͘͠
    wશϦιʔε͕ṧഭ͖ͯͨ͠ΒϦετΛݩʹࣗಈ੍ޚ

    View Slide

  47. ॏΈ෇͚Ϧετͷੜ੒
    8FCαʔό
    ϓϩηε
    ॏΈ෇͚Ϧετ
    FYNBQMFDPN
    NBUTVNPUPSKQ
    FYBNQMFKQ
    FYBNQMFPSH
    ɾ
    ɾ
    ϗετຖʹϦιʔε࢖༻܏޲
    ͷॏΈ෇͚ϦετΛߋ৽
    ྫ͑͹ߴ͍είΞΛܭଌͨ͠৔߹ͷΈϦετΛߋ৽ͯ͘͠౳

    View Slide

  48. αʔόͷϦιʔε͕ṧഭ͖ͯͨ͠Β੍ޚ
    αʔόϦιʔε͕ඡഭ͍ͯ͠ͳ͍৔߹͸ϦετͷॏΈ෇͚ͷΈʹ຿ΊΔ
    ॏΈ෇͚Ϧετ
    FYNBQMFDPN
    NBUTVNPUPSKQ
    FYBNQMFKQ
    FYBNQMFPSH
    ɾ
    ɾ
    ϗετຖʹϦιʔε࢖༻܏޲
    ͷॏΈ෇͚ϦετΛߋ৽
    αʔόશମͷϦιʔε͕ඡഭ͖ͯͨ͠Β
    ϦετΛݩʹ8FCαʔόࣗ਎੍͕ޚ
    8FCαʔό
    ϓϩηε

    View Slide

  49. ࣌ܥྻσʔλͷੜ੒
    wϨεϙϯεੜ੒ʹফඅͨ͠Ϧιʔε஋͔Βੜ੒
    wؔ܎ੑͷ͋Δෳ਺ͷ࣌ܥྻσʔλ͔Β૬ؔؔ܎ͷ࣌ܥ
    ྻσʔλΛ࡞Δ͜ͱ΋Ͱ͖Δ
    wαʔόશମͷมԽͱϗετ୯ମͷมԽʹ૬͕ؔ͋Ε͹
    ͦΕ͸αʔόʹେ͖͘ෛՙΛ͔͚͍ͯΔɺͳͲ

    View Slide

  50. σʔλੜ੒ͱղੳιϑτ΢ΣΞ͸࣮૷ࡁΈ
    w8FCαʔόͷػೳ֦ுNPE@NSVCZOHY@NSVCZ
    wϓϩηεͷϦιʔεফඅ஋औಘNSVCZSFTPVSDF
    wมԽ఺ݕग़ΤϯδϯNSVCZDIBOHFpOEFS
    w૬ؔ܎਺ੜ੒ΤϯδϯNSVCZDPSSFMBUJPO

    View Slide

  51. ੍ݶख๏΋࣮૷ࡁΈ
    wϦΫΤετ୯ҐͰ$16΍*0ͳͲͷׂ౰Λมߋ
    wDHSPVQ NSVCZDHSPVQ
    ΍SMJNJU NSVCZSFTPVSDF

    wϗετ୯ҐͰͷಉ࣌઀ଓ਺Λมߋ
    wNPE@NSVCZ΍NPE@WIPTU@NBYDMJFOUT

    View Slide

  52. ϦΫΤετ୯ҐͰͷϦιʔε੍ޚ
    8FCαʔό
    ϓϩηε
    ΫϥΠΞϯτ
    ϦΫΤετ
    Ϩεϙϯε
    Ϩεϙϯεੜ੒ͷॲཧͷؒͷΈ
    ϓϩηεΛಛఆͷDHSPVQʹΞλον
    ʢ$16ͳͲʣ
    DHSPVQΞλον
    DHSPVQσλον

    View Slide

  53. ϛυϧ΢ΣΞ͕ಛ௃ྔநग़ɾղੳɾ੍ޚ
    Λࣗ཯తʹߦ͏Α͏ʹͳΔ

    View Slide

  54. ޙ͸࣮ફ͢ΔͷΈ

    View Slide

  55. ·ͱΊ

    View Slide

  56. ·ͱΊ
    wߴूੵ؀ڥͷݖݶ෼཭ίετͷޮ཰Խ
    wϓϩμΫγϣϯ؀ڥͰେ෯ͳ੒Ռ͕ग़ͨ
    wߴूੵ؀ڥͷߴෛՙӡ༻ٕज़ͷͨΊͷࣗ཯੍ޚ
    wࠓ೥தʹ͸ϓϩμΫγϣϯಋೖ͢Δ༧ఆ

    View Slide

  57. ࠓޙͷݚڀ։ൃͷ༧ఆ
    w45/4ϓϩάϥϚϒϧͳ࣍ੈ୅-JOVYೝূج൫
    w#JHGPPUϩάl׆༻zج൫
    wIBDPOJXBϓϩάϥϚϒϧͳ࣍ੈ୅ίϯςφΤϯδϯ
    w8FCαʔόͷࣗ཯੍ޚ
    wಈతฏߧੑΛ࣋ͭ8FCαʔϏεج൫
    wػցֶशʹΑΔγεςϜͷଐੑͷ෼ྨͱঢ়ଶ؂ࢹ

    View Slide

  58. ಈతฏߧੑʹ͍ͭͯৄ͘͠஌Γ͍ͨ৔߹ͷࢿྉ
    IUUQTTQFBLFSEFDLDPNNBUTVNPUP@SOBNFSBLBEJEFBEFTJHO

    View Slide

  59. ͳΊΒ͔ͳγεςϜ

    View Slide

  60. ͳΊΒ͔ͳγεςϜͷίϯηϓτ
    γεςϜʹͱͬͯͷϢʔβ΍ɺγεςϜΛߏ੒͢Δαʔό౳ͷཁૉ͕ɺͲͷ
    Α͏ͳΧςΰϦʹଐ͢Δ͔ɺ͍͔ͳΔಛ௃Λ͔࣋ͭΛɺਫ਼៛ʹೝࣝ͢Δ
    ͦͷࡍɺϢʔβ΍γεςϜ؅ཧऀͱ͍ͬͨਓؒʹ࿑ۤΛڧ͍ΔΑ͏ͳ໌ࣔత
    ͳૢ࡞Λ՝͞ͳ͍
    ͓ΑͼͰಘͨΑΓਫ਼៛ͳΧςΰϦ΍ݸผͷಛ௃ɺ͋Δ͍͸ͦΕΒͷؒͷ
    ؔ܎ੑʹج͖ͮɺͦͷ࣌ʑͷঢ়گʹԠͯ͡࠷దͳαʔϏεΛఏڙ͢Δ
    ࣗ཯੍ޚ͸ͳΊΒ͔ͳγεςϜͱ͍͏ίϯηϓτΛ8FCαʔό΁ద༻͢Δྫ

    View Slide

  61. ݚڀһੵۃతʹืूத
    IUUQSBOEQFQBCPDPN

    View Slide