Value and Pain to Keep Rails Applications Alive

B5689026d84bb3a823c82590eefc3b8f?s=47 Yasuko Ohba
December 02, 2016

Value and Pain to Keep Rails Applications Alive

How to upgrade Rails from 2 to 5 and what we are doing to keep longtime Rails applications alive, which was a talk in RubyConf Taiwan 2016.

B5689026d84bb3a823c82590eefc3b8f?s=128

Yasuko Ohba

December 02, 2016
Tweet

Transcript

  1. 7BMVF"OE1BJOUP ,FFQ3BJMT "QQMJDBUJPOT"MJWF :BTVLP0ICB !OBZ  େ৔ೡࢠ &WFSZMFBG$PSQ ג ສ༿

  2. :BTVLP0ICB େ৔ೡࢠ !OBZ -JWJOHJO5PLZP +BQBO "QSPHSBNNFS 3VCZPO3BJMTTJODF +BWB $ 0CKFDUJWF$

    1)1ʜ 1SFTJEFOUPG&WFSZMFBG$PSQ
  3. ͓͓͹͞Μ େ৔TBO  PPCBTBO PICBTBO

  4. ͓͓͹͞Μ େ৔TBO  PPCBTBO PICBTBO ͓͹͞Μ(姑媽) PCBTBO

  5. ͓͓͹͞Μ େ৔TBO  PPCBTBO PICBTBO ͓͹͞Μ(姑媽) PCBTBO ͓͹͋͞Μ(奶奶) PCBBTBO

  6. &WFSZMFBG$PSQ ສ༿ 8FEFWFMPQXFCBQQMJDBUJPOTGPSPVS DMJFOUTVTJOHNPTUMZ3VCZPO3BJMT 4JODF BMNPTUZFBST  QFPQMF BSFXPNFO 

    BSFXPNFO JOFOHJOFFSJOH
  7. ࣸਅ͸Γ͍ͨ QFPQMFIFSF

  8. ࣸਅ͸Γ͍ͨ QFPQMFIFSF 

  9. 4UJDLFST &ZFHMBTT $MFBOJOH$MPUIT

  10. .ZGBNJMZ

  11. ୆ݺ 5BJXBO 5IFpSTUUJNFUP 7JTJU5BJXBO "UUFOE3VCZ$POG5BJXBO 5IFTFDPOEUJNFUP )BWFBO&OHMJTIUBMLMPOHFS UIBO-JHIUOJOH5BMLT

  12. 0VUMJOF 8IBUXFHFOFSBMMZIBWFUPEPUP VQHSBEF3VCZBOE3BJMTJO MFHBDZBQQMJDBUJPOT 8FOFFEUPLFFQPVS3BJMTBQQT BMJWFJOMPOHUJNF CVUUIBUT UPVHI 8IBUXFBSFEPJOHGPSUIBU

  13. 3VCZ3BJMT 6QHSBEJOH IUUQTXXXqJDLSDPNQIPUPT!/

  14. 2)PXNBZ QFPQMFIBWFVTFE 3BJMT

  15. 2)PXNBOZ QFPQMFIBWF FYQFSJFODFEUIF VQHSBEJOHGSPN 3BJMTUP

  16. 3BJMTIBECFFO VTFEXJEFMZ JO+BQBOBUMFBTU

  17. .BOZPME3BJMT BQQMJDBUJPOTSFNBJO XBJUJOHUPCFVQHSBEFE IUUQTXXXqJDLSDPNQIPUPTNBTIB@L@TI

  18. 4P LOPXJOHBCPVU IPXUPVQHSBEF 3VCZ3BJMTDBO CFTPNFIFMQ GPSUIBUTJUVBUJPO IUUQTXXXqJDLSDPNQIPUPTUSFFTBOUPT

  19. *TJUQPTTJCMF

  20. *TJUQPTTJCMF &WFO XJUI OP BVUP UFTUJOH

  21. *TJUCFUUFSUP EFWFMPQBO BQQMJDBUJPO GSPNTDSBUDI

  22. *UDPVMECF #VUOPUBMXBZT

  23. "OFYJTUJOH TZTUFN CFJOHVTFE SFqFDUT JUTSFBMOFFET

  24. :PVDBOOFWFS SFNPWFJUTFTTFOUJBM DPNQMFYJUZCZ QSPHSBNJOH UFDIOJRVFTBOZXBZ

  25. 5IBUTXIZ VQHSBEJOHBOE SFGBDUPSJOH NBLFTFOTF

  26. -FUTMPPLBU IPXUPVQHSBEF 3VCZ3BJMT

  27. 0VS$BTF 3BJMT 

  28. 0VS"QQMJDBUJPOT ,JOEPGBIFBMUIDIFDLTFSWJDF #UP# )BOEFEPWFSUPPVSDPNQBOZ GSPNUIFPUIFSEFWFMPQNFOU DPNQBOZXIJDIPSJHJOBMMZ EFWFMPQFEUIFTZTUFN

  29. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

  30. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ %SBXJUBXBZ

    GSPN 3BEJBOU$.4
  31. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ 6QHSBEJOH

    3BJMT3VCZ %SBXJUBXBZ GSPN 3BEJBOU$.4
  32. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ %SBXJUBXBZ GSPN 3BEJBOU$.4
  33. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH %SBXJUBXBZ GSPN 3BEJBOU$.4
  34. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH %SBXJUBXBZ GSPN 3BEJBOU$.4 "/$*&/5$0%&
  35. "QQ BENJO "QQ GPSFOEVTFST "QQ GPSFOEVTFST .FSHF 3BJMT 0VS1SPKFDU(PBM 3BJMT3VCZ

    6QHSBEJOH 3BJMT3VCZ 3FGBDUPSJOH "EE 'FBUVSFT %SBXJUBXBZ GSPN 3BEJBOU$.4 "/$*&/5$0%&
  36. "QQ BENJO +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC |

    Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 6169 | 4554 | 79 | 573 | 7 | 5 | | Helpers | 1090 | 762 | 0 | 95 | 0 | 6 | | Models | 33339 | 23101 | 363 | 2629 | 7 | 6 | | Javascripts | 18382 | 9653 | 8 | 1191 | 148 | 6 | | Libraries | 3764 | 2504 | 45 | 279 | 6 | 6 | | Controller specs | 220 | 173 | 0 | 0 | 0 | 0 | | Feature specs | 12738 | 9900 | 0 | 5 | 0 | 1978 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 75702 | 50647 | 495 | 4772 | 9 | 8 | +----------------------+-------+-------+---------+---------+-----+-------+ 5IF3FDFOU3FTVMU
  37. "QQ VTFS +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC |

    Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 1560 | 1100 | 25 | 137 | 5 | 6 | | Helpers | 1512 | 1163 | 1 | 132 | 132 | 6 | | Models | 33388 | 23145 | 364 | 2632 | 7 | 6 | | Javascripts | 11588 | 6841 | 0 | 966 | 0 | 5 | | Libraries | 3190 | 2162 | 29 | 275 | 9 | 5 | | Feature specs | 3878 | 2978 | 0 | 0 | 0 | 0 | | Helper specs | 157 | 117 | 0 | 0 | 0 | 0 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 55273 | 37506 | 419 | 4142 | 9 | 7 | +----------------------+-------+-------+---------+---------+-----+-------+ 5IF3FDFOU3FTVMU
  38. 5PUBM4DIFEVMF "VHVTU.BZ NPOUIT QFPQMF      

         6QHSBEJOH 3FGBDUPSJOH /FX 'FBUVSFT" /FX 'FBUVSFT# QMBOOJOHEFTJHOJOH CZPVSDMJFOU PVSEFTJHOJOHBOE JNQMFNFOUBUJPO JOUFHSBUJPOUFTUJOH CZBQBSUOFSDPNQBOZ
  39. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  40. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  41. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  42. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  43. 6QHSBEJOH4DIFEVMF       "QQ UP3BJMT UP3VCZ

    UP3BJMT UP3BJMT "QQ UP3BJMT UP3VCZ UP3BJMT UP3BJMT 'JMF6QMPBEJOH 1BHJOBUJPO &NBJM4FOEJOH #BDLHSPVOE1SPHSBNT 3BJMT3VCZˠ3BJMT3VCZ
  44. .BQPG3BJMT6QHSBEJOH 3BJMT

  45. .BQPG3BJMT6QHSBEJOH 3BJMT 3BJMT 

  46. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT 

  47. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT 

  48. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT

  49. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  3BJMT  5IF.PVOUBJOT

    PG.PEFSO3BJMT
  50. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 3BJMT

     5IF.PVOUBJOT PG.PEFSO3BJMT
  51. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 3BJMT

     5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT 
  52. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 3BJMT

     5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  53. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  54. .BQPG3BJMT6QHSBEJOH 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  55. #FGPSF3BJMT 3BJMT 5IF3JWFSPG5FBST 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF

    3BJMT  5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT 3BJMT
  56. #VSEFOCFGPSF EFGBVMUSPVUFNBQQJOH IUUQTXXXqJDLSDPNQIPUPTU[FKFO NBQDPOOFDUDPOUSPMMFSBDUJPOJE

  57. #VSEFOCFGPSF EFGBVMUSPVUFNBQQJOH IUUQTXXXqJDLSDPNQIPUPTU[FKFO NBQDPOOFDUDPOUSPMMFSBDUJPOJE SFTPVSDFTVTFST SFTPVSDFTDPNQBOJFT POMZ<TIPX> ʜ

  58. #VSEFOCFGPSF EFGBVMUSPVUFNBQQJOH IUUQTXXXqJDLSDPNQIPUPTU[FKFO NBQDPOOFDUDPOUSPMMFSBDUJPOJE :PVOFFEUPLOPX"-- "$5*0/4 SFTPVSDFTVTFST SFTPVSDFTDPNQBOJFT POMZ<TIPX> ʜ

  59. 3BJMT 3BJMT 3BJMT  3BJMT  3BJMT  4BZ(PPECZF UP3VCZ

    4BGF 3BJMT  5IF3JWFSPG5FBST 5IF4USPOH1BSBNFUFST'BMMT 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT 
  60. 5IF3JWFSPG5FBST 3BJMT  "DUJWF3FDPSEDIBJOBCMFRVFSZ MBOHVBHF 4BZHPPECZFUPDPOEJUJPOTBOEJUT GSJFOET 6TFSpOE BMM 

    DPOEJUJPOT\BENJOUSVF^  PSEFSJE
  61. 5IF3JWFSPG5FBST 3BJMT  "DUJWF3FDPSEDIBJOBCMFRVFSZ MBOHVBHF 4BZHPPECZFUPDPOEJUJPOTBOEJUT GSJFOET 6TFSpOE BMM 

    DPOEJUJPOT\BENJOUSVF^  PSEFSJE
  62. 5IF3JWFSPG5FBST 3BJMT  "DUJWF3FDPSEDIBJOBCMFRVFSZ MBOHVBHF 4BZHPPECZFUPDPOEJUJPOTBOEJUT GSJFOET 6TFSpOE BMM 

    DPOEJUJPOT\BENJOUSVF^  PSEFSJE
  63. $POEJUJPOTBOEJUT GSJFOETSFTJEF FWFSZXIFSF

  64. .BOJQVMBUJPOPG DPOEJUJPOTWBMVF NBLFTUIJOHT XPSTF

  65. $POEJUJPOT .BOJQVMBUJPO QSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜ  JGTPNFUIJOH  DPOEJUJPOT@TUSJOH"/%TPNFUIJOH 

    DPOEJUJPOT@QBSBNTWBMVF FOE
  66. $POEJUJPOT .BOJQVMBUJPO QSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜ  JGTPNFUIJOH  DPOEJUJPOT@TUSJOH"/%TPNFUIJOH 

    DPOEJUJPOT@QBSBNTWBMVF FOE
  67. $POEJUJPOT .BOJQVMBUJPO QSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜ  JGTPNFUIJOH  DPOEJUJPOT@TUSJOH"/%TPNFUIJOH 

    DPOEJUJPOT@QBSBNTWBMVF FOE SFMSFMXIFSF TPNFUIJOHWBMVF JGTPNFUIJOH
  68. $POEJUJPOT .BOJQVMBUJPO QSFQBSBUJPOGPS.PEFMpOE BMM DPOEJUJPOTʜ  JGTPNFUIJOH  DPOEJUJPOT@TUSJOH"/%TPNFUIJOH 

    DPOEJUJPOT@QBSBNTWBMVF FOE SFMSFMXIFSF TPNFUIJOHWBMVF JGTPNFUIJOH :PVOFFEUPLOPX"--42-TJOUFOEFE
  69. "TNBMMUZQJDBMCBEQBUUFSO XBTGPVOEIFSF %PTFBSDIpSTUBOE NBOJQVMBUFUIFSFTVMUBSSBZ $IBJORVFSJFTJOTUFBEPG BSSBZDPODBU

  70. 5IF3JWFSPG5FBST 3BJMT  3FXSJUF"KBYDPEFJGJUVTFT PME3BJMTIFMQFSNFUIPET 6OPCUSVTJWF+BWB4DSJQU

  71. 5IF3JWFSPG5FBST 3BJMT  3FXSJUFBMMPGPMEIBOENBEF IFMQFSTTVQQPSUJOHCMPDLT  /POFFEGPSI /FFEUPpYEPVCMFFTDBQJOH )FMQFST7JFXT GPSN@GPS

    GPSN@GPS
  72. 5IF3JWFSPG5FBST 3BJMT  7BMJEBUJPO WBMJEBUFT@QSFTFODF@PGOBNF WBMJEBUFT@MFOHUI@PGOBNF NBYJNVN WBMJEBUFTOBNF QSFTFODFUSVF 

    MFOHUI\NBYJNVN^
  73. 3BJMT   FBTZUPDIBOHF SPVUFTSC SFNPWFNBQ TJNQMFCMPDLTXJUIPVU BOBSHVNFOU

  74. 3BJMT   (PPEQPJOUT #VOEMFS

  75. 3BJMT   (PPEQPJOUT 3BJMT 3BJMT DSFBUF BOFXBQQ SBJMTNZBQQ SBJMTOFXNZBQQ

    DPOTPMF SVCZTDSJQUDPOTPMF SBJMTD TFSWFS SVCZTDSJQUTFSWFS SBJMTT
  76. 3BJMT   (PPEQPJOUT 3BJMT 3BJMT DSFBUF BOFXBQQ SBJMTNZBQQ SBJMTOFXNZBQQ

    DPOTPMF SVCZTDSJQUDPOTPMF SBJMTD TFSWFS SVCZTDSJQUTFSWFS SBJMTT
  77. 4PXFEPOUIBWFUP DSFBUFBQQMJDBUJPOT OBNFEDPSTBOZNPSF IUUQTXXXqJDLSDPNQIPUPTTMJQTUSFBNCMVF

  78. (PUPUIFOFYUTUFQ 3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  79. 3BJMT(VJEFTXJMMIFMQZPV 6QHSBEJOHGSPN3BJMTUP3BJMT 6QHSBEJOHGSPN3BJMTUP3BJMT 6QHSBEJOHGSPN3BJMTUP3BJMT 6QHSBEJOHGSPN3BJMTUP3BJMT 6QHSBEJOHGSPN3BJMTUP3BJMT 6QHSBEJOHGSPN3BJMTUP3BJMT

  80. 5IF.PVOUBJOTPG.PEFSO3BJMT 3BJMT  "TTFUT1JQFMJOF .PWFpMFTBOEDPOpHVSFTFUUJOHT 3FEFTJHODTTBOE+4pMFTTUSVDUVSFT (PPEUJNJOHUPVTF4$44 FUD *UUBLFTNVDIUJNF

  81. 5IF.PVOUBJOTPG.PEFSO3BJMT 3BJMT  "TTFUT1JQFMJOF .PWFpMFTBOEDPOpHVSFTFUUJOHT 3FEFTJHODTTBOE+4pMFTTUSVDUVSFT (PPEUJNJOHUPVTF4$44 FUD *UUBLFTNVDIUJNF /FFEUPLOPXBCPVUBMMBTTFUpMFTJEFBMMZ

  82. 5IF.PVOUBJOTPG.PEFSO3BJMT 3BJMT  %FGBVMU+4MJCSBSZJTDIBOHFE UPCFK2VFSZGSPNQSPUPUZQFKT /FFEUPSFXSJUF+BWB4DSJQU DPEFJGZPVBSFHPJOHUP TXJUDIUIFMJCSBSZ

  83.  3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  84.  *UTFBTZ QMVDL VOJR

  85.  *UTFBTZ QMVDL VOJR EJTUJODUJO3BJMT

  86. 6QHSBEJOH3VCZ  /PUWFSZIBSE  4USJOHFODPEJOH )BTI \BBBWBMVF^UP\BBBWBMVF^ 4UPQVTJOH "DUJWF4VQQPSU0SEFSFE)BTI

  87. "MNPTU%POF 3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  3BJMT  5IF4USPOH1BSBNFUFST'BMMT
  88. 5IF4USPOH1BSBNFUFST'BMMT 3BJMT 4FDVSJUZDIFDLXFOUUP $POUSPMMFSGSPN.PEFM *MPWF4USPOH1BSBNFUFST CVU 7FSZIBSEBOE#03*/(KPC

  89. 5IF4USPOH1BSBNFUFST'BMMT 3BJMT 4FDVSJUZDIFDLXFOUUP $POUSPMMFSGSPN.PEFM *MPWF4USPOH1BSBNFUFST CVU 7FSZIBSEBOE#03*/(KPC :PVOFFEUPLOPXBMMQBSBNFUFST GPSBMMBDUJPOT

  90. 0UIFST FSC)BNMJGZPVMJLFJU 3FQMBDFNBOZHFNT  3FXSJUFNPOLFZQBUDIJOHJO DPOpHJOJUJBMJ[FST  5JNF[POF $IFDLCJOJOZPVSSFQPTJUPSZ

  91. (FNT :PVOFFEUPSFQMBDF HFNTUISPVHIUIFSBJMT VQHSBEJOH *UDBOUCFBWPJEFE &NCSBDFJU

  92. SBJMTBQQVQEBUF *UPVUQVUTDPOpHpMFTTPUIBUZPVS BQQMJDBUJPOXPVMEXPSLBTJUEJE CFGPSFVQHSBEJOHJGJUTQPTTJCMF *UNBZOPUCFUIFCFTUDPOpHVSBUJPO *UNBZDBVTFUSPVCMFJOGVUVSFWFSTJPO $IFDLUIFOFXSBJMTBQQT DPOpHVSBUJPOBOEDPNQBSFUIFN

  93. 34QFD

  94. 0VSQSPKFDUHPBMXBT UP3BJMT ! 8FBSFXBJUJOHGPSB DIBODFUPVQHSBEFJU UP3BJMTʜ

  95. 'SPN3BJMTUP3BJMT 3BJMT 3BJMT  3BJMT  4BZ(PPECZF UP3VCZ 4BGF 3BJMT

     5IF3JWFSPG5FBST 5IF.PVOUBJOT PG.PEFSO3BJMT 3BJMT  5IF4USPOH1BSBNFUFST'BMMT 3BJMT 
  96. *VQHSBEFENZ IPCCZBQQUP 3BJMT

  97. $BOTFF OPUIJOHCVU %&13&$"5*0/ 8"3/*/(Tʜ

  98. *ONZBQQTDBTF PGTQFDTGBJMFE  6OGPSUVOBUFMZ*IBENBOZ PMEDPOUSPMMFSTQFDTʜ (PUEJGGFSFOU EFQSFDBUJPOXBSOJOHT

  99. 5P3BJMT 6TF3VCZ  HFNSBJMTDPOUSPMMFSUFTUJOH 4FUFBHFS@MPBE@QBUITQSPQFSMZ "QQMJDBUJPO3FDPSE

  100. 8BSOJOHTJO.PEFM3VCZ HSPVQVTFST USVF ˠ HSPVQVTFSTSFMPBE BMJBT@NFUIPE@DIBJOˠQSFQFOE VOJRˠEJTUJODU UJNFPVUˠ5JNFPVUUJNFPVU 3VCZ

  101. 8BSOJOHTJO0UIFS1MBDFT QBSBNTJTOPU)BTIBOZNPSF CFGPSF@pMUFSˠCFGPSF@BDUJPO JOSPVUFTSC DPOUSPMMFSXJUIPQUJPOT BDUJPO SFOEFSUFYUˠSFOEFSQMBJO

  102. "OZXBZ $POHSBUVMBUJPOT 8FMDPNFUP 3BJMT

  103. )PXUPVQHSBEF3BJMTGSPN $PODMVTJPO /PUPOMZSBLFSBJMTVQEBUF SBJMTBQQVQEBUF :PVOFFEUPDIBOHFTPNBOZ QMBDFT 'PSUIBUZPVOFFEUPLOPXʜ

  104. :PVOFFEUPLOPX &7&3:5)*/(JO:063"11 ,OPX8IBU 'PS BMMBDUJPOT SFNPWJOHEFGBVMUSPVUJOH SFGBDUPSJOH63-TBOE)551NFUIPET BMMQBSBNFUFSTPG FBDIBDUJPOT BQQMZJOHTUSPOHQBSBNFUFSTTUSJDUMZ

    SJHIUMPPLTPGBMM QBHFT pYJOHIFMQFSTBOEFTDBQJOHDPSSFDUMZ BMM42-T SFQMBDJOHDPOEJUJPOTUPDIBJOBCMFRVFSZ BMMBTTFUpMFT VTJOHBTTFUTQJQFMJOFFGGFDUJWFMZ BMMNPOLFZ QBUDIJOH NBLJOHUIFNXPSLJONPEFSO3BJMT QSFQFOEJOTUFBEPGBMJBT@NFUIPE@DIBJO
  105. *UTUPVHI CVUOPU JNQPTTJCMF 4UFQCZTUFQ IUUQTXXXqJDLSDPNQIPUPTBMJDFQPQLPSO

  106. 8FEJEOPUIBWF BVUPNBUFEUFTUT

  107. *CFUNBOZPME 3BJMTBQQTBSFJO UIFTBNF TJUVBUJPO

  108. *CFUNBOZPME BQQMJDBUJPOTEPOU IBWFFOPVHI EPDVNFOUTFJUIFS

  109. 8FIBEUSJFEUPXSJUF GFBUVSFTQFDT  CVUUIFPME3VCZWFSTJPO EJTDPVSBHFEVT IUUQTXXXqJDLSDPNQIPUPTDBQZCBSBKQ

  110. z5IFCFTUXBZUPCFTVSF UIBUZPVSBQQMJDBUJPOTUJMM XPSLTBGUFSVQHSBEJOHJT UPIBWFHPPEUFTU DPWFSBHFCFGPSFZPVTUBSU UIFQSPDFTTz IUUQFEHFHVJEFTSVCZPOSBJMTPSH VQHSBEJOH@SVCZ@PO@SBJMTIUNMVQHSBEJOH GSPNSBJMTUPSBJMT

  111. 8SJUFUFTUTˠ6QHSBEF

  112. 8SJUFUFTUTˠ6QHSBEF *G ZPVS BQQ JT UPP PME UP EP UIBU

  113. 8SJUFUFTUTˠ6QHSBEF *G ZPVS BQQ JT UPP PME UP EP UIBU

    PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  114. 8SJUFUFTUTˠ6QHSBEF *G ZPVS BQQ JT UPP PME UP EP UIBU

    PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  115. 8SJUFUFTUTˠ6QHSBEF 6QHSBEFˠ8SJUFUFTUT *G ZPVS BQQ JT UPP PME UP EP

    UIBU PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  116. 8SJUFUFTUTˠ6QHSBEF 6QHSBEFˠ8SJUFUFTUT *G ZPVS BQQ JT UPP PME UP EP

    UIBU PS JG ZPVS BQQT FYJTUJOH UFTUT BSF UPP DSB[Z
  117. )FMQGVM'BDUPSTGPS6QHSBEJOH XJUIPVU&OPVHI"VUP5FTUT (PPEEPDVNFOUT "GSFFMZBDDFTTJCMFEFW FOWJSPONFOUJOPSJHJOBM WFSTJPOXJUIOJDFEBUB 1SPGFTTJPOBM5FTUJOH$PNQBOZ

  118. "GUFSBZFBS XF IBWFNBOZOJDF TQFDT )BQQZ

  119. 7BMVFBOE1BJO PGLFFQJOH BQQMJDBUJPOTBMJWF IUUQTXXXqJDLSDPNQIPUPT!/

  120. 2)PXNBZQFPQMF BSFXPSLJOHGPS QSPKFDUTUIBUIBT CFFOSVOOJOHGPS PWFSZFBST

  121. "QQBSFOUMZXF OFFEUPLFFQPVS BQQMJDBUJPOT SVOOJOHGPSB DFSUBJOUJNF

  122. *GXFKVTUMFBWFJU  JUNJHIUCF VOUPVDIBCMF /PUIFBMUIZ "MNPTUEFBE

  123. 8FOFFEUPHPPO XPSLJOHXJUIJU

  124. #VUJU DPVMECF QBJOGVM IUUQTXXXqJDLSDPNQIPUPTUPEEIJFTUBOE

  125. 1BJO$PEF 4PNBOZDPEFT 1BUDIXPSL 4QBHIFUUJ 4VQQPSUJOHWBSJPVTDPOUSBDUT  WFSTJPOTBOEDVTUPNFSTʜ 5IFPSJHJOBMBVUIPSIBTHPOF

  126. 1BJO%JSFDUJPO %JSFDUPSXPVMEDIBOHF %JSFDUJPOHPFTSJHIUBOEMFGU *GEJSFDUJPOHPFTXSPOH DPEFT HFUXSPOH

  127. *OGPSNBUJPO &YQMPTJPO IUUQTXXXqJDLSDPNQIPUPTOBTBNBSTIBMM

  128. *OGPSNBUJPO&YQMPTJPO $PEFT EBUB JTTVFTʜ FWFSZUIJOHNPVOUTVQ 8IBUJTUIFSJHIU JOGPSNBUJPO  )PXDBO*pOEXIBU* OFFE

  129. 8IBUXFBSFEPJOH

  130. .POFZ IUUQTXXXqJDLSDPNQIPUPTQJDUVSFTPGNPOFZ

  131. "MPOHUJNF QSPKFDUOFFET BTQFDJBMDPTU

  132. -POHUJNFQSPKFDUTDPTU 4USVHHMFBHBJOTU JOGPSNBUJPOFYQMPTJPO &YUSBDPTUGPSDIBOHFTJO UFBN 1&01-&(&55*3&%

  133. 1SFQBSFGPS UIBUDPTU

  134. 6QHSBEF3VCZ  3BJMTBOEPUIFS HFNT JGJUTQPTTJCMF IUUQTXXXqJDLSDPNQIPUPTWPPEPP[FCSB

  135. #VOEMF6QEBUF 'SFRVFOUMZ FYFWFSZ PUIFSXFFL  5BLJOHUVSOT

  136. #BMBODFE$PEF IUUQTXXXqJDLSDPNQIPUPTHSFHPSZKPSEBO

  137. .FTTZ

  138. .FTTZ

  139. %3: .FTTZ

  140. %3: .FTTZ

  141. %3: .FTTZ %JGpDVMU

  142. %3: .FTTZ %JGpDVMU

  143. %3: .FTTZ %JGpDVMU &BTZ

  144. %3: .FTTZ %JGpDVMU &BTZ

  145. %3: .FTTZ %JGpDVMU &BTZ ,FFQ #BMBODF

  146. %PDVNFOUBUJPO IUUQTXXXqJDLSDPNQIPUPT!/

  147. $PNNFOUTJO DPEFT 8JLJ

  148. $PNNFOUT JOTPVSDFDPEFT 8SJUFDPNNFOUXIFODPEFJT /05/"563"- 8SJUF8):%POUXSJUF8)"5 3FWJFXDPNNFOUT 6QEBUFDPNNFOUT

  149. 8IBUUPXSJUFJO XJLJ

  150. )JTUPSZ IUUQTXXXqJDLSDPNQIPUPTUIPNBTIBXL

  151. 5JQT6UJMJUJFT IUUQTXXXqJDLSDPNQIPUPTNSTELSFCT

  152. 1SJODJQMFT

  153. 4BMFTQFPQMFDBO OPUTFFFNBJM BEESFTTFTPG VTFST

  154. 0UIFS&YBNQMFT 6TFSTIBWFUPTJHOJOUPVTF TPNFGFBUVSFT 0OMZQSFNJVNVTFSTDBOTFF TPNFUIJOH $IJMESFODBOOPUCVZBMDPIPMJD CFWFSBHFT

  155. 5PLFFQXIPMF TZTUFNGPMMPX JUTQSJODJQMFT JTDSJUJDBMMZ JNQPSUBOU

  156. 4PXFEFTDSJCF UIPTFQSJODJQMFT PO8JLJTPUIBU OFXDPNFSTMFBSO UIFN

  157. 5IFSFJTBDIBODF UPJNQMFNFOU TPNFPGQSJODJQMFT

  158. 4BMFTQFPQMFDBOOPU TFFFNBJMBEESFTTFTPG VTFST UISPXFSSPSJGFNBJMXBT JOWPLFEXIFODVSSFOU@VTFS JTBTBMFTQFSTPO

  159. 'JMUFST DBMMCBDLT BOEXSJUJOHZPVS PXO%4-TNJHIU IFMQUIJT

  160. %FTDSJCFB QSJODJQMFpSTU  UIFOJNQMFNFOUJU JGQPTTJCMF

  161. 0VS1SJODJQMFT1BHF )BWF4FDUJPOT /PUJNQMFNFOUFE QSJODJQMFT *NQMFNFOUFE QSJODJQMFT

  162. $PODMVTJPO 4IPXFEXIBUZPVOFFEUPEP UPVQHSBEF3BJMTGSPNUP JOHFOFSBM(PPEMVDL *OUSPEVDFEXIBUXFBSFEPJOH UPLFFQPVSBQQMJDBUJPOT  UFBN BMJWF

  163. 5IBOL ZPV ⇖⇖ ! *GZPVIBWFBOZ RVFTUJPOTGFFMGSFF UPBTLNF4-08-: ! !OBZ