aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: af7b8c1a67f6aebf54ce26b4a973a5ccb150cd8a (plain)
ofshex dumpascii
0000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 68 70 0a 3c 3f 70 68 70 0a 2f 2a 0a 20 2a 20 54 #!/usr/bin/env.php.<?php./*..*.T
0020 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a his.file.is.part.of.Composer...*
0040 0a 20 2a 20 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 ..*.(c).Nils.Adermann.<naderman@
0060 6e 61 64 65 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 naderman.de>..*.....Jordi.Boggia
0080 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f no.<j.boggiano@seld.be>..*..*.Fo
00a0 72 20 74 68 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 r.the.full.copyright.and.license
00c0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 0a 20 2a 20 74 68 65 .information,.please.view..*.the
00e0 20 6c 69 63 65 6e 73 65 20 74 68 61 74 20 69 73 20 6c 6f 63 61 74 65 64 20 61 74 20 74 68 65 20 .license.that.is.located.at.the.
0100 62 6f 74 74 6f 6d 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2e 0a 20 2a 2f 0a 0a 50 68 61 72 3a 3a bottom.of.this.file...*/..Phar::
0120 6d 61 70 50 68 61 72 28 27 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 29 3b 0a 64 65 66 69 6e 65 mapPhar('composer.phar');.define
0140 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 2c 20 31 33 ('COMPOSER_DEV_WARNING_TIME',.13
0160 35 34 36 32 37 34 34 34 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 54627444);.require.'phar://compo
0180 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f ser.phar/bin/composer';..__HALT_
01a0 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a e9 49 00 00 ec 00 00 00 11 00 00 00 01 00 0d 00 COMPILER();.?>...I..............
01c0 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 ..composer.phar........src/boots
01e0 74 72 61 70 2e 70 68 70 c2 01 00 00 74 6c 96 50 c2 01 00 00 3d 88 56 47 b6 01 00 00 00 00 00 00 trap.php....tl.P....=.VG........
0200 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 ....src/Composer/IO/ConsoleIO.ph
0220 70 24 0e 00 00 74 6c 96 50 24 0e 00 00 e7 f1 8b 58 b6 01 00 00 00 00 00 00 1b 00 00 00 73 72 63 p$...tl.P$......X............src
0240 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 41 72 72 61 79 49 4f 2e 70 68 70 b0 02 00 00 74 6c 96 50 /Composer/IO/ArrayIO.php....tl.P
0260 b0 02 00 00 5e e5 c6 cf b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....^...............src/Composer
0280 2f 49 4f 2f 4e 75 6c 6c 49 4f 2e 70 68 70 12 04 00 00 74 6c 96 50 12 04 00 00 1d 1d fc 03 b6 01 /IO/NullIO.php....tl.P..........
02a0 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 49 4f 49 6e 74 65 ..........src/Composer/IO/IOInte
02c0 72 66 61 63 65 2e 70 68 70 59 03 00 00 74 6c 96 50 59 03 00 00 10 ba 20 3d b6 01 00 00 00 00 00 rface.phpY...tl.PY......=.......
02e0 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e .....src/Composer/Command/Comman
0300 64 2e 70 68 70 80 04 00 00 74 6c 96 50 80 04 00 00 a2 fe 97 49 b6 01 00 00 00 00 00 00 2d 00 00 d.php....tl.P.......I........-..
0320 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 72 65 61 74 65 50 72 6f 6a .src/Composer/Command/CreateProj
0340 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 51 1e 00 00 74 6c 96 50 51 1e 00 00 61 9f ab ec b6 01 ectCommand.phpQ...tl.PQ...a.....
0360 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 ......%...src/Composer/Command/A
0380 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 b4 02 00 00 74 6c 96 50 b4 02 00 00 1a 87 d1 cf b6 boutCommand.php....tl.P.........
03a0 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......$...src/Composer/Command/
03c0 53 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 70 d0 22 00 00 74 6c 96 50 d0 22 00 00 77 a5 0e 2d b6 ShowCommand.php."..tl.P."..w..-.
03e0 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......&...src/Composer/Command/
0400 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 1c 0b 00 00 74 6c 96 50 1c 0b 00 00 ef 9f 93 UpdateCommand.php....tl.P.......
0420 2c b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e ,........&...src/Composer/Comman
0440 64 2f 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 2e 70 68 70 5b 1b 00 00 74 6c 96 50 5b 1b 00 00 2f d/ConfigCommand.php[...tl.P[.../
0460 51 45 11 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d QE.........'...src/Composer/Comm
0480 61 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 c2 09 00 00 74 6c 96 50 c2 09 and/InstallCommand.php....tl.P..
04a0 00 00 ef f7 b4 3f b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 .....?........(...src/Composer/C
04c0 6f 6d 6d 61 6e 64 2f 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 47 08 00 00 74 6c ommand/ValidateCommand.phpG...tl
04e0 96 50 47 08 00 00 d9 0e 3b 72 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .PG.....;r........'...src/Compos
0500 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 77 08 00 er/Command/DependsCommand.phpw..
0520 00 74 6c 96 50 77 08 00 00 56 42 8a 4f b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d .tl.Pw...VB.O........&...src/Com
0540 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 68 70 50 poser/Command/SearchCommand.phpP
0560 0e 00 00 74 6c 96 50 50 0e 00 00 50 7a 57 0e b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 ...tl.PP...PzW.........*...src/C
0580 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e omposer/Command/SelfUpdateComman
05a0 64 2e 70 68 70 bb 06 00 00 74 6c 96 50 bb 06 00 00 78 1d 1e 4d b6 01 00 00 00 00 00 00 27 00 00 d.php....tl.P....x..M........'..
05c0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 75 69 72 65 43 6f 6d .src/Composer/Command/RequireCom
05e0 6d 61 6e 64 2e 70 68 70 85 0d 00 00 74 6c 96 50 85 0d 00 00 d9 c4 87 7d b6 01 00 00 00 00 00 00 mand.php....tl.P.......}........
0600 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 75 6d 70 41 75 74 ,...src/Composer/Command/DumpAut
0620 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 2e 70 68 70 fb 04 00 00 74 6c 96 50 fb 04 00 00 a9 ce e1 c7 oloadCommand.php....tl.P........
0640 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 ........,...src/Composer/Command
0660 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e 01 00 00 74 6c 96 50 /Helper/DialogHelper.php....tl.P
0680 9e 01 00 00 95 82 8c 26 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .......&........&...src/Composer
06a0 2f 43 6f 6d 6d 61 6e 64 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 59 07 00 00 74 6c /Command/StatusCommand.phpY...tl
06c0 96 50 59 07 00 00 40 66 b7 3d b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .PY...@f.=........$...src/Compos
06e0 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 7b 2c 00 00 74 6c er/Command/InitCommand.php{,..tl
0700 96 50 7b 2c 00 00 a5 e1 b7 21 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P{,.....!........)...src/Compos
0720 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 75 er/Downloader/VcsDownloader.phpu
0740 0e 00 00 74 6c 96 50 75 0e 00 00 70 46 db 6f b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 ...tl.Pu...pF.o........*...src/C
0760 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 omposer/Downloader/FileDownloade
0780 72 2e 70 68 70 01 0d 00 00 74 6c 96 50 01 0d 00 00 7f 3d 72 4d b6 01 00 00 00 00 00 00 29 00 00 r.php....tl.P.....=rM........)..
07a0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 53 76 6e 44 6f 77 6e .src/Composer/Downloader/SvnDown
07c0 6c 6f 61 64 65 72 2e 70 68 70 46 0b 00 00 74 6c 96 50 46 0b 00 00 9e 26 79 a7 b6 01 00 00 00 00 loader.phpF...tl.PF....&y.......
07e0 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 65 ..0...src/Composer/Downloader/Pe
0800 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 87 1b 00 00 74 6c 96 50 87 1b arPackageExtractor.php....tl.P..
0820 00 00 7e 7a 5d 42 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ..~z]B........+...src/Composer/D
0840 6f 77 6e 6c 6f 61 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2e 70 68 70 38 0e 00 ownloader/DownloadManager.php8..
0860 00 74 6c 96 50 38 0e 00 00 ae 57 1a 05 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d .tl.P8....W........../...src/Com
0880 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 poser/Downloader/DownloaderInter
08a0 66 61 63 65 2e 70 68 70 8f 01 00 00 74 6c 96 50 8f 01 00 00 74 80 69 74 b6 01 00 00 00 00 00 00 face.php....tl.P....t.it........
08c0 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 54 72 61 6e ....src/Composer/Downloader/Tran
08e0 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 f6 00 00 00 74 6c 96 50 f6 00 00 00 cb 38 sportException.php....tl.P.....8
0900 cd 8a b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c ..........*...src/Composer/Downl
0920 6f 61 64 65 72 2f 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e5 00 00 00 74 6c 96 50 oader/PharDownloader.php....tl.P
0940 e5 00 00 00 de c9 1f e7 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ................)...src/Composer
0960 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e3 00 00 /Downloader/TarDownloader.php...
0980 00 74 6c 96 50 e3 00 00 00 cd 92 58 3f b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d .tl.P......X?........(...src/Com
09a0 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 48 67 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 poser/Downloader/HgDownloader.ph
09c0 70 c6 06 00 00 74 6c 96 50 c6 06 00 00 6d bf 93 00 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 p....tl.P....m...........-...src
09e0 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 41 72 63 68 69 76 65 44 6f 77 6e /Composer/Downloader/ArchiveDown
0a00 6c 6f 61 64 65 72 2e 70 68 70 96 0a 00 00 74 6c 96 50 96 0a 00 00 f0 d6 11 b9 b6 01 00 00 00 00 loader.php....tl.P..............
0a20 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 5a 69 ..)...src/Composer/Downloader/Zi
0a40 70 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 7a 08 00 00 74 6c 96 50 7a 08 00 00 56 60 c8 27 b6 pDownloader.phpz...tl.Pz...V`.'.
0a60 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 .......)...src/Composer/Download
0a80 65 72 2f 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 21 28 00 00 74 6c 96 50 21 28 00 00 er/GitDownloader.php!(..tl.P!(..
0aa0 f6 eb aa 38 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 ...8........+...src/Composer/Rep
0ac0 6f 73 69 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 3c 0a 00 00 74 ository/ArrayRepository.php<...t
0ae0 6c 96 50 3c 0a 00 00 a4 2d 74 15 b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f l.P<....-t.........0...src/Compo
0b00 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 ser/Repository/FilesystemReposit
0b20 6f 72 79 2e 70 68 70 89 04 00 00 74 6c 96 50 89 04 00 00 17 88 9d 4d b6 01 00 00 00 00 00 00 37 ory.php....tl.P.......M........7
0b40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 ...src/Composer/Repository/Writa
0b60 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 5b 01 00 00 74 6c bleRepositoryInterface.php[...tl
0b80 96 50 5b 01 00 00 74 4d 02 d5 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P[...tM..........*...src/Compos
0ba0 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 er/Repository/PearRepository.php
0bc0 8b 14 00 00 74 6c 96 50 8b 14 00 00 b8 8e 9f 2b b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f ....tl.P.......+........-...src/
0be0 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 4d 61 Composer/Repository/RepositoryMa
0c00 6e 61 67 65 72 2e 70 68 70 70 07 00 00 74 6c 96 50 70 07 00 00 f1 a5 e7 79 b6 01 00 00 00 00 00 nager.phpp...tl.Pp......y.......
0c20 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 .,...src/Composer/Repository/Vcs
0c40 2f 47 69 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 e8 1e 00 00 74 6c 96 50 e8 1e 00 00 7d 5f 73 /GitHubDriver.php....tl.P....}_s
0c60 11 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 .........2...src/Composer/Reposi
0c80 74 6f 72 79 2f 56 63 73 2f 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 3d tory/Vcs/GitBitbucketDriver.php=
0ca0 0d 00 00 74 6c 96 50 3d 0d 00 00 cf c7 8e ba b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 ...tl.P=...............)...src/C
0cc0 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 44 72 69 76 65 72 omposer/Repository/Vcs/GitDriver
0ce0 2e 70 68 70 22 12 00 00 74 6c 96 50 22 12 00 00 3e 82 da 96 b6 01 00 00 00 00 00 00 29 00 00 00 .php"...tl.P"...>...........)...
0d00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 53 76 6e 44 src/Composer/Repository/Vcs/SvnD
0d20 72 69 76 65 72 2e 70 68 70 50 16 00 00 74 6c 96 50 50 16 00 00 2e 2d a8 3b b6 01 00 00 00 00 00 river.phpP...tl.PP....-.;.......
0d40 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 .2...src/Composer/Repository/Vcs
0d60 2f 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 43 02 00 00 74 6c 96 50 43 /VcsDriverInterface.phpC...tl.PC
0d80 02 00 00 f9 46 c4 fc b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ....F..........(...src/Composer/
0da0 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 ee 12 00 00 74 Repository/Vcs/HgDriver.php....t
0dc0 6c 96 50 ee 12 00 00 26 fd 74 3f b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f l.P....&.t?........)...src/Compo
0de0 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 2e 70 68 70 ser/Repository/Vcs/VcsDriver.php
0e00 70 05 00 00 74 6c 96 50 70 05 00 00 66 88 1c 6a b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f p...tl.Pp...f..j........1...src/
0e20 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 42 69 74 62 75 63 Composer/Repository/Vcs/HgBitbuc
0e40 6b 65 74 44 72 69 76 65 72 2e 70 68 70 f8 0c 00 00 74 6c 96 50 f8 0c 00 00 cd a4 6d e9 b6 01 00 ketDriver.php....tl.P......m....
0e60 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 .....4...src/Composer/Repository
0e80 2f 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 db 00 00 /InstalledArrayRepository.php...
0ea0 00 74 6c 96 50 db 00 00 00 7e 8e 24 d8 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d .tl.P....~.$.........9...src/Com
0ec0 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 poser/Repository/StreamableRepos
0ee0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 84 01 00 00 74 6c 96 50 84 01 00 00 38 fe itoryInterface.php....tl.P....8.
0f00 01 b6 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 ..........)...src/Composer/Repos
0f20 69 74 6f 72 79 2f 56 63 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 f9 18 00 00 74 6c 96 50 f9 itory/VcsRepository.php....tl.P.
0f40 18 00 00 03 ac 57 16 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....W.............src/Composer/
0f60 52 65 70 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 Repository/PlatformRepository.ph
0f80 70 b4 08 00 00 74 6c 96 50 b4 08 00 00 51 a0 ad 2e b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 p....tl.P....Q...........9...src
0fa0 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 46 69 /Composer/Repository/InstalledFi
0fc0 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 74 6c 96 50 a3 00 lesystemRepository.php....tl.P..
0fe0 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 ..V.._......../...src/Composer/R
1000 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 epository/CompositeRepository.ph
1020 70 e7 07 00 00 74 6c 96 50 e7 07 00 00 cf aa 22 b4 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 p....tl.P......".........8...src
1040 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 52 65 /Composer/Repository/InstalledRe
1060 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 00 74 6c 96 50 87 00 00 positoryInterface.php....tl.P...
1080 00 18 a3 39 70 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 ...9p............src/Composer/Re
10a0 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 bd pository/ComposerRepository.php.
10c0 2d 00 00 74 6c 96 50 bd 2d 00 00 37 79 2b ad b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 -..tl.P.-..7y+........./...src/C
10e0 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e omposer/Repository/Pear/Dependen
1100 63 79 49 6e 66 6f 2e 70 68 70 71 01 00 00 74 6c 96 50 71 01 00 00 66 ba 54 f2 b6 01 00 00 00 00 cyInfo.phpq...tl.Pq...f.T.......
1120 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 ..8...src/Composer/Repository/Pe
1140 61 72 2f 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 2e 70 68 70 21 16 ar/PackageDependencyParser.php!.
1160 00 00 74 6c 96 50 21 16 00 00 3d cc f3 46 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f ..tl.P!...=..F........,...src/Co
1180 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 49 6e mposer/Repository/Pear/ChannelIn
11a0 66 6f 2e 70 68 70 c4 01 00 00 74 6c 96 50 c4 01 00 00 3a 54 2a c9 b6 01 00 00 00 00 00 00 2e 00 fo.php....tl.P....:T*...........
11c0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 ..src/Composer/Repository/Pear/C
11e0 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6d 06 00 00 74 6c 96 50 6d 06 00 00 ef e5 4e 27 hannelReader.phpm...tl.Pm.....N'
1200 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 ........,...src/Composer/Reposit
1220 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 b0 03 00 00 74 6c 96 50 ory/Pear/PackageInfo.php....tl.P
1240 b0 03 00 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ................5...src/Composer
1260 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 /Repository/Pear/DependencyConst
1280 72 61 69 6e 74 2e 70 68 70 71 02 00 00 74 6c 96 50 71 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 raint.phpq...tl.Pq...9..=.......
12a0 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 .4...src/Composer/Repository/Pea
12c0 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 70 26 09 00 00 74 6c 96 r/ChannelRest11Reader.php&...tl.
12e0 50 26 09 00 00 f2 55 62 08 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P&....Ub.........,...src/Compose
1300 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 r/Repository/Pear/ReleaseInfo.ph
1320 70 92 01 00 00 74 6c 96 50 92 01 00 00 6f 93 8a c3 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 p....tl.P....o...........2...src
1340 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 42 61 73 65 43 68 /Composer/Repository/Pear/BaseCh
1360 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 34 05 00 00 74 6c 96 50 34 05 00 00 44 3f 8b 85 b6 annelReader.php4...tl.P4...D?...
1380 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......4...src/Composer/Reposito
13a0 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 2e 70 68 70 c0 ry/Pear/ChannelRest10Reader.php.
13c0 09 00 00 74 6c 96 50 c0 09 00 00 5d 31 0f de b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 ...tl.P....]1........../...src/C
13e0 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 omposer/Repository/RepositoryInt
1400 65 72 66 61 63 65 2e 70 68 70 ca 01 00 00 74 6c 96 50 ca 01 00 00 d1 85 dd 4b b6 01 00 00 00 00 erface.php....tl.P.......K......
1420 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 61 ..-...src/Composer/Repository/Pa
1440 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 15 02 00 00 74 6c 96 50 15 02 00 00 82 ckageRepository.php....tl.P.....
1460 f3 73 3e b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f .s>........9...src/Composer/Repo
1480 73 69 74 6f 72 79 2f 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 sitory/NotifiableRepositoryInter
14a0 66 61 63 65 2e 70 68 70 e3 00 00 00 74 6c 96 50 e3 00 00 00 c5 d0 53 27 b6 01 00 00 00 00 00 00 face.php....tl.P......S'........
14c0 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 (...src/Composer/Package/Complet
14e0 65 50 61 63 6b 61 67 65 2e 70 68 70 d8 05 00 00 74 6c 96 50 d8 05 00 00 38 47 6c 5d b6 01 00 00 ePackage.php....tl.P....8Gl]....
1500 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 44 75 6d ....+...src/Composer/Package/Dum
1520 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 68 70 38 09 00 00 74 6c 96 50 38 09 00 00 81 per/ArrayDumper.php8...tl.P8....
1540 33 8d 31 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 3.1........7...src/Composer/Pack
1560 61 67 65 2f 4c 6f 61 64 65 72 2f 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 age/Loader/InvalidPackageExcepti
1580 6f 6e 2e 70 68 70 b1 01 00 00 74 6c 96 50 b1 01 00 00 40 86 d6 44 b6 01 00 00 00 00 00 00 2a 00 on.php....tl.P....@..D........*.
15a0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4a 73 ..src/Composer/Package/Loader/Js
15c0 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 00 00 74 6c 96 50 f9 01 00 00 21 7e 88 7b b6 01 00 00 onLoader.php....tl.P....!~.{....
15e0 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 ..../...src/Composer/Package/Loa
1600 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b2 00 00 00 74 6c 96 50 b2 der/LoaderInterface.php....tl.P.
1620 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ....}..........+...src/Composer/
1640 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 fa 14 Package/Loader/ArrayLoader.php..
1660 00 00 74 6c 96 50 fa 14 00 00 cf 44 8a 27 b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f ..tl.P.....D.'........5...src/Co
1680 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 56 61 6c 69 64 61 74 69 6e 67 mposer/Package/Loader/Validating
16a0 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 54 23 00 00 74 6c 96 50 54 23 00 00 fd 1f ef c7 b6 ArrayLoader.phpT#..tl.PT#.......
16c0 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f .......1...src/Composer/Package/
16e0 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 2e 70 68 70 d0 15 00 00 Loader/RootPackageLoader.php....
1700 74 6c 96 50 d0 15 00 00 5c 3a 34 29 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 tl.P....\:4)............src/Comp
1720 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 63 6b 65 72 2e 70 68 70 12 17 00 00 74 6c 96 50 12 oser/Package/Locker.php....tl.P.
1740 17 00 00 35 97 9f d0 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...5...........)...src/Composer/
1760 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 59 06 00 00 Package/PackageInterface.phpY...
1780 74 6c 96 50 59 06 00 00 00 86 81 d9 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 tl.PY...............$...src/Comp
17a0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 42 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 30 0a 00 00 oser/Package/BasePackage.php0...
17c0 74 6c 96 50 30 0a 00 00 43 b0 c1 88 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 tl.P0...C...............src/Comp
17e0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 oser/Package/Version/VersionPars
1800 65 72 2e 70 68 70 17 1d 00 00 74 6c 96 50 17 1d 00 00 4a 28 32 f7 b6 01 00 00 00 00 00 00 31 00 er.php....tl.P....J(2.........1.
1820 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 ..src/Composer/Package/CompleteP
1840 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a1 01 00 00 74 6c 96 50 a1 01 00 00 96 ackageInterface.php....tl.P.....
1860 cf 32 97 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b .2.........-...src/Composer/Pack
1880 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f9 00 00 00 age/RootPackageInterface.php....
18a0 74 6c 96 50 f9 00 00 00 e1 2c 59 be b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 tl.P.....,Y.........$...src/Comp
18c0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 2e 70 68 70 ff 02 00 00 oser/Package/RootPackage.php....
18e0 74 6c 96 50 ff 02 00 00 d8 1f 4e 33 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 tl.P......N3............src/Comp
1900 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 65 2e 70 68 70 ce 13 00 00 74 6c 96 50 oser/Package/Package.php....tl.P
1920 ce 13 00 00 5c c7 0d 9d b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ....\...........%...src/Composer
1940 2f 50 61 63 6b 61 67 65 2f 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 9b 12 00 00 74 6c 96 /Package/AliasPackage.php....tl.
1960 50 9b 12 00 00 d5 c9 6a 84 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P......j.............src/Compose
1980 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 2e 70 68 70 51 05 00 00 74 6c 96 50 51 05 00 00 87 cf r/Package/Link.phpQ...tl.PQ.....
19a0 39 04 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 9.........7...src/Composer/Packa
19c0 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e ge/LinkConstraint/MultiConstrain
19e0 74 2e 70 68 70 5c 03 00 00 74 6c 96 50 5c 03 00 00 5b 0b 7d 63 b6 01 00 00 00 00 00 00 39 00 00 t.php\...tl.P\...[.}c........9..
1a00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 .src/Composer/Package/LinkConstr
1a20 61 69 6e 74 2f 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 f9 05 00 00 74 6c aint/VersionConstraint.php....tl
1a40 96 50 f9 05 00 00 29 6d cf ce b6 01 00 00 00 00 00 00 3a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P....)m..........:...src/Compos
1a60 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 53 70 65 63 69 66 er/Package/LinkConstraint/Specif
1a80 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 74 6c 96 50 71 02 00 00 96 53 9a f8 icConstraint.phpq...tl.Pq....S..
1aa0 b6 01 00 00 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ........?...src/Composer/Package
1ac0 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e /LinkConstraint/LinkConstraintIn
1ae0 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 74 6c 96 50 15 01 00 00 e5 fe 87 a2 b6 01 00 00 00 terface.php....tl.P.............
1b00 00 00 00 16 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 61 63 68 65 2e 70 68 70 81 04 00 .......src/Composer/Cache.php...
1b20 00 74 6c 96 50 81 04 00 00 9d ff 1c 10 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d .tl.P................3...src/Com
1b40 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6c 69 63 79 49 poser/DependencyResolver/PolicyI
1b60 6e 74 65 72 66 61 63 65 2e 70 68 70 91 01 00 00 74 6c 96 50 91 01 00 00 42 18 9f b6 b6 01 00 00 nterface.php....tl.P....B.......
1b80 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 ....+...src/Composer/DependencyR
1ba0 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 9b 09 00 00 74 6c 96 50 9b 09 00 00 4a esolver/RuleSet.php....tl.P....J
1bc0 79 0c c0 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 y..........6...src/Composer/Depe
1be0 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f ndencyResolver/SolverBugExceptio
1c00 6e 2e 70 68 70 98 01 00 00 74 6c 96 50 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 31 00 00 n.php....tl.P....."qN........1..
1c20 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .src/Composer/DependencyResolver
1c40 2f 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 57 15 00 00 74 6c 96 50 57 15 00 00 9e e9 /DefaultPolicy.phpW...tl.PW.....
1c60 5d 81 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e ].........-...src/Composer/Depen
1c80 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 51 0f 00 00 74 dencyResolver/Decisions.phpQ...t
1ca0 6c 96 50 51 0f 00 00 3f 98 ac 24 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f l.PQ...?..$........1...src/Compo
1cc0 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 ser/DependencyResolver/RuleWatch
1ce0 4e 6f 64 65 2e 70 68 70 f0 03 00 00 74 6c 96 50 f0 03 00 00 5d 24 f3 b4 b6 01 00 00 00 00 00 00 Node.php....tl.P....]$..........
1d00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c ;...src/Composer/DependencyResol
1d20 76 65 72 2f 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 22 ver/SolverProblemsException.php"
1d40 04 00 00 74 6c 96 50 22 04 00 00 94 50 34 46 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 ...tl.P"....P4F......../...src/C
1d60 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 54 72 61 6e 73 omposer/DependencyResolver/Trans
1d80 61 63 74 69 6f 6e 2e 70 68 70 11 14 00 00 74 6c 96 50 11 14 00 00 93 fe de 87 b6 01 00 00 00 00 action.php....tl.P..............
1da0 00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 ..@...src/Composer/DependencyRes
1dc0 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 olver/Operation/UninstallOperati
1de0 6f 6e 2e 70 68 70 49 02 00 00 74 6c 96 50 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 00 00 00 3d 00 on.phpI...tl.PI...F...........=.
1e00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ..src/Composer/DependencyResolve
1e20 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 68 r/Operation/UpdateOperation.phph
1e40 03 00 00 74 6c 96 50 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 00 00 00 49 00 00 00 73 72 63 2f 43 ...tl.Ph....S.]........I...src/C
1e60 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 omposer/DependencyResolver/Opera
1e80 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e tion/MarkAliasInstalledOperation
1ea0 2e 70 68 70 d0 02 00 00 74 6c 96 50 d0 02 00 00 78 55 5a 61 b6 01 00 00 00 00 00 00 3e 00 00 00 .php....tl.P....xUZa........>...
1ec0 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f src/Composer/DependencyResolver/
1ee0 4f 70 65 72 61 74 69 6f 6e 2f 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 43 02 Operation/InstallOperation.phpC.
1f00 00 00 74 6c 96 50 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f ..tl.PC....\.*........=...src/Co
1f20 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 mposer/DependencyResolver/Operat
1f40 69 6f 6e 2f 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 eb 01 00 00 74 6c 96 50 eb ion/SolverOperation.php....tl.P.
1f60 01 00 00 c4 a7 dd 94 b6 01 00 00 00 00 00 00 4b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...............K...src/Composer/
1f80 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 DependencyResolver/Operation/Mar
1fa0 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d6 02 kAliasUninstalledOperation.php..
1fc0 00 00 74 6c 96 50 d6 02 00 00 5f 69 c7 ab b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 6f ..tl.P...._i..........@...src/Co
1fe0 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 mposer/DependencyResolver/Operat
2000 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d3 00 00 00 74 6c ion/OperationInterface.php....tl
2020 96 50 d3 00 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P......&.........(...src/Compos
2040 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 90 25 er/DependencyResolver/Pool.php.%
2060 00 00 74 6c 96 50 90 25 00 00 4d 02 70 47 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f ..tl.P.%..M.pG........(...src/Co
2080 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 2e 70 mposer/DependencyResolver/Rule.p
20a0 68 70 0b 12 00 00 74 6c 96 50 0b 12 00 00 69 2d bf 13 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 hp....tl.P....i-..........4...sr
20c0 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 c/Composer/DependencyResolver/Ru
20e0 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 4f 15 00 00 74 6c 96 50 4f 15 00 00 5f 3c leSetGenerator.phpO...tl.PO..._<
2100 a0 3d b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e .=......../...src/Composer/Depen
2120 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 62 75 67 53 6f 6c 76 65 72 2e 70 68 70 89 06 00 dencyResolver/DebugSolver.php...
2140 00 74 6c 96 50 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d .tl.P................3...src/Com
2160 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 poser/DependencyResolver/RuleSet
2180 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 74 6c 96 50 14 06 00 00 7d f5 c7 f9 b6 01 00 00 Iterator.php....tl.P....}.......
21a0 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 ....2...src/Composer/DependencyR
21c0 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 2e 70 68 70 69 01 00 00 74 6c esolver/RuleWatchChain.phpi...tl
21e0 96 50 69 01 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Pi...h..,........*...src/Compos
2200 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 2e 70 68 70 er/DependencyResolver/Solver.php
2220 9c 35 00 00 74 6c 96 50 9c 35 00 00 63 00 41 de b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f .5..tl.P.5..c.A.........+...src/
2240 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 65 71 75 Composer/DependencyResolver/Requ
2260 65 73 74 2e 70 68 70 89 04 00 00 74 6c 96 50 89 04 00 00 31 1a b2 49 b6 01 00 00 00 00 00 00 2b est.php....tl.P....1..I........+
2280 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 ...src/Composer/DependencyResolv
22a0 65 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 29 0d 00 00 74 6c 96 50 29 0d 00 00 30 81 17 a5 b6 01 er/Problem.php)...tl.P)...0.....
22c0 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 ......2...src/Composer/Dependenc
22e0 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 e1 06 00 00 yResolver/RuleWatchGraph.php....
2300 74 6c 96 50 e1 06 00 00 89 72 f4 76 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 tl.P.....r.v........-...src/Comp
2320 6f 73 65 72 2f 43 6f 6e 66 69 67 2f 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 oser/Config/ConfigSourceInterfac
2340 65 2e 70 68 70 0c 01 00 00 74 6c 96 50 0c 01 00 00 e7 95 37 68 b6 01 00 00 00 00 00 00 28 00 00 e.php....tl.P......7h........(..
2360 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2f 4a 73 6f 6e 43 6f 6e 66 69 67 53 .src/Composer/Config/JsonConfigS
2380 6f 75 72 63 65 2e 70 68 70 a1 06 00 00 74 6c 96 50 a1 06 00 00 5b 94 17 c0 b6 01 00 00 00 00 00 ource.php....tl.P....[..........
23a0 00 18 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 73 1a 00 .....src/Composer/Factory.phps..
23c0 00 74 6c 96 50 73 1a 00 00 89 de e5 6c b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d .tl.Ps......l............src/Com
23e0 70 6f 73 65 72 2f 55 74 69 6c 2f 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 1b 10 00 00 74 6c 96 poser/Util/Filesystem.php....tl.
2400 50 1b 10 00 00 6a d3 52 0d b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P....j.R.............src/Compose
2420 72 2f 55 74 69 6c 2f 47 69 74 48 75 62 2e 70 68 70 e0 09 00 00 74 6c 96 50 e0 09 00 00 aa d0 60 r/Util/GitHub.php....tl.P......`
2440 1d b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 50 .........%...src/Composer/Util/P
2460 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 71 04 00 00 74 6c 96 50 71 04 00 00 89 8a rocessExecutor.phpq...tl.Pq.....
2480 c7 ac b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f ..........&...src/Composer/Util/
24a0 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 0e 18 00 00 74 6c 96 50 0e 18 00 00 RemoteFilesystem.php....tl.P....
24c0 fe 8b 46 b7 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 ..F.........*...src/Composer/Uti
24e0 6c 2f 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 41 06 00 00 74 6c l/StreamContextFactory.phpA...tl
2500 96 50 41 06 00 00 8f e6 be 66 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .PA......f........%...src/Compos
2520 65 72 2f 55 74 69 6c 2f 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 c8 08 00 00 74 er/Util/ConfigValidator.php....t
2540 6c 96 50 c8 08 00 00 e4 55 58 ad b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 6f 6d 70 6f l.P.....UX........."...src/Compo
2560 73 65 72 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 14 02 00 00 74 6c 96 ser/Util/ErrorHandler.php....tl.
2580 50 14 02 00 00 b4 40 85 e6 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P.....@..........+...src/Compose
25a0 72 2f 55 74 69 6c 2f 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 2e 70 68 70 r/Util/SpdxLicenseIdentifier.php
25c0 36 0a 00 00 74 6c 96 50 36 0a 00 00 c4 36 bb 6f b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 6...tl.P6....6.o............src/
25e0 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 59 0c 00 00 74 6c 96 50 59 0c 00 Composer/Util/Svn.phpY...tl.PY..
2600 00 d3 ca 1e e2 b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f .................src/Composer/Co
2620 6d 70 6f 73 65 72 2e 70 68 70 9f 05 00 00 74 6c 96 50 9f 05 00 00 77 bb b2 db b6 01 00 00 00 00 mposer.php....tl.P....w.........
2640 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 4d 61 6e 69 ..%...src/Composer/Json/JsonMani
2660 70 75 6c 61 74 6f 72 2e 70 68 70 5b 16 00 00 74 6c 96 50 5b 16 00 00 85 3e b9 20 b6 01 00 00 00 pulator.php[...tl.P[....>.......
2680 00 00 00 1e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 69 6c .......src/Composer/Json/JsonFil
26a0 65 2e 70 68 70 ef 13 00 00 74 6c 96 50 ef 13 00 00 1a e5 d1 7c b6 01 00 00 00 00 00 00 2d 00 00 e.php....tl.P.......|........-..
26c0 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f .src/Composer/Json/JsonValidatio
26e0 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 32 01 00 00 74 6c 96 50 32 01 00 00 39 62 84 31 b6 01 nException.php2...tl.P2...9b.1..
2700 00 00 00 00 00 00 17 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 68 ..........src/Composer/Config.ph
2720 70 7b 09 00 00 74 6c 96 50 7b 09 00 00 57 fe 87 0f b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 p{...tl.P{...W...............src
2740 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 68 70 f4 01 00 00 74 6c /Composer/Script/Event.php....tl
2760 96 50 f4 01 00 00 a2 1a 99 bd b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P................$...src/Compos
2780 65 72 2f 53 63 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 2e 70 68 70 81 02 00 00 74 6c er/Script/ScriptEvents.php....tl
27a0 96 50 81 02 00 00 c1 a7 cb ed b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P................$...src/Compos
27c0 65 72 2f 53 63 72 69 70 74 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 6f 00 00 00 74 6c er/Script/CommandEvent.phpo...tl
27e0 96 50 6f 00 00 00 0d b7 14 79 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Po......y........$...src/Compos
2800 65 72 2f 53 63 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 e2 01 00 00 74 6c er/Script/PackageEvent.php....tl
2820 96 50 e2 01 00 00 5b 10 1d b4 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P....[...........'...src/Compos
2840 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 70 60 0b 00 er/Script/EventDispatcher.php`..
2860 00 74 6c 96 50 60 0b 00 00 6d 3a dd 3f b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d .tl.P`...m:.?........(...src/Com
2880 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 2e 70 68 poser/Installer/NoopInstaller.ph
28a0 70 35 05 00 00 74 6c 96 50 35 05 00 00 b1 38 71 61 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 p5...tl.P5....8qa......../...src
28c0 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4d 65 74 61 70 61 63 6b 61 67 65 49 /Composer/Installer/MetapackageI
28e0 6e 73 74 61 6c 6c 65 72 2e 70 68 70 a6 04 00 00 74 6c 96 50 a6 04 00 00 ab a3 66 ce b6 01 00 00 nstaller.php....tl.P......f.....
2900 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 ....(...src/Composer/Installer/P
2920 65 61 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 07 11 00 00 74 6c 96 50 07 11 00 00 1f 57 80 75 earInstaller.php....tl.P.....W.u
2940 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c ........+...src/Composer/Install
2960 65 72 2f 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 e1 05 00 00 74 6c 96 50 e1 er/ProjectInstaller.php....tl.P.
2980 05 00 00 3e 3a 31 c4 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...>:1.........+...src/Composer/
29a0 49 6e 73 74 61 6c 6c 65 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 b0 18 Installer/LibraryInstaller.php..
29c0 00 00 74 6c 96 50 b0 18 00 00 e0 e8 ee d6 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f ..tl.P....................src/Co
29e0 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e mposer/Installer/InstallationMan
2a00 61 67 65 72 2e 70 68 70 88 0e 00 00 74 6c 96 50 88 0e 00 00 f7 d2 b9 80 b6 01 00 00 00 00 00 00 ager.php....tl.P................
2a20 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 -...src/Composer/Installer/Insta
2a40 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 74 6c 96 50 c5 02 00 00 48 53 93 llerInterface.php....tl.P....HS.
2a60 a1 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c .........-...src/Composer/Instal
2a80 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 b7 09 00 00 74 6c ler/InstallerInstaller.php....tl
2aa0 96 50 b7 09 00 00 3e 90 49 5c b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P....>.I\........$...src/Compos
2ac0 65 72 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 67 11 00 00 74 6c er/Console/Application.phpg...tl
2ae0 96 50 67 11 00 00 ea f4 d1 0c b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Pg...............+...src/Compos
2b00 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2e 70 68 er/Autoload/AutoloadGenerator.ph
2b20 70 05 2f 00 00 74 6c 96 50 05 2f 00 00 ed 8f a6 3b b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 p./..tl.P./.....;........+...src
2b40 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 /Composer/Autoload/ClassMapGener
2b60 61 74 6f 72 2e 70 68 70 e8 07 00 00 74 6c 96 50 e8 07 00 00 69 f8 29 dc b6 01 00 00 00 00 00 00 ator.php....tl.P....i.).........
2b80 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 b3 46 ....src/Composer/Installer.php.F
2ba0 00 00 74 6c 96 50 b3 46 00 00 e7 e8 88 c7 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f ..tl.P.F..............%...src/Co
2bc0 6d 70 6f 73 65 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 cd mposer/Autoload/ClassLoader.php.
2be0 15 00 00 74 6c 96 50 cd 15 00 00 8e 61 d2 32 b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 73 ...tl.P.....a.2............res/s
2c00 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 58 09 00 00 74 6c 96 50 58 09 00 00 8c pdx-identifier.jsonX...tl.PX....
2c20 66 e7 cc b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 68 65 f..............res/composer-sche
2c40 6d 61 2e 6a 73 6f 6e f7 2e 00 00 74 6c 96 50 f7 2e 00 00 54 d2 f8 36 b6 01 00 00 00 00 00 00 1f ma.json....tl.P....T..6.........
2c60 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 ...src/Composer/IO/hiddeninput.e
2c80 78 65 00 24 00 00 74 6c 96 50 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 xe.$..tl.P.$.....v........?...ve
2ca0 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/process/Symfony/Com
2cc0 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 68 70 50 72 6f 63 65 73 73 2e 70 68 70 19 03 00 ponent/Process/PhpProcess.php...
2ce0 00 74 6c 96 50 19 03 00 00 e2 3d da cd b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f .tl.P.....=..........E...vendor/
2d00 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/process/Symfony/Componen
2d20 74 2f 50 72 6f 63 65 73 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 28 05 t/Process/ExecutableFinder.php(.
2d40 00 00 74 6c 96 50 28 05 00 00 8b f8 40 ad b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 ..tl.P(.....@.........<...vendor
2d60 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 /symfony/process/Symfony/Compone
2d80 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 71 37 00 00 74 6c 96 50 71 37 nt/Process/Process.phpq7..tl.Pq7
2da0 00 00 0d 1e a6 47 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 .....G........C...vendor/symfony
2dc0 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 /process/Symfony/Component/Proce
2de0 73 73 2f 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 70 07 00 00 74 6c 96 50 70 07 00 ss/ProcessBuilder.phpp...tl.Pp..
2e00 00 e3 6d 02 26 b6 01 00 00 00 00 00 00 51 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..m.&........Q...vendor/symfony/
2e20 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 process/Symfony/Component/Proces
2e40 73 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 s/Exception/ExceptionInterface.p
2e60 68 70 66 00 00 00 74 6c 96 50 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 hpf...tl.Pf...].>T........O...ve
2e80 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/process/Symfony/Com
2ea0 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 ponent/Process/Exception/Runtime
2ec0 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 00 00 00 74 6c 96 50 98 00 00 00 a2 1b d8 3a b6 01 00 Exception.php....tl.P.......:...
2ee0 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f .....M...vendor/symfony/process/
2f00 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 Symfony/Component/Process/Except
2f20 69 6f 6e 2f 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 94 00 00 00 74 6c 96 50 94 00 ion/LogicException.php....tl.P..
2f40 00 00 20 b3 e3 f1 b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..............U...vendor/symfony
2f60 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 /process/Symfony/Component/Proce
2f80 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 ss/Exception/ProcessFailedExcept
2fa0 69 6f 6e 2e 70 68 70 a1 02 00 00 74 6c 96 50 a1 02 00 00 a1 a9 4e 2f b6 01 00 00 00 00 00 00 57 ion.php....tl.P......N/........W
2fc0 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e ...vendor/symfony/process/Symfon
2fe0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 49 6e y/Component/Process/Exception/In
3000 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 a8 00 00 00 74 6c validArgumentException.php....tl
3020 96 50 a8 00 00 00 d0 c0 2b 5f b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .P......+_........H...vendor/sym
3040 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 fony/process/Symfony/Component/P
3060 72 6f 63 65 73 73 2f 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 9b 02 rocess/PhpExecutableFinder.php..
3080 00 00 74 6c 96 50 9b 02 00 00 b4 a5 44 45 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 ..tl.P......DE........H...vendor
30a0 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 /symfony/console/Symfony/Compone
30c0 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 6f 6d 6d 61 6e 64 2e 70 nt/Console/Command/HelpCommand.p
30e0 68 70 0c 06 00 00 74 6c 96 50 0c 06 00 00 2d ea 87 3b b6 01 00 00 00 00 00 00 44 00 00 00 76 65 hp....tl.P....-..;........D...ve
3100 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/console/Symfony/Com
3120 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 ponent/Console/Command/Command.p
3140 68 70 9d 1d 00 00 74 6c 96 50 9d 1d 00 00 ee c7 a0 b2 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 hp....tl.P................H...ve
3160 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/console/Symfony/Com
3180 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 73 74 43 6f 6d 6d 61 ponent/Console/Command/ListComma
31a0 6e 64 2e 70 68 70 10 07 00 00 74 6c 96 50 10 07 00 00 8a c9 f8 5e b6 01 00 00 00 00 00 00 4d 00 nd.php....tl.P.......^........M.
31c0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
31e0 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 41 70 70 6c 69 63 /Component/Console/Tester/Applic
3200 61 74 69 6f 6e 54 65 73 74 65 72 2e 70 68 70 f2 04 00 00 74 6c 96 50 f2 04 00 00 2a a3 b4 04 b6 ationTester.php....tl.P....*....
3220 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......I...vendor/symfony/consol
3240 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 e/Symfony/Component/Console/Test
3260 65 72 2f 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 7a 04 00 00 74 6c 96 50 7a 04 00 00 er/CommandTester.phpz...tl.Pz...
3280 78 55 d7 f0 b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 xU..........X...vendor/symfony/c
32a0 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
32c0 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 /Formatter/OutputFormatterStyleS
32e0 74 61 63 6b 2e 70 68 70 08 05 00 00 74 6c 96 50 08 05 00 00 79 08 49 27 b6 01 00 00 00 00 00 00 tack.php....tl.P....y.I'........
3300 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f S...vendor/symfony/console/Symfo
3320 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f ny/Component/Console/Formatter/O
3340 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 55 0c 00 00 74 6c 96 50 55 utputFormatterStyle.phpU...tl.PU
3360 0c 00 00 7a a8 dc ed b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ...z...........\...vendor/symfon
3380 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
33a0 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 ole/Formatter/OutputFormatterSty
33c0 6c 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 8e 01 00 00 74 6c 96 50 8e 01 00 00 f6 eb c4 3d b6 leInterface.php....tl.P.......=.
33e0 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......N...vendor/symfony/consol
3400 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d e/Symfony/Component/Console/Form
3420 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 cb 0b 00 00 74 6c 96 atter/OutputFormatter.php....tl.
3440 50 cb 0b 00 00 7e 6f af 49 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 P....~o.I........W...vendor/symf
3460 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f ony/console/Symfony/Component/Co
3480 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 nsole/Formatter/OutputFormatterI
34a0 6e 74 65 72 66 61 63 65 2e 70 68 70 98 01 00 00 74 6c 96 50 98 01 00 00 33 6c 7e b4 b6 01 00 00 nterface.php....tl.P....3l~.....
34c0 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....@...vendor/symfony/console/S
34e0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 63 61 ymfony/Component/Console/Applica
3500 74 69 6f 6e 2e 70 68 70 63 4b 00 00 74 6c 96 50 63 4b 00 00 33 ef cd 8d b6 01 00 00 00 00 00 00 tion.phpcK..tl.PcK..3...........
3520 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f H...vendor/symfony/console/Symfo
3540 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 ny/Component/Console/Input/Input
3560 41 72 67 75 6d 65 6e 74 2e 70 68 70 9a 05 00 00 74 6c 96 50 9a 05 00 00 fd 77 4f 6d b6 01 00 00 Argument.php....tl.P.....wOm....
3580 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....@...vendor/symfony/console/S
35a0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 ymfony/Component/Console/Input/I
35c0 6e 70 75 74 2e 70 68 70 83 09 00 00 74 6c 96 50 83 09 00 00 7c 3e 7f 5c b6 01 00 00 00 00 00 00 nput.php....tl.P....|>.\........
35e0 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f F...vendor/symfony/console/Symfo
3600 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 53 74 72 69 6e ny/Component/Console/Input/Strin
3620 67 49 6e 70 75 74 2e 70 68 70 92 05 00 00 74 6c 96 50 92 05 00 00 8b 63 80 95 b6 01 00 00 00 00 gInput.php....tl.P.....c........
3640 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..F...vendor/symfony/console/Sym
3660 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 fony/Component/Console/Input/Inp
3680 75 74 4f 70 74 69 6f 6e 2e 70 68 70 1a 0b 00 00 74 6c 96 50 1a 0b 00 00 58 a5 aa 58 b6 01 00 00 utOption.php....tl.P....X..X....
36a0 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....D...vendor/symfony/console/S
36c0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 ymfony/Component/Console/Input/A
36e0 72 67 76 49 6e 70 75 74 2e 70 68 70 c4 10 00 00 74 6c 96 50 c4 10 00 00 f6 34 b3 cc b6 01 00 00 rgvInput.php....tl.P.....4......
3700 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....I...vendor/symfony/console/S
3720 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 ymfony/Component/Console/Input/I
3740 6e 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 74 6c 96 50 20 03 00 00 39 94 f8 nputInterface.php....tl.P....9..
3760 c7 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 .........E...vendor/symfony/cons
3780 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e ole/Symfony/Component/Console/In
37a0 70 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 d1 08 00 00 74 6c 96 50 d1 08 00 00 da 5f put/ArrayInput.php....tl.P....._
37c0 af c3 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e ..........J...vendor/symfony/con
37e0 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 sole/Symfony/Component/Console/I
3800 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 2e 70 68 70 d3 25 00 00 74 6c 96 50 nput/InputDefinition.php.%..tl.P
3820 d3 25 00 00 1d c1 c5 d8 b6 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .%..............:...vendor/symfo
3840 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e ny/console/Symfony/Component/Con
3860 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 e4 0d 00 00 74 6c 96 50 e4 0d 00 00 d4 ac eb c1 b6 01 sole/Shell.php....tl.P..........
3880 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......B...vendor/symfony/console
38a0 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 /Symfony/Component/Console/Outpu
38c0 74 2f 4f 75 74 70 75 74 2e 70 68 70 78 07 00 00 74 6c 96 50 78 07 00 00 c6 02 19 a4 b6 01 00 00 t/Output.phpx...tl.Px...........
38e0 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....F...vendor/symfony/console/S
3900 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f ymfony/Component/Console/Output/
3920 4e 75 6c 6c 4f 75 74 70 75 74 2e 70 68 70 a3 00 00 00 74 6c 96 50 a3 00 00 00 92 c7 a2 8e b6 01 NullOutput.php....tl.P..........
3940 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......R...vendor/symfony/console
3960 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 /Symfony/Component/Console/Outpu
3980 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 t/ConsoleOutputInterface.php....
39a0 74 6c 96 50 15 01 00 00 0e 8d c3 06 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 tl.P................H...vendor/s
39c0 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 ymfony/console/Symfony/Component
39e0 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 53 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 /Console/Output/StreamOutput.php
3a00 b0 04 00 00 74 6c 96 50 b0 04 00 00 2e 66 07 1d b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 ....tl.P.....f..........K...vend
3a20 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
3a40 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 49 6e 74 65 72 66 nent/Console/Output/OutputInterf
3a60 61 63 65 2e 70 68 70 e6 02 00 00 74 6c 96 50 e6 02 00 00 2e 1b 93 3c b6 01 00 00 00 00 00 00 49 ace.php....tl.P.......<........I
3a80 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
3aa0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 43 6f 6e 73 6f y/Component/Console/Output/Conso
3ac0 6c 65 4f 75 74 70 75 74 2e 70 68 70 74 05 00 00 74 6c 96 50 74 05 00 00 28 c8 3e 54 b6 01 00 00 leOutput.phpt...tl.Pt...(.>T....
3ae0 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....K...vendor/symfony/console/S
3b00 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f ymfony/Component/Console/Helper/
3b20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 74 6c 96 50 ef 00 00 00 3d HelperInterface.php....tl.P....=
3b40 65 1b 0c b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f e..........K...vendor/symfony/co
3b60 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f nsole/Symfony/Component/Console/
3b80 48 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 05 05 00 00 74 6c Helper/FormatterHelper.php....tl
3ba0 96 50 05 05 00 00 0f 7b 2e 14 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .P.....{..........E...vendor/sym
3bc0 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 fony/console/Symfony/Component/C
3be0 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 53 65 74 2e 70 68 70 d3 03 00 00 74 onsole/Helper/HelperSet.php....t
3c00 6c 96 50 d3 03 00 00 98 5e 39 74 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 l.P.....^9t........H...vendor/sy
3c20 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f mfony/console/Symfony/Component/
3c40 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 19 Console/Helper/DialogHelper.php.
3c60 10 00 00 74 6c 96 50 19 10 00 00 b9 f0 5c ec b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f ...tl.P......\.........B...vendo
3c80 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
3ca0 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 68 70 39 01 00 ent/Console/Helper/Helper.php9..
3cc0 00 74 6c 96 50 39 01 00 00 8b fa a9 8a b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f .tl.P9...............J...vendor/
3ce0 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/console/Symfony/Componen
3d00 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 2e t/Console/Helper/ProgressHelper.
3d20 70 68 70 80 16 00 00 74 6c 96 50 80 16 00 00 e5 0e 49 5f b6 01 00 00 00 00 00 00 39 00 00 00 76 php....tl.P......I_........9...v
3d40 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d endor/symfony/finder/Symfony/Com
3d60 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 3d 19 00 00 74 6c 96 50 ponent/Finder/Finder.php=...tl.P
3d80 3d 19 00 00 8d f1 91 f9 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f =...............7...vendor/symfo
3da0 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 ny/finder/Symfony/Component/Find
3dc0 65 72 2f 47 6c 6f 62 2e 70 68 70 0d 05 00 00 74 6c 96 50 0d 05 00 00 7a 9d f8 0a b6 01 00 00 00 er/Glob.php....tl.P....z........
3de0 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...T...vendor/symfony/finder/Sym
3e00 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 fony/Component/Finder/Iterator/D
3e20 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 67 03 00 00 74 epthRangeFilterIterator.phpg...t
3e40 6c 96 50 67 03 00 00 e7 4f 54 13 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 l.Pg....OT.........L...vendor/sy
3e60 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 mfony/finder/Symfony/Component/F
3e80 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 2e inder/Iterator/SortableIterator.
3ea0 70 68 70 dc 05 00 00 74 6c 96 50 dc 05 00 00 20 48 a0 3a b6 01 00 00 00 00 00 00 55 00 00 00 76 php....tl.P.....H.:........U...v
3ec0 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d endor/symfony/finder/Symfony/Com
3ee0 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 63 6f 6e 74 65 ponent/Finder/Iterator/Fileconte
3f00 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 74 6c 96 50 23 03 00 00 ntFilterIterator.php#...tl.P#...
3f20 da 5f 56 c7 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 ._V.........S...vendor/symfony/f
3f40 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 inder/Symfony/Component/Finder/I
3f60 74 65 72 61 74 6f 72 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e terator/SizeRangeFilterIterator.
3f80 70 68 70 2c 02 00 00 74 6c 96 50 2c 02 00 00 51 d0 e7 6d b6 01 00 00 00 00 00 00 5a 00 00 00 76 php,...tl.P,...Q..m........Z...v
3fa0 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d endor/symfony/finder/Symfony/Com
3fc0 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 45 78 63 6c 75 64 65 44 69 ponent/Finder/Iterator/ExcludeDi
3fe0 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 a5 02 00 00 74 6c 96 rectoryFilterIterator.php....tl.
4000 50 a5 02 00 00 dd 7a 60 2e b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 P.....z`.........J...vendor/symf
4020 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e ony/finder/Symfony/Component/Fin
4040 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 b9 der/Iterator/FilterIterator.php.
4060 01 00 00 74 6c 96 50 b9 01 00 00 cd 05 0b 88 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f ...tl.P................V...vendo
4080 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 r/symfony/finder/Symfony/Compone
40a0 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 nt/Finder/Iterator/MultiplePcreF
40c0 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 a7 03 00 00 74 6c 96 50 a7 03 00 00 e5 85 c5 ilterIterator.php....tl.P.......
40e0 62 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 b........P...vendor/symfony/find
4100 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 er/Symfony/Component/Finder/Iter
4120 61 74 6f 72 2f 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5b 02 00 ator/CustomFilterIterator.php[..
4140 00 74 6c 96 50 5b 02 00 00 ad 04 e5 57 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f .tl.P[......W........R...vendor/
4160 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 symfony/finder/Symfony/Component
4180 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 /Finder/Iterator/FilenameFilterI
41a0 74 65 72 61 74 6f 72 2e 70 68 70 7a 02 00 00 74 6c 96 50 7a 02 00 00 57 6c 19 48 b6 01 00 00 00 terator.phpz...tl.Pz...Wl.H.....
41c0 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...S...vendor/symfony/finder/Sym
41e0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 fony/Component/Finder/Iterator/D
4200 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 2e 02 00 00 74 6c ateRangeFilterIterator.php....tl
4220 96 50 2e 02 00 00 60 91 69 3a b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .P....`.i:........R...vendor/sym
4240 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 fony/finder/Symfony/Component/Fi
4260 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 nder/Iterator/FileTypeFilterIter
4280 61 74 6f 72 2e 70 68 70 5c 02 00 00 74 6c 96 50 5c 02 00 00 70 91 27 98 b6 01 00 00 00 00 00 00 ator.php\...tl.P\...p.'.........
42a0 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e V...vendor/symfony/finder/Symfon
42c0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 52 65 63 75 y/Component/Finder/Iterator/Recu
42e0 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 2e 70 68 70 37 02 00 00 74 6c rsiveDirectoryIterator.php7...tl
4300 96 50 37 02 00 00 01 50 88 37 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .P7....P.7........L...vendor/sym
4320 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 fony/finder/Symfony/Component/Fi
4340 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 nder/Comparator/DateComparator.p
4360 68 70 26 03 00 00 74 6c 96 50 26 03 00 00 e9 68 64 b1 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 hp&...tl.P&....hd.........N...ve
4380 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 ndor/symfony/finder/Symfony/Comp
43a0 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 62 65 72 43 6f onent/Finder/Comparator/NumberCo
43c0 6d 70 61 72 61 74 6f 72 2e 70 68 70 79 03 00 00 74 6c 96 50 79 03 00 00 22 60 14 db b6 01 00 00 mparator.phpy...tl.Py..."`......
43e0 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....H...vendor/symfony/finder/Sy
4400 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f mfony/Component/Finder/Comparato
4420 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 88 03 00 00 74 6c 96 50 88 03 00 00 3e 9a 5d 58 r/Comparator.php....tl.P....>.]X
4440 b6 01 00 00 00 00 00 00 3e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........>...vendor/symfony/finde
4460 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 70 6c 46 69 r/Symfony/Component/Finder/SplFi
4480 6c 65 49 6e 66 6f 2e 70 68 70 86 02 00 00 74 6c 96 50 86 02 00 00 82 26 47 c7 b6 01 00 00 00 00 leInfo.php....tl.P.....&G.......
44a0 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 ..4...vendor/seld/jsonlint/src/S
44c0 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 74 6c eld/JsonLint/Undefined.php>...tl
44e0 96 50 3e 00 00 00 ff 71 9f 9f b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c .P>....q..........5...vendor/sel
4500 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4a 73 6f d/jsonlint/src/Seld/JsonLint/Jso
4520 6e 50 61 72 73 65 72 2e 70 68 70 83 26 00 00 74 6c 96 50 83 26 00 00 bb d0 e1 7e b6 01 00 00 00 nParser.php.&..tl.P.&.....~.....
4540 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f ...0...vendor/seld/jsonlint/src/
4560 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4c 65 78 65 72 2e 70 68 70 91 10 00 00 74 6c 96 50 91 Seld/JsonLint/Lexer.php....tl.P.
4580 10 00 00 38 49 09 44 b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a ...8I.D........;...vendor/seld/j
45a0 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 69 6e sonlint/src/Seld/JsonLint/Parsin
45c0 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1d 01 00 00 74 6c 96 50 1d 01 00 00 fd bb 3a cb b6 01 gException.php....tl.P......:...
45e0 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a ......I...vendor/justinrainbow/j
4600 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 son-schema/src/JsonSchema/Constr
4620 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 78 06 00 00 74 6c 96 50 78 06 00 00 68 aints/Undefined.phpx...tl.Px...h
4640 b7 d9 71 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e ..q........D...vendor/justinrain
4660 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 bow/json-schema/src/JsonSchema/C
4680 6f 6e 73 74 72 61 69 6e 74 73 2f 54 79 70 65 2e 70 68 70 d4 05 00 00 74 6c 96 50 d4 05 00 00 85 onstraints/Type.php....tl.P.....
46a0 e9 2b 46 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e .+F........F...vendor/justinrain
46c0 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 bow/json-schema/src/JsonSchema/C
46e0 6f 6e 73 74 72 61 69 6e 74 73 2f 53 63 68 65 6d 61 2e 70 68 70 d4 01 00 00 74 6c 96 50 d4 01 00 onstraints/Schema.php....tl.P...
4700 00 b9 3a 66 4d b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 ..:fM........F...vendor/justinra
4720 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 inbow/json-schema/src/JsonSchema
4740 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d 62 65 72 2e 70 68 70 57 02 00 00 74 6c 96 50 57 /Constraints/Number.phpW...tl.PW
4760 02 00 00 2e 31 f2 e7 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e ....1..........F...vendor/justin
4780 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 rainbow/json-schema/src/JsonSche
47a0 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4f 62 6a 65 63 74 2e 70 68 70 94 07 00 00 74 6c 96 ma/Constraints/Object.php....tl.
47c0 50 94 07 00 00 63 e8 5a fb b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 P....c.Z.........S...vendor/just
47e0 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 inrainbow/json-schema/src/JsonSc
4800 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 hema/Constraints/ConstraintInter
4820 66 61 63 65 2e 70 68 70 24 01 00 00 74 6c 96 50 24 01 00 00 03 67 d6 ec b6 01 00 00 00 00 00 00 face.php$...tl.P$....g..........
4840 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 J...vendor/justinrainbow/json-sc
4860 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f hema/src/JsonSchema/Constraints/
4880 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 15 0a 00 00 74 6c 96 50 15 0a 00 00 3e 1d e3 18 b6 01 Constraint.php....tl.P....>.....
48a0 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a ......J...vendor/justinrainbow/j
48c0 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 son-schema/src/JsonSchema/Constr
48e0 61 69 6e 74 73 2f 43 6f 6c 6c 65 63 74 69 6f 6e 2e 70 68 70 56 08 00 00 74 6c 96 50 56 08 00 00 aints/Collection.phpV...tl.PV...
4900 dc 3c a7 b6 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 .<..........D...vendor/justinrai
4920 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f nbow/json-schema/src/JsonSchema/
4940 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 6e 75 6d 2e 70 68 70 86 01 00 00 74 6c 96 50 86 01 00 00 Constraints/Enum.php....tl.P....
4960 24 28 6d be b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 $(m.........F...vendor/justinrai
4980 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f nbow/json-schema/src/JsonSchema/
49a0 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 74 72 69 6e 67 2e 70 68 70 98 02 00 00 74 6c 96 50 98 02 Constraints/String.php....tl.P..
49c0 00 00 b4 f5 97 6b b6 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 .....k........=...vendor/justinr
49e0 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d ainbow/json-schema/src/JsonSchem
4a00 61 2f 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 5b 01 00 00 74 6c 96 50 5b 01 00 00 38 11 97 f6 b6 a/Validator.php[...tl.P[...8....
4a20 01 00 00 00 00 00 00 13 00 00 00 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 71 00 ...........vendor/autoload.phpq.
4a40 00 00 74 6c 96 50 71 00 00 00 5a db c7 e7 b6 01 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 ..tl.Pq...Z...........'...vendor
4a60 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 /composer/autoload_namespaces.ph
4a80 70 bf 01 00 00 74 6c 96 50 bf 01 00 00 88 f7 ea 93 b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e p....tl.P................%...ven
4aa0 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 dor/composer/autoload_classmap.p
4ac0 68 70 5a 00 00 00 74 6c 96 50 5a 00 00 00 eb a6 e1 96 b6 01 00 00 00 00 00 00 21 00 00 00 76 65 hpZ...tl.PZ...............!...ve
4ae0 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 62 ndor/composer/autoload_real.phpb
4b00 02 00 00 74 6c 96 50 62 02 00 00 91 e7 0b 6c b6 01 00 00 00 00 00 00 1f 00 00 00 76 65 6e 64 6f ...tl.Pb......l............vendo
4b20 72 2f 63 6f 6d 70 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 6c 09 00 00 74 6c r/composer/ClassLoader.phpl...tl
4b40 96 50 6c 09 00 00 48 4f 4f f4 b6 01 00 00 00 00 00 00 0c 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 .Pl...HOO.............bin/compos
4b60 65 72 7b 03 00 00 74 6c 96 50 7b 03 00 00 b4 34 5e 12 b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 er{...tl.P{....4^.............LI
4b80 43 45 4e 53 45 33 04 00 00 74 6c 96 50 33 04 00 00 0b 81 32 0b b6 01 00 00 00 00 00 00 3c 3f 70 CENSE3...tl.P3.....2.........<?p
4ba0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 49 66 hp............function.includeIf
4bc0 45 78 69 73 74 73 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 Exists($file).{.if.(file_exists(
4be0 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a $file)).{.return.include.$file;.
4c00 7d 0a 7d 0a 0a 69 66 20 28 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 }.}..if.((!$loader.=.includeIfEx
4c20 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 ists(__DIR__.'/../vendor/autoloa
4c40 64 2e 70 68 70 27 29 29 20 26 26 20 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 d.php')).&&.(!$loader.=.includeI
4c60 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 61 75 74 6f 6c fExists(__DIR__.'/../../../autol
4c80 6f 61 64 2e 70 68 70 27 29 29 29 20 7b 0a 65 63 68 6f 20 27 59 6f 75 20 6d 75 73 74 20 73 65 74 oad.php'))).{.echo.'You.must.set
4ca0 20 75 70 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 72 75 .up.the.project.dependencies,.ru
4cc0 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 27 2e 50 48 50 5f 45 n.the.following.commands:'.PHP_E
4ce0 4f 4c 2e 0a 27 63 75 72 6c 20 2d 73 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e OL..'curl.-s.http://getcomposer.
4d00 6f 72 67 2f 69 6e 73 74 61 6c 6c 65 72 20 7c 20 70 68 70 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 70 org/installer.|.php'.PHP_EOL..'p
4d20 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 45 4f hp.composer.phar.install'.PHP_EO
4d40 4c 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c L;.exit(1);.}..return.$loader;.<
4d60 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
4d80 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f er\IO;..use.Symfony\Component\Co
4da0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
4dc0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 Symfony\Component\Console\Output
4de0 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \OutputInterface;.use.Symfony\Co
4e00 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 mponent\Console\Helper\HelperSet
4e20 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 49 4f 20 69 6d 70 6c 65 6d 65 ;........class.ConsoleIO.impleme
4e40 6e 74 73 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 nts.IOInterface.{.protected.$inp
4e60 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 ut;.protected.$output;.protected
4e80 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 69 7a .$helperSet;.protected.$authoriz
4ea0 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 73 ations.=.array();.protected.$las
4ec0 74 4d 65 73 73 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tMessage;.........public.functio
4ee0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e n.__construct(InputInterface.$in
4f00 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 48 65 put,.OutputInterface.$output,.He
4f20 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 lperSet.$helperSet).{.$this->inp
4f40 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 ut.=.$input;.$this->output.=.$ou
4f60 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 tput;.$this->helperSet.=.$helper
4f80 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 Set;.}.....public.function.isInt
4fa0 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 eractive().{.return.$this->input
4fc0 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ->isInteractive();.}.....public.
4fe0 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.isDecorated().{.return.
5000 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a $this->output->isDecorated();.}.
5020 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a ....public.function.isVerbose().
5040 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f {.return.$this->output->getVerbo
5060 73 69 74 79 28 29 20 3d 3d 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 sity().===.OutputInterface::VERB
5080 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 OSITY_VERBOSE;.}.....public.func
50a0 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d tion.write($messages,.$newline.=
50c0 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d .true).{.$this->output->write($m
50e0 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d essages,.$newline);.$this->lastM
5100 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 essage.=.join($newline.?."\n".:.
5120 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 '',.(array).$messages);.}.....pu
5140 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 blic.function.overwrite($message
5160 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c s,.$newline.=.true,.$size.=.null
5180 29 0a 7b 0a 0a 20 24 6d 65 73 73 61 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 ).{...$messages.=.join($newline.
51a0 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b ?."\n".:.'',.(array).$messages);
51c0 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 ....if.(!isset($size)).{...$size
51e0 20 3d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 .=.strlen(strip_tags($this->last
5200 4d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f Message));.}...$this->write(str_
5220 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 29 3b 0a 0a repeat("\x08",.$size),.false);..
5240 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 29 ..$this->write($messages,.false)
5260 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f ;..$fill.=.$size.-.strlen(strip_
5280 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 tags($messages));.if.($fill.>.0)
52a0 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 .{...$this->write(str_repeat('.'
52c0 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 ,.$fill),.false);...$this->write
52e0 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 (str_repeat("\x08",.$fill),.fals
5300 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 e);.}..if.($newline).{.$this->wr
5320 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 ite('');.}.$this->lastMessage.=.
5340 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $messages;.}.....public.function
5360 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 .ask($question,.$default.=.null)
5380 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 .{.return.$this->helperSet->get(
53a0 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 'dialog')->ask($this->output,.$q
53c0 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 uestion,.$default);.}.....public
53e0 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 .function.askConfirmation($quest
5400 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion,.$default.=.true).{.return.$
5420 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e this->helperSet->get('dialog')->
5440 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 askConfirmation($this->output,.$
5460 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 question,.$default);.}.....publi
5480 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 c.function.askAndValidate($quest
54a0 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c ion,.$validator,.$attempts.=.fal
54c0 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 se,.$default.=.null).{.return.$t
54e0 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 his->helperSet->get('dialog')->a
5500 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 skAndValidate($this->output,.$qu
5520 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 estion,.$validator,.$attempts,.$
5540 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 default);.}.....public.function.
5560 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a 20 askAndHideAnswer($question).{...
5580 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e if.(defined('PHP_WINDOWS_VERSION
55a0 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 _BUILD')).{.$exe.=.__DIR__.'\\hi
55c0 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d ddeninput.exe';....if.('phar:'.=
55e0 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d ==.substr(__FILE__,.0,.5)).{.$tm
5600 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 pExe.=.sys_get_temp_dir().'/hidd
5620 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 eninput.exe';.copy($exe,.$tmpExe
5640 29 3b 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 );.$exe.=.$tmpExe;.}..$this->wri
5660 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 te($question,.false);.$value.=.r
5680 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 74 68 69 73 2d 3e 77 trim(shell_exec($exe));.$this->w
56a0 72 69 74 65 28 27 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 rite('');....if.(isset($tmpExe))
56c0 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 .{.unlink($tmpExe);.}..return.$v
56e0 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 alue;.}..if.(file_exists('/usr/b
5700 69 6e 2f 65 6e 76 27 29 29 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f in/env')).{...$test.=."/usr/bin/
5720 65 6e 76 20 25 73 20 2d 63 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c env.%s.-c.'echo.OK'.2>./dev/null
5740 22 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c ";.foreach.(array('bash',.'zsh',
5760 20 27 6b 73 68 27 2c 20 27 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b .'ksh',.'csh').as.$sh).{.if.('OK
5780 27 20 3d 3d 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 '.===.rtrim(shell_exec(sprintf($
57a0 74 65 73 74 2c 20 24 73 68 29 29 29 29 20 7b 0a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 test,.$sh)))).{.$shell.=.$sh;.br
57c0 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 73 68 65 6c 6c 29 29 20 7b 0a 24 74 eak;.}.}.if.(isset($shell)).{.$t
57e0 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 72 his->write($question,.false);.$r
5800 65 61 64 43 6d 64 20 3d 20 28 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 29 20 3f 20 27 73 eadCmd.=.($shell.===.'csh').?.'s
5820 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 6d et.mypassword.=.$<'.:.'read.-r.m
5840 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 ypassword';.$command.=.sprintf("
5860 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 /usr/bin/env.%s.-c.'stty.-echo;.
5880 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 %s;.stty.echo;.echo.\$mypassword
58a0 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 '",.$shell,.$readCmd);.$value.=.
58c0 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 74 68 rtrim(shell_exec($command));.$th
58e0 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d is->write('');..return.$value;.}
5900 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 71 75 65 73 74 69 6f .}....return.$this->ask($questio
5920 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 n);.}.....public.function.getAut
5940 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 horizations().{.return.$this->au
5960 74 68 6f 72 69 7a 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 thorizations;.}.....public.funct
5980 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 ion.hasAuthorization($repository
59a0 4e 61 6d 65 29 0a 7b 0a 24 61 75 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 6f Name).{.$auths.=.$this->getAutho
59c0 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 75 74 68 rizations();..return.isset($auth
59e0 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 s[$repositoryName]);.}.....publi
5a00 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 c.function.getAuthorization($rep
5a20 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 61 75 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 67 ositoryName).{.$auths.=.$this->g
5a40 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 etAuthorizations();..return.isse
5a60 74 28 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 20 3f 20 24 61 75 t($auths[$repositoryName]).?.$au
5a80 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 20 3a 20 61 72 72 61 79 28 27 75 73 ths[$repositoryName].:.array('us
5aa0 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e ername'.=>.null,.'password'.=>.n
5ac0 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 ull);.}.....public.function.setA
5ae0 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 uthorization($repositoryName,.$u
5b00 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 sername,.$password.=.null).{.$th
5b20 69 73 2d 3e 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 is->authorizations[$repositoryNa
5b40 6d 65 5d 20 3d 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e me].=.array('username'.=>.$usern
5b60 61 6d 65 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d ame,.'password'.=>.$password);.}
5b80 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
5ba0 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e mposer\IO;..use.Symfony\Componen
5bc0 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 75 t\Console\Output\StreamOutput;.u
5be0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
5c00 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ut\StringInput;.use.Symfony\Comp
5c20 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a onent\Console\Helper\HelperSet;.
5c40 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 49 4f 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 ......class.ArrayIO.extends.Cons
5c60 6f 6c 65 49 4f 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f oleIO.{.....public.function.__co
5c80 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 20 3d 20 27 27 2c 20 24 76 65 72 62 6f 73 69 74 79 20 nstruct($input.=.'',.$verbosity.
5ca0 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 =.null).{.$input.=.new.StringInp
5cc0 75 74 28 24 69 6e 70 75 74 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 ut($input);.$input->setInteracti
5ce0 76 65 28 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 ve(false);....$output.=.new.Stre
5d00 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 amOutput(fopen('php://memory',.'
5d20 72 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 3d 3d 20 6e 75 6c 6c 20 3f 20 53 74 72 65 rw'),.$verbosity.===.null.?.Stre
5d40 61 6d 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 amOutput::VERBOSITY_NORMAL.:.$ve
5d60 72 62 6f 73 69 74 79 2c 20 66 61 6c 73 65 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 rbosity,.false);..parent::__cons
5d80 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 6e 65 77 20 48 65 6c 70 65 truct($input,.$output,.new.Helpe
5da0 72 53 65 74 28 61 72 72 61 79 28 29 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rSet(array()));.}..public.functi
5dc0 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 6f 75 on.getOutput().{.fseek($this->ou
5de0 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 2c 20 30 29 3b 0a 72 65 74 75 72 6e 20 73 74 tput->getStream(),.0);.return.st
5e00 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d ream_get_contents($this->output-
5e20 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a >getStream());.}.}.<?php........
5e40 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a ....namespace.Composer\IO;......
5e60 0a 63 6c 61 73 73 20 4e 75 6c 6c 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 .class.NullIO.implements.IOInter
5e80 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 face.{....public.function.isInte
5ea0 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a ractive().{.return.false;.}.....
5ec0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 public.function.isVerbose().{.re
5ee0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f turn.false;.}.....public.functio
5f00 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a n.isDecorated().{.return.false;.
5f20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 }.....public.function.write($mes
5f40 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 7d 0a 0a 0a 0a 0a sages,.$newline.=.true).{.}.....
5f60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 public.function.overwrite($messa
5f80 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 ges,.$newline.=.true,.$size.=.80
5fa0 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 ).{.}.....public.function.ask($q
5fc0 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 uestion,.$default.=.null).{.retu
5fe0 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rn.$default;.}.....public.functi
6000 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 on.askConfirmation($question,.$d
6020 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 efault.=.true).{.return.$default
6040 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 ;.}.....public.function.askAndVa
6060 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 lidate($question,.$validator,.$a
6080 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c ttempts.=.false,.$default.=.null
60a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ).{.return.$default;.}.....publi
60c0 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 c.function.askAndHideAnswer($que
60e0 73 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c stion).{.return.null;.}.....publ
6100 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 0a ic.function.getAuthorizations().
6120 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 {.return.array();.}.....public.f
6140 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 unction.hasAuthorization($reposi
6160 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a toryName).{.return.false;.}.....
6180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e public.function.getAuthorization
61a0 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 ($repositoryName).{.return.array
61c0 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 ('username'.=>.null,.'password'.
61e0 3d 3e 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 =>.null);.}.....public.function.
6200 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 setAuthorization($repositoryName
6220 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b ,.$username,.$password.=.null).{
6240 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
6260 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 4f 49 Composer\IO;.......interface.IOI
6280 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 nterface.{......public.function.
62a0 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 isInteractive();.......public.fu
62c0 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 nction.isVerbose();.......public
62e0 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a .function.isDecorated();........
6300 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c public.function.write($messages,
6320 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .$newline.=.true);.........publi
6340 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 c.function.overwrite($messages,.
6360 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 3b 0a 0a 0a $newline.=.true,.$size.=.80);...
6380 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 .........public.function.ask($qu
63a0 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a estion,.$default.=.null);.......
63c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 .....public.function.askConfirma
63e0 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 tion($question,.$default.=.true)
6400 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ;..................public.functi
6420 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 on.askAndValidate($question,.$va
6440 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 lidator,.$attempts.=.false,.$def
6460 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ault.=.null);.........public.fun
6480 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e ction.askAndHideAnswer($question
64a0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 );.......public.function.getAuth
64c0 6f 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e orizations();.........public.fun
64e0 63 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f ction.hasAuthorization($reposito
6500 72 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ryName);.........public.function
6520 20 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d .getAuthorization($repositoryNam
6540 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 e);.........public.function.setA
6560 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 uthorization($repositoryName,.$u
6580 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 3b 0a 7d 0a 3c 3f sername,.$password.=.null);.}.<?
65a0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
65c0 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 r\Command;..use.Composer\Compose
65e0 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 r;.use.Composer\Console\Applicat
6600 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 ion;.use.Composer\IO\IOInterface
6620 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a 75 73 65 20 53 79 ;.use.Composer\IO\NullIO;.use.Sy
6640 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c mfony\Component\Console\Command\
6660 43 6f 6d 6d 61 6e 64 20 61 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 Command.as.BaseCommand;........a
6680 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 42 61 bstract.class.Command.extends.Ba
66a0 73 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 seCommand.{....private.$composer
66c0 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ;.....private.$io;......public.f
66e0 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 unction.getComposer($required.=.
6700 74 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 true).{.if.(null.===.$this->comp
6720 6f 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 oser).{.$application.=.$this->ge
6740 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e tApplication();.if.($application
6760 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 .instanceof.Application).{..$thi
6780 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 s->composer.=.$application->getC
67a0 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 omposer($required);.}.elseif.($r
67c0 65 71 75 69 72 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 equired).{.throw.new.\RuntimeExc
67e0 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 20 43 6f 6d 70 eption(.'Could.not.create.a.Comp
6800 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 6d 75 73 74 oser\Composer.instance,.you.must
6820 20 69 6e 6a 65 63 74 20 27 2e 0a 27 6f 6e 65 20 69 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 .inject.'..'one.if.this.command.
6840 69 73 20 6e 6f 74 20 75 73 65 64 20 77 69 74 68 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 is.not.used.with.a.Composer\Cons
6860 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 27 0a 29 3b 0a 7d 0a 7d ole\Application.instance'.);.}.}
6880 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->composer;.}.....
68a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 70 6f 73 65 72 28 43 6f 6d 70 public.function.setComposer(Comp
68c0 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 oser.$composer).{.$this->compose
68e0 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 r.=.$composer;.}.....public.func
6900 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 tion.getIO().{.if.(null.===.$thi
6920 73 2d 3e 69 6f 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 s->io).{.$application.=.$this->g
6940 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f etApplication();.if.($applicatio
6960 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 n.instanceof.Application).{..$th
6980 69 73 2d 3e 69 6f 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 49 4f 28 29 3b 0a is->io.=.$application->getIO();.
69a0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 }.else.{.$this->io.=.new.NullIO(
69c0 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a );.}.}..return.$this->io;.}.....
69e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 4f 28 49 4f 49 6e 74 65 72 66 61 63 public.function.setIO(IOInterfac
6a00 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 7d 0a 3c 3f e.$io).{.$this->io.=.$io;.}.}.<?
6a20 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
6a40 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b r\Command;..use.Composer\Config;
6a60 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f .use.Composer\Factory;.use.Compo
6a80 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 ser\Installer;.use.Composer\Inst
6aa0 61 6c 6c 65 72 5c 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 aller\ProjectInstaller;.use.Comp
6ac0 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 oser\IO\IOInterface;.use.Compose
6ae0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b r\Repository\ComposerRepository;
6b00 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 .use.Composer\Repository\Composi
6b20 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 teRepository;.use.Composer\Repos
6b40 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 itory\FilesystemRepository;.use.
6b60 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 4e 6f 74 69 66 69 61 62 6c 65 52 65 Composer\Repository\NotifiableRe
6b80 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c positoryInterface;.use.Composer\
6ba0 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 Repository\InstalledFilesystemRe
6bc0 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c pository;.use.Symfony\Component\
6be0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 Console\Input\InputArgument;.use
6c00 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
6c20 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
6c40 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e ponent\Console\Input\InputOption
6c60 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
6c80 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 Output\OutputInterface;.use.Symf
6ca0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 ony\Component\Finder\Finder;.use
6cc0 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d .Composer\Json\JsonFile;.use.Com
6ce0 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f poser\Util\Filesystem;.use.Compo
6d00 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 ser\Util\RemoteFilesystem;.use.C
6d20 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 omposer\Package\Version\VersionP
6d40 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 50 72 6f 6a 65 63 74 arser;.......class.CreateProject
6d60 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 Command.extends.Command.{.protec
6d80 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 ted.function.configure().{.$this
6da0 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 27 29 0a 2d 3e 73 .->setName('create-project').->s
6dc0 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 6e 65 77 20 70 72 6f 6a 65 63 etDescription('Create.new.projec
6de0 74 20 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 67 69 76 65 6e 20 64 69 72 65 t.from.a.package.into.given.dire
6e00 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a ctory.').->setDefinition(array(.
6e20 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 new.InputArgument('package',.Inp
6e40 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 6e utArgument::REQUIRED,.'Package.n
6e60 61 6d 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 ame.to.be.installed'),.new.Input
6e80 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 2c 20 49 6e 70 75 74 41 72 67 75 6d Argument('directory',.InputArgum
6ea0 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 ent::OPTIONAL,.'Directory.where.
6ec0 74 68 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 72 65 61 74 65 64 27 29 2c 0a 6e the.files.should.be.created'),.n
6ee0 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 ew.InputArgument('version',.Inpu
6f00 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 2c 20 77 tArgument::OPTIONAL,.'Version,.w
6f20 69 6c 6c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 61 74 65 73 74 27 29 2c 0a 6e 65 77 20 49 6e ill.defaults.to.latest'),.new.In
6f40 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c putOption('prefer-source',.null,
6f60 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 .InputOption::VALUE_NONE,.'Force
6f80 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 s.installation.from.package.sour
6fa0 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 ces.when.possible,.including.VCS
6fc0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e .information.'),.new.InputOption
6fe0 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f ('prefer-dist',.null,.InputOptio
7000 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 n::VALUE_NONE,.'Forces.installat
7020 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 ion.from.package.dist.even.for.d
7040 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ev.versions.'),.new.InputOption(
7060 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 'repository-url',.null,.InputOpt
7080 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 69 63 6b 20 61 20 64 69 66 ion::VALUE_REQUIRED,.'Pick.a.dif
70a0 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 74 6f 20 6c 6f 6f 6b 20 66 6f ferent.repository.url.to.look.fo
70c0 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f r.the.package.'),.new.InputOptio
70e0 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 n('dev',.null,.InputOption::VALU
7100 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 69 6e 73 74 61 6c 6c 20 64 65 70 65 E_NONE,.'Whether.to.install.depe
7120 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 27 29 2c 0a 6e 65 77 ndencies.for.development.'),.new
7140 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 .InputOption('no-custom-installe
7160 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f rs',.null,.InputOption::VALUE_NO
7180 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 61 62 6c 65 20 63 75 73 74 6f 6d 20 69 NE,.'Whether.to.disable.custom.i
71a0 6e 73 74 61 6c 6c 65 72 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e nstallers.'),.new.InputOption('n
71c0 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 o-scripts',.null,.InputOption::V
71e0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 65 ALUE_NONE,.'Whether.to.prevent.e
7200 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 64 65 66 69 6e 65 64 20 73 63 72 69 70 74 73 20 xecution.of.all.defined.scripts.
7220 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 in.the.root.package.'),.new.Inpu
7240 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f tOption('keep-vcs',.null,.InputO
7260 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 ption::VALUE_NONE,.'Whether.to.p
7280 72 65 76 65 6e 74 20 64 65 6c 65 74 69 6f 6e 20 76 63 73 20 66 6f 6c 64 65 72 2e 27 29 2c 0a 29 revent.deletion.vcs.folder.'),.)
72a0 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 63 72 65 ).->setHelp(<<<EOT.The.<info>cre
72c0 61 74 65 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 ate-project</info>.command.creat
72e0 65 73 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 67 69 76 65 6e 0a 70 61 es.a.new.project.from.a.given.pa
7300 63 6b 61 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 69 72 65 63 74 6f 72 79 2e 20 59 6f 75 20 ckage.into.a.new.directory..You.
7320 63 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 6f 6f 74 73 74 72 61 can.use.this.command.to.bootstra
7340 70 20 6e 65 77 0a 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 20 61 20 63 6c 65 61 6e 20 p.new.projects.or.setup.a.clean.
7360 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a version-controlled.installation.
7380 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e 0a for.developers.of.your.project..
73a0 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 72 65 61 74 65 2d .<info>php.composer.phar.create-
73c0 70 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 74 61 72 67 65 74 2d 64 69 project.vendor/project.target-di
73e0 72 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 73 65 74 rectory.[version]</info>..To.set
7400 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 6c 65 20 76 65 72 73 69 6f 6e 20 up.a.developer.workable.version.
7420 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 20 70 72 6f 6a 65 63 74 20 75 73 you.should.create.the.project.us
7440 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f 6c 6c 65 64 20 63 6f 64 65 20 62 ing.the.source.controlled.code.b
7460 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 70 72 65 66 65 72 2d y.appending.the.<info>'--prefer-
7480 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 20 41 6c 73 6f 2c 20 69 74 20 69 73 source'</info>.flag..Also,.it.is
74a0 0a 61 64 76 69 73 61 62 6c 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 61 6c 6c 20 64 65 70 65 6e 64 .advisable.to.install.all.depend
74c0 65 6e 63 69 65 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 encies.required.for.development.
74e0 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 0a 3c 69 6e 66 6f 3e 27 2d 2d 64 65 76 27 3c 2f by.appending.the.<info>'--dev'</
7500 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 61 20 70 61 63 6b 61 67 info>.flag...To.install.a.packag
7520 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 61 6e 20 74 e.from.another.repository.than.t
7540 68 65 20 64 65 66 61 75 6c 74 20 6f 6e 65 20 79 6f 75 0a 63 61 6e 20 70 61 73 73 20 74 68 65 20 he.default.one.you.can.pass.the.
7560 3c 69 6e 66 6f 3e 27 2d 2d 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d <info>'--repository-url=http://m
7580 79 72 65 70 6f 73 69 74 6f 72 79 2e 6f 72 67 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 yrepository.org'</info>.flag...E
75a0 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 OT.).;.}..protected.function.exe
75c0 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 cute(InputInterface.$input,.Outp
75e0 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 utInterface.$output).{.return.$t
7600 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 his->installProject(.$this->getI
7620 4f 28 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 O(),.$input->getArgument('packag
7640 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 e'),.$input->getArgument('direct
7660 6f 72 79 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 ory'),.$input->getArgument('vers
7680 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 ion'),.$input->getOption('prefer
76a0 2d 73 6f 75 72 63 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 -source'),.$input->getOption('pr
76c0 65 66 65 72 2d 64 69 73 74 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 efer-dist'),.$input->getOption('
76e0 64 65 76 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 dev'),.$input->getOption('reposi
7700 74 6f 72 79 2d 75 72 6c 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e tory-url'),.$input->getOption('n
7720 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 o-custom-installers'),.$input->g
7740 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e etOption('no-scripts'),.$input->
7760 67 65 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 27 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c getOption('keep-vcs').);.}..publ
7780 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 49 4f 49 6e 74 ic.function.installProject(IOInt
77a0 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 erface.$io,.$packageName,.$direc
77c0 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e tory.=.null,.$packageVersion.=.n
77e0 75 6c 6c 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 ull,.$preferSource.=.false,.$pre
7800 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b ferDist.=.false,.$installDevPack
7820 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e ages.=.false,.$repositoryUrl.=.n
7840 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 20 3d 20 ull,.$disableCustomInstallers.=.
7860 66 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 70 false,.$noScripts.=.false,.$keep
7880 56 63 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 Vcs.=.false).{.$config.=.Factory
78a0 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e ::createConfig();..$dm.=.$this->
78c0 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 createDownloadManager($io,.$conf
78e0 69 67 29 3b 0a 69 66 20 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 64 6d 2d 3e 73 ig);.if.($preferSource).{.$dm->s
7900 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c etPreferSource(true);.}..if.(nul
7920 6c 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 l.===.$repositoryUrl).{.$sourceR
7940 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 46 61 epo.=.new.CompositeRepository(Fa
7960 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 ctory::createDefaultRepositories
7980 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 6a 73 6f 6e ($io,.$config));.}.elseif.("json
79a0 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 50 ".===.pathinfo($repositoryUrl,.P
79c0 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 ATHINFO_EXTENSION)).{.$sourceRep
79e0 6f 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 o.=.new.FilesystemRepository(new
7a00 20 4a 73 6f 6e 46 69 6c 65 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 6e 65 77 20 52 65 .JsonFile($repositoryUrl,.new.Re
7a20 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 moteFilesystem($io)));.}.elseif.
7a40 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 27 68 (0.===.strpos($repositoryUrl,.'h
7a60 74 74 70 27 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f ttp')).{.$sourceRepo.=.new.Compo
7a80 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 72 65 serRepository(array('url'.=>.$re
7aa0 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 positoryUrl),.$io,.$config);.}.e
7ac0 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 lse.{.throw.new.\InvalidArgument
7ae0 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 Exception("Invalid.repository.ur
7b00 6c 20 67 69 76 65 6e 2e 20 48 61 73 20 74 6f 20 62 65 20 61 20 2e 6a 73 6f 6e 20 66 69 6c 65 20 l.given..Has.to.be.a..json.file.
7b20 6f 72 20 61 6e 20 68 74 74 70 20 75 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 63 61 6e 64 69 64 61 74 65 or.an.http.url.");.}..$candidate
7b40 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 s.=.array();.$name.=.strtolower(
7b60 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 56 65 72 73 $packageName);..if.($packageVers
7b80 69 6f 6e 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f 2d 3e 66 69 6c ion.===.null).{.$sourceRepo->fil
7ba0 74 65 72 50 61 63 6b 61 67 65 73 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 65 29 20 terPackages(function.($package).
7bc0 75 73 65 20 28 26 24 63 61 6e 64 69 64 61 74 65 73 2c 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 use.(&$candidates,.$name).{.if.(
7be0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b $package->getName().===.$name).{
7c00 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 29 3b .$candidates[].=.$package;.}.});
7c20 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 .}.else.{.$parser.=.new.VersionP
7c40 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 72 73 65 72 2d 3e 6e 6f 72 arser();.$version.=.$parser->nor
7c60 6d 61 6c 69 7a 65 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 3b 0a 24 73 6f 75 72 63 65 malize($packageVersion);.$source
7c80 52 65 70 6f 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 66 75 6e 63 74 69 6f 6e 20 28 24 Repo->filterPackages(function.($
7ca0 70 61 63 6b 61 67 65 29 20 75 73 65 20 28 26 24 63 61 6e 64 69 64 61 74 65 73 2c 20 24 6e 61 6d package).use.(&$candidates,.$nam
7cc0 65 2c 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 e,.$version).{.if.($package->get
7ce0 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d Name().===.$name.&&.$version.===
7d00 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 24 63 61 6e 64 .$package->getVersion()).{.$cand
7d20 69 64 61 74 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c idates[].=.$package;..return.fal
7d40 73 65 3b 0a 7d 0a 7d 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 29 20 7b se;.}.});.}..if.(!$candidates).{
7d60 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
7d80 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 24 70 61 tion("Could.not.find.package.$pa
7da0 63 6b 61 67 65 4e 61 6d 65 22 20 2e 20 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 ckageName"...($packageVersion.?.
7dc0 22 20 77 69 74 68 20 76 65 72 73 69 6f 6e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2e 22 ".with.version.$packageVersion."
7de0 20 3a 20 27 27 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 65 63 74 .:.''));.}..if.(null.===.$direct
7e00 6f 72 79 29 20 7b 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 70 61 ory).{.$parts.=.explode("/",.$pa
7e20 63 6b 61 67 65 4e 61 6d 65 2c 20 32 29 3b 0a 24 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 ckageName,.2);.$directory.=.getc
7e40 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 wd()...DIRECTORY_SEPARATOR...arr
7e60 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 ay_pop($parts);.}....$package.=.
7e80 24 63 61 6e 64 69 64 61 74 65 73 5b 30 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 $candidates[0];.foreach.($candid
7ea0 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f ates.as.$candidate).{.if.(versio
7ec0 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 n_compare($package->getVersion()
7ee0 2c 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 ,.$candidate->getVersion(),.'<')
7f00 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 75 ).{.$package.=.$candidate;.}.}.u
7f20 6e 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 29 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 nset($candidates);..$io->write('
7f40 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 <info>Installing.'...$package->g
7f60 65 74 4e 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a etName()...'.('...VersionParser:
7f80 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 66 61 6c 73 65 29 20 :formatVersion($package,.false).
7fa0 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 43 75 73 74 ..')</info>');..if.($disableCust
7fc0 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 omInstallers).{.$io->write('<inf
7fe0 6f 3e 43 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 20 68 61 76 65 20 62 65 65 6e 20 64 69 o>Custom.installers.have.been.di
8000 73 61 62 6c 65 64 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 sabled.</info>');.}..if.(0.===.s
8020 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e trpos($package->getPrettyVersion
8040 28 29 2c 20 27 64 65 76 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 (),.'dev-').&&.in_array($package
8060 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 ->getSourceType(),.array('git',.
8080 27 68 67 27 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 'hg'))).{.$package->setSourceRef
80a0 65 72 65 6e 63 65 28 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 erence(substr($package->getPrett
80c0 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 yVersion(),.4));.}..$dm->setPref
80e0 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 erSource($preferSource).->setPre
8100 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 3b 0a 24 70 72 6f 6a 65 63 74 49 6e ferDist($preferDist);.$projectIn
8120 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 28 24 staller.=.new.ProjectInstaller($
8140 64 69 72 65 63 74 6f 72 79 2c 20 24 64 6d 29 3b 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c directory,.$dm);.$projectInstall
8160 65 72 2d 3e 69 6e 73 74 61 6c 6c 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 er->install(new.InstalledFilesys
8180 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 70 68 70 3a temRepository(new.JsonFile('php:
81a0 2f 2f 6d 65 6d 6f 72 79 27 29 29 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 70 61 63 //memory')),.$package);.if.($pac
81c0 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 kage->getRepository().instanceof
81e0 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 29 20 .NotifiableRepositoryInterface).
8200 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 6e 6f 74 {.$package->getRepository()->not
8220 69 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 69 6e 73 74 61 6c 6c ifyInstall($package);.}.$install
8240 65 64 46 72 6f 6d 56 63 73 20 3d 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 edFromVcs.=.'source'.===.$packag
8260 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 24 69 6f e->getInstallationSource();..$io
8280 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 65 64 20 70 72 6f 6a 65 63 74 20 69 ->write('<info>Created.project.i
82a0 6e 20 27 20 2e 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 63 n.'...$directory...'</info>');.c
82c0 68 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 70 75 74 65 6e 76 28 27 43 4f 4d 50 4f hdir($directory);..putenv('COMPO
82e0 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 SER_ROOT_VERSION='.$package->get
8300 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 64 6d 2c 20 PrettyVersion());....unset($dm,.
8320 24 63 6f 6e 66 69 67 2c 20 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2c 20 24 73 6f 75 $config,.$projectInstaller,.$sou
8340 72 63 65 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 rceRepo,.$package);....$composer
8360 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 28 24 69 6f 29 3b 0a 24 69 6e 73 74 61 6c .=.Factory::create($io);.$instal
8380 6c 65 72 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f ler.=.Installer::create($io,.$co
83a0 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 65 74 50 72 65 66 65 72 53 mposer);..$installer->setPreferS
83c0 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 ource($preferSource).->setPrefer
83e0 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 Dist($preferDist).->setDevMode($
8400 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 installDevPackages).->setRunScri
8420 70 74 73 28 20 21 20 24 6e 6f 53 63 72 69 70 74 73 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c pts(.!.$noScripts);..if.($disabl
8440 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d eCustomInstallers).{.$installer-
8460 3e 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 29 3b 0a 7d 0a 0a 69 >disableCustomInstallers();.}..i
8480 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 72 75 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 f.(!$installer->run()).{.return.
84a0 31 3b 0a 7d 0a 0a 69 66 20 28 21 24 6b 65 65 70 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 1;.}..if.(!$keepVcs.&&.$installe
84c0 64 46 72 6f 6d 56 63 73 0a 26 26 20 28 0a 21 24 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 dFromVcs.&&.(.!$io->isInteractiv
84e0 65 28 29 0a 7c 7c 20 24 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e e().||.$io->askConfirmation('<in
8500 66 6f 3e 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 fo>Do.you.want.to.remove.the.exi
8520 73 74 69 6e 67 20 56 43 53 20 28 2e 67 69 74 2c 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 sting.VCS.(.git,..svn..).history
8540 3f 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e ?</info>.[<comment>Y,n</comment>
8560 5d 3f 20 27 2c 20 74 72 75 65 29 0a 29 0a 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 ]?.',.true).).).{.$finder.=.new.
8580 46 69 6e 64 65 72 28 29 3b 0a 24 66 69 6e 64 65 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 Finder();.$finder->depth(0)->dir
85a0 65 63 74 6f 72 69 65 73 28 29 2d 3e 69 6e 28 67 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 ectories()->in(getcwd())->ignore
85c0 56 43 53 28 66 61 6c 73 65 29 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 VCS(false)->ignoreDotFiles(false
85e0 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 );.foreach.(array('.svn',.'_svn'
8600 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 ,.'CVS',.'_darcs',.'.arch-params
8620 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 ',.'.monotone',.'.bzr',.'.git',.
8640 27 2e 68 67 27 29 20 61 73 20 24 76 63 73 4e 61 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e '.hg').as.$vcsName).{.$finder->n
8660 61 6d 65 28 24 76 63 73 4e 61 6d 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 66 73 20 3d 20 6e 65 ame($vcsName);.}..try.{.$fs.=.ne
8680 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 64 69 72 73 20 3d 20 69 74 65 72 61 74 6f 72 w.Filesystem();.$dirs.=.iterator
86a0 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 66 69 6e 64 65 _to_array($finder);.unset($finde
86c0 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 r);.foreach.($dirs.as.$dir).{.if
86e0 20 28 21 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 20 7b .(!$fs->removeDirectory($dir)).{
8700 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f .throw.new.\RuntimeException('Co
8720 75 6c 64 20 6e 6f 74 20 72 65 6d 6f 76 65 20 27 2e 24 64 69 72 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 uld.not.remove.'.$dir);.}.}.}.ca
8740 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 tch.(\Exception.$e).{.$io->write
8760 28 27 3c 65 72 72 6f 72 3e 41 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 20 77 68 69 6c 65 ('<error>An.error.occurred.while
8780 20 72 65 6d 6f 76 69 6e 67 20 74 68 65 20 56 43 53 20 6d 65 74 61 64 61 74 61 3a 20 27 2e 24 65 .removing.the.VCS.metadata:.'.$e
87a0 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a ->getMessage().'</error>');.}.}.
87c0 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .return.0;.}..protected.function
87e0 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 .createDownloadManager(IOInterfa
8800 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 66 61 63 74 6f ce.$io,.Config.$config).{.$facto
8820 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 ry.=.new.Factory();..return.$fac
8840 74 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c tory->createDownloadManager($io,
8860 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$config);.}.}.<?php............
8880 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 namespace.Composer\Command;..use
88a0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
88c0 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
88e0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 ponent\Console\Output\OutputInte
8900 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 20 65 78 rface;.....class.AboutCommand.ex
8920 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 tends.Command.{.protected.functi
8940 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 on.configure().{.$this.->setName
8960 28 27 61 62 6f 75 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 72 ('about').->setDescription('Shor
8980 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 6f 73 65 72 27 29 0a 2d t.information.about.Composer').-
89a0 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 >setHelp(<<<EOT.<info>php.compos
89c0 65 72 2e 70 68 61 72 20 61 62 6f 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a er.phar.about</info>.EOT.).;.}..
89e0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 protected.function.execute(Input
8a00 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
8a20 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c e.$output).{.$output->writeln(<<
8a40 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 43 6f 6d 70 6f 73 65 72 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 <EOT.<info>Composer.-.Package.Ma
8a60 6e 61 67 65 6d 65 6e 74 20 66 6f 72 20 50 48 50 3c 2f 69 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 nagement.for.PHP</info>.<comment
8a80 3e 43 6f 6d 70 6f 73 65 72 20 69 73 20 61 20 70 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 72 20 74 >Composer.is.a.package.manager.t
8aa0 72 61 63 6b 69 6e 67 20 6c 6f 63 61 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f racking.local.dependencies.of.yo
8ac0 75 72 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 68 ur.projects.and.libraries..See.h
8ae0 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 20 ttp://getcomposer.org/.for.more.
8b00 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 3b 0a 0a 7d information.</comment>.EOT.);..}
8b20 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
8b40 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f mposer\Command;..use.Composer\Co
8b60 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 mposer;.use.Composer\Factory;.us
8b80 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 e.Composer\Package\CompletePacka
8ba0 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 geInterface;.use.Composer\Packag
8bc0 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 79 6d e\Version\VersionParser;.use.Sym
8be0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
8c00 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 utInterface;.use.Symfony\Compone
8c20 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a nt\Console\Input\InputArgument;.
8c40 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
8c60 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d put\InputOption;.use.Symfony\Com
8c80 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 ponent\Console\Output\OutputInte
8ca0 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 rface;.use.Composer\Repository\A
8cc0 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 rrayRepository;.use.Composer\Rep
8ce0 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 ository\CompositeRepository;.use
8d00 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 .Composer\Repository\PlatformRep
8d20 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ository;.use.Composer\Repository
8d40 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \RepositoryInterface;......class
8d60 20 53 68 6f 77 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 .ShowCommand.extends.Command.{.p
8d80 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a rotected.function.configure().{.
8da0 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 68 6f 77 27 29 0a 2d 3e 73 65 74 44 65 73 $this.->setName('show').->setDes
8dc0 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 cription('Show.information.about
8de0 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 .packages').->setDefinition(arra
8e00 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 y(.new.InputArgument('package',.
8e20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 InputArgument::OPTIONAL,.'Packag
8e40 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e e.to.inspect'),.new.InputArgumen
8e60 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 t('version',.InputArgument::OPTI
8e80 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 ONAL,.'Version.to.inspect'),.new
8ea0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 .InputOption('installed',.'i',.I
8ec0 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e nputOption::VALUE_NONE,.'List.in
8ee0 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 stalled.packages.only'),.new.Inp
8f00 75 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 2c 20 27 70 27 2c 20 49 6e 70 75 74 4f utOption('platform',.'p',.InputO
8f20 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 ption::VALUE_NONE,.'List.platfor
8f40 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 m.packages.only'),.new.InputOpti
8f60 6f 6e 28 27 73 65 6c 66 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c on('self',.'s',.InputOption::VAL
8f80 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 20 UE_NONE,.'Show.the.root.package.
8fa0 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 information'),.new.InputOption('
8fc0 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e dev',.null,.InputOption::VALUE_N
8fe0 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 64 69 73 70 6c 61 79 20 6f 66 20 64 65 76 2d 72 65 71 ONE,.'Enables.display.of.dev-req
9000 75 69 72 65 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c uire.packages.'),.)).->setHelp(<
9020 3c 3c 45 4f 54 0a 54 68 65 20 73 68 6f 77 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 <<EOT.The.show.command.displays.
9040 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 70 61 63 detailed.information.about.a.pac
9060 6b 61 67 65 2c 20 6f 72 0a 6c 69 73 74 73 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 76 61 69 kage,.or.lists.all.packages.avai
9080 6c 61 62 6c 65 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e lable...EOT.).;.}..protected.fun
90a0 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e ction.execute(InputInterface.$in
90c0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
90e0 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 ..$platformRepo.=.new.PlatformRe
9100 70 6f 73 69 74 6f 72 79 3b 0a 24 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 66 75 6e pository;.$getRepositories.=.fun
9120 63 74 69 6f 6e 20 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 64 65 76 29 ction.(Composer.$composer,.$dev)
9140 20 7b 0a 24 6d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f .{.$manager.=.$composer->getRepo
9160 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f sitoryManager();.$repos.=.new.Co
9180 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6d 61 6e 61 67 65 72 mpositeRepository(array($manager
91a0 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 29 29 3b 0a 69 66 20 28 24 64 ->getLocalRepository()));.if.($d
91c0 65 76 29 20 7b 0a 24 72 65 70 6f 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 6e ev).{.$repos->addRepository($man
91e0 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 29 29 3b 0a ager->getLocalDevRepository());.
9200 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 3b 0a 7d 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 }..return.$repos;.};..if.($input
9220 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 ->getOption('self')).{.$package.
9240 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 2d 3e 67 65 74 =.$this->getComposer(false)->get
9260 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 Package();.$repos.=.$installedRe
9280 70 6f 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 po.=.new.ArrayRepository(array($
92a0 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 package));.}.elseif.($input->get
92c0 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 Option('platform')).{.$repos.=.$
92e0 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 7d installedRepo.=.$platformRepo;.}
9300 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 .elseif.($input->getOption('inst
9320 61 6c 6c 65 64 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 alled')).{.$repos.=.$installedRe
9340 70 6f 20 3d 20 24 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 po.=.$getRepositories($this->get
9360 43 6f 6d 70 6f 73 65 72 28 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 Composer(),.$input->getOption('d
9380 65 76 27 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 ev'));.}.elseif.($composer.=.$th
93a0 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c is->getComposer(false)).{.$local
93c0 52 65 70 6f 20 3d 20 24 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 63 6f 6d 70 6f 73 65 Repo.=.$getRepositories($compose
93e0 72 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 3b 0a 24 69 r,.$input->getOption('dev'));.$i
9400 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f nstalledRepo.=.new.CompositeRepo
9420 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f sitory(array($localRepo,.$platfo
9440 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 rmRepo));.$repos.=.new.Composite
9460 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e Repository(array_merge(array($in
9480 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f stalledRepo),.$composer->getRepo
94a0 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 sitoryManager()->getRepositories
94c0 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 ()));.}.else.{.$defaultRepos.=.F
94e0 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 actory::createDefaultRepositorie
9500 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 s($this->getIO());.$output->writ
9520 65 6c 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 eln('No.composer.json.found.in.t
9540 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 70 61 he.current.directory,.showing.pa
9560 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 ckages.from.'...implode(',.',.ar
9580 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e 73 74 ray_keys($defaultRepos)));.$inst
95a0 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 70 6f alledRepo.=.$platformRepo;.$repo
95c0 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 s.=.new.CompositeRepository(arra
95e0 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 y_merge(array($installedRepo),.$
9600 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d defaultRepos));.}....if.($input-
9620 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 74 >getArgument('package').||.!empt
9640 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 y($package)).{.$versions.=.array
9660 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 74 28 ();.if.(empty($package)).{.list(
9680 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 $package,.$versions).=.$this->ge
96a0 74 50 61 63 6b 61 67 65 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 2c tPackage($installedRepo,.$repos,
96c0 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c .$input->getArgument('package'),
96e0 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 29 .$input->getArgument('version'))
9700 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 ;..if.(!$package).{.throw.new.\I
9720 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 nvalidArgumentException('Package
9740 20 27 2e 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 .'.$input->getArgument('package'
9760 29 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 ).'.not.found');.}.}.else.{.$ver
9780 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 sions.=.array($package->getPrett
97a0 79 56 65 72 73 69 6f 6e 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 yVersion().=>.$package->getVersi
97c0 6f 6e 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e 70 75 on());.}..$this->printMeta($inpu
97e0 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c t,.$output,.$package,.$versions,
9800 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d .$installedRepo,.$repos);.$this-
9820 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 >printLinks($input,.$output,.$pa
9840 63 6b 61 67 65 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 ckage,.'requires');.$this->print
9860 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c Links($input,.$output,.$package,
9880 20 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 .'devRequires',.'requires.(dev)'
98a0 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 );.if.($package->getSuggests()).
98c0 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 67 67 {.$output->writeln("\n<info>sugg
98e0 65 73 74 73 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 ests</info>");.foreach.($package
9900 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 73 75 67 67 65 73 74 65 64 20 3d 3e ->getSuggests().as.$suggested.=>
9920 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 73 75 .$reason).{.$output->writeln($su
9940 67 67 65 73 74 65 64 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 72 65 61 73 6f 6e ggested...'.<comment>'...$reason
9960 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 69 ...'</comment>');.}.}.$this->pri
9980 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 ntLinks($input,.$output,.$packag
99a0 65 2c 20 27 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b e,.'provides');.$this->printLink
99c0 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 63 6f s($input,.$output,.$package,.'co
99e0 6e 66 6c 69 63 74 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e nflicts');.$this->printLinks($in
9a00 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 72 65 70 6c 61 63 65 put,.$output,.$package,.'replace
9a20 73 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 s');..return;.}....$packages.=.a
9a40 72 72 61 79 28 29 3b 0a 24 72 65 70 6f 73 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 66 rray();.$repos->filterPackages(f
9a60 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 65 29 20 75 73 65 20 28 26 24 70 61 63 6b 61 67 unction.($package).use.(&$packag
9a80 65 73 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 es,.$platformRepo,.$installedRep
9aa0 6f 29 20 7b 0a 69 66 20 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 o).{.if.($platformRepo->hasPacka
9ac0 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 70 ge($package)).{.$type.=.'<info>p
9ae0 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 latform</info>:';.}.elseif.($ins
9b00 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 talledRepo->hasPackage($package)
9b20 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e ).{.$type.=.'<info>installed</in
9b40 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e fo>:';.}.else.{.$type.=.'<commen
9b60 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 21 t>available</comment>:';.}.if.(!
9b80 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d isset($packages[$type][$package-
9ba0 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 >getName()]).||.version_compare(
9bc0 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 $packages[$type][$package->getNa
9be0 6d 65 28 29 5d 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 me()]->getVersion(),.$package->g
9c00 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b etVersion(),.'<').).{.$packages[
9c20 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 $type][$package->getName()].=.$p
9c40 61 63 6b 61 67 65 3b 0a 7d 0a 7d 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 ackage;.}.},.'Composer\Package\C
9c60 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 ompletePackage');..foreach.(arra
9c80 79 28 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 y('<info>platform</info>:'.=>.tr
9ca0 75 65 2c 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 ue,.'<comment>available</comment
9cc0 3e 3a 27 20 3d 3e 20 66 61 6c 73 65 2c 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f >:'.=>.false,.'<info>installed</
9ce0 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 73 68 info>:'.=>.true).as.$type.=>.$sh
9d00 6f 77 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 owVersion).{.if.(isset($packages
9d20 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 79 [$type])).{.$output->writeln($ty
9d40 70 65 29 3b 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 66 6f pe);.ksort($packages[$type]);.fo
9d60 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b reach.($packages[$type].as.$pack
9d80 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 20 20 27 2e 24 70 61 age).{.$output->writeln('..'.$pa
9da0 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 27 20 27 2e 28 24 73 68 ckage->getPrettyName()..'.'.($sh
9dc0 6f 77 56 65 72 73 69 6f 6e 20 3f 20 27 5b 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 owVersion.?.'['.$package->getPre
9de0 74 74 79 56 65 72 73 69 6f 6e 28 29 2e 27 5d 27 20 3a 20 27 27 29 2e 27 20 3c 63 6f 6d 6d 65 6e ttyVersion().']'.:.'').'.<commen
9e00 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 27 2e 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 t>:</comment>.'..strtok($package
9e20 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a ->getDescription(),."\r\n"));.}.
9e40 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a $output->writeln('');.}.}.}.....
9e60 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 .......protected.function.getPac
9e80 6b 61 67 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c kage(RepositoryInterface.$instal
9ea0 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 ledRepo,.RepositoryInterface.$re
9ec0 70 6f 73 2c 20 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 pos,.$name,.$version.=.null).{.$
9ee0 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 69 66 20 28 24 76 name.=.strtolower($name);.if.($v
9f00 65 72 73 69 6f 6e 29 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 ersion).{.$parser.=.new.VersionP
9f20 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 72 73 65 72 2d 3e 6e 6f 72 arser();.$version.=.$parser->nor
9f40 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 6d 61 74 63 68 20 3d 20 6e 75 malize($version);.}..$match.=.nu
9f60 6c 6c 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6f 73 2d 3e ll;.$matches.=.array();.$repos->
9f80 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 filterPackages(function.($packag
9fa0 65 29 20 75 73 65 20 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 26 24 6d 61 74 63 68 e).use.($name,.$version,.&$match
9fc0 65 73 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d es).{.if.($package->getName().==
9fe0 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 =.$name).{.$matches[].=.$package
a000 3b 0a 7d 0a 7d 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 ;.}.},.'Composer\Package\Complet
a020 65 50 61 63 6b 61 67 65 27 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 ePackage');..if.(null.===.$versi
a040 6f 6e 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 61 on).{...foreach.($matches.as.$pa
a060 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 ckage).{.if.($installedRepo->has
a080 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 24 70 Package($package)).{.$match.=.$p
a0a0 61 63 6b 61 67 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 6d 61 74 63 68 29 ackage;.break;.}.}..if.(!$match)
a0c0 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 61 63 6b 61 .{...foreach.($matches.as.$packa
a0e0 67 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 61 74 63 68 20 7c 7c 20 76 65 72 ge).{.if.(null.===.$match.||.ver
a100 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f sion_compare($package->getVersio
a120 6e 28 29 2c 20 24 6d 61 74 63 68 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3e 3d 27 29 n(),.$match->getVersion(),.'>=')
a140 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 ).{.$match.=.$package;.}.}.}.}.e
a160 6c 73 65 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 61 lse.{...foreach.($matches.as.$pa
a180 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f ckage).{.if.($package->getVersio
a1a0 6e 28 29 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 24 70 61 n().===.$version).{.$match.=.$pa
a1c0 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 ckage;.}.}.}....$versions.=.arra
a1e0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 61 63 6b 61 y();.foreach.($matches.as.$packa
a200 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 ge).{.$versions[$package->getPre
a220 74 74 79 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 ttyVersion()].=.$package->getVer
a240 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6d 61 74 63 68 2c 20 sion();.}..return.array($match,.
a260 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 $versions);.}.....protected.func
a280 74 69 6f 6e 20 70 72 69 6e 74 4d 65 74 61 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 tion.printMeta(InputInterface.$i
a2a0 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 nput,.OutputInterface.$output,.C
a2c0 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 ompletePackageInterface.$package
a2e0 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 ,.array.$versions,.RepositoryInt
a300 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 erface.$installedRepo,.Repositor
a320 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 yInterface.$repos).{.$output->wr
a340 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 iteln('<info>name</info>.....:.'
a360 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 3b 0a 24 ...$package->getPrettyName());.$
a380 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 64 65 73 63 72 69 70 2e 3c output->writeln('<info>descrip.<
a3a0 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 /info>.:.'...$package->getDescri
a3c0 70 74 69 6f 6e 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 ption());.$output->writeln('<inf
a3e0 6f 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 6a 6f 69 6e 28 27 2c 20 o>keywords</info>.:.'...join(',.
a400 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a 20 61 72 ',.$package->getKeywords().?:.ar
a420 72 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 24 69 ray()));.$this->printVersions($i
a440 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f nput,.$output,.$package,.$versio
a460 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 6f 75 ns,.$installedRepo,.$repos);.$ou
a480 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 74 79 70 65 3c 2f 69 6e 66 6f 3e tput->writeln('<info>type</info>
a4a0 20 20 20 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b .....:.'...$package->getType());
a4c0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6c 69 63 65 6e 73 65 .$output->writeln('<info>license
a4e0 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 </info>..:.'...implode(',.',.$pa
a500 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e ckage->getLicense()));.$output->
a520 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 73 6f 75 72 63 65 3c 2f 69 6e 66 6f 3e 20 20 20 3a writeln('<info>source</info>...:
a540 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f .'...sprintf('[%s].<comment>%s</
a560 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 comment>.%s',.$package->getSourc
a580 65 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 eType(),.$package->getSourceUrl(
a5a0 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 ),.$package->getSourceReference(
a5c0 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 64 69 73 )));.$output->writeln('<info>dis
a5e0 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d t</info>.....:.'...sprintf('[%s]
a600 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 61 63 .<comment>%s</comment>.%s',.$pac
a620 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 kage->getDistType(),.$package->g
a640 65 74 44 69 73 74 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 etDistUrl(),.$package->getDistRe
a660 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c ference()));.$output->writeln('<
a680 69 6e 66 6f 3e 6e 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f info>names</info>....:.'...implo
a6a0 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 3b de(',.',.$package->getNames()));
a6c0 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a ..if.($package->getSupport()).{.
a6e0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 70 70 6f 72 $output->writeln("\n<info>suppor
a700 74 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 t</info>");.foreach.($package->g
a720 65 74 53 75 70 70 6f 72 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 etSupport().as.$type.=>.$value).
a740 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e {.$output->writeln('<comment>'..
a760 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3a 20 27 2e 24 76 61 6c 75 65 29 .$type...'</comment>.:.'.$value)
a780 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 ;.}.}..if.($package->getAutoload
a7a0 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e ()).{.$output->writeln("\n<info>
a7c0 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 autoload</info>");.foreach.($pac
a7e0 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 kage->getAutoload().as.$type.=>.
a800 24 61 75 74 6f 6c 6f 61 64 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 $autoloads).{.$output->writeln('
a820 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e <comment>'...$type...'</comment>
a840 27 29 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 29 20 7b 0a 66 6f ');..if.($type.===.'psr-0').{.fo
a860 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 reach.($autoloads.as.$name.=>.$p
a880 61 74 68 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 28 24 6e 61 6d 65 20 3f ath).{.$output->writeln(($name.?
a8a0 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 29 :.'*')...'.=>.'...($path.?:.'.')
a8c0 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d );.}.}.elseif.($type.===.'classm
a8e0 61 70 27 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f 64 65 28 ap').{.$output->writeln(implode(
a900 27 2c 20 27 2c 20 24 61 75 74 6f 6c 6f 61 64 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 63 ',.',.$autoloads));.}.}.if.($pac
a920 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 20 7b 0a 24 6f 75 74 70 kage->getIncludePaths()).{.$outp
a940 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d 70 61 ut->writeln('<comment>include-pa
a960 74 68 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e th</comment>');.$output->writeln
a980 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c (implode(',.',.$package->getIncl
a9a0 75 64 65 50 61 74 68 73 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 udePaths()));.}.}.}.....protecte
a9c0 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 49 6e 70 75 74 49 6e d.function.printVersions(InputIn
a9e0 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
aa00 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 $output,.CompletePackageInterfac
aa20 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 e.$package,.array.$versions,.Rep
aa40 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c ositoryInterface.$installedRepo,
aa60 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 69 .RepositoryInterface.$repos).{.i
aa80 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 f.($input->getArgument('version'
aaa0 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 76 65 72 )).{.$output->writeln('<info>ver
aac0 73 69 6f 6e 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 sion</info>..:.'...$package->get
aae0 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 75 61 PrettyVersion());..return;.}..ua
ab00 73 6f 72 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 sort($versions,.'version_compare
ab20 27 29 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 ');.$versions.=.implode(',.',.ar
ab40 72 61 79 5f 6b 65 79 73 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 76 65 72 73 69 6f 6e 73 ray_keys(array_reverse($versions
ab60 29 29 29 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 )));....if.($installedRepo->hasP
ab80 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 ackage($package)).{.$versions.=.
aba0 73 74 72 5f 72 65 70 6c 61 63 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 str_replace($package->getPrettyV
abc0 65 72 73 69 6f 6e 28 29 2c 20 27 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d ersion(),.'<info>*.'...$package-
abe0 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 2c >getPrettyVersion()...'</info>',
ac00 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e .$versions);.}..$output->writeln
ac20 28 27 3c 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 76 ('<info>versions</info>.:.'...$v
ac40 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ersions);.}...........protected.
ac60 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 function.printLinks(InputInterfa
ac80 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 ce.$input,.OutputInterface.$outp
aca0 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 ut,.CompletePackageInterface.$pa
acc0 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 54 79 70 65 2c 20 24 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 ckage,.$linkType,.$title.=.null)
ace0 0a 7b 0a 24 74 69 74 6c 65 20 3d 20 24 74 69 74 6c 65 20 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b .{.$title.=.$title.?:.$linkType;
ad00 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 .if.($links.=.$package->{'get'.u
ad20 63 66 69 72 73 74 28 24 6c 69 6e 6b 54 79 70 65 29 7d 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d cfirst($linkType)}()).{.$output-
ad40 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e 20 22 >writeln("\n<info>"...$title..."
ad60 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 </info>");..foreach.($links.as.$
ad80 6c 69 6e 6b 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6c 69 6e 6b 2d 3e link).{.$output->writeln($link->
ada0 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6c 69 getTarget()...'.<comment>'...$li
adc0 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 63 nk->getPrettyConstraint()...'</c
ade0 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a omment>');.}.}.}.}.<?php........
ae00 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
ae20 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 53 79 6d .use.Composer\Installer;.use.Sym
ae40 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
ae60 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 utInterface;.use.Symfony\Compone
ae80 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 nt\Console\Input\InputOption;.us
aea0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
aec0 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d t\InputArgument;.use.Symfony\Com
aee0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 ponent\Console\Output\OutputInte
af00 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 rface;.....class.UpdateCommand.e
af20 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 xtends.Command.{.protected.funct
af40 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d ion.configure().{.$this.->setNam
af60 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 e('update').->setDescription('Up
af80 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 20 6c dates.your.dependencies.to.the.l
afa0 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 63 6f 6d 70 6f atest.version.according.to.compo
afc0 73 65 72 2e 6a 73 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 20 74 68 65 20 63 6f 6d 70 6f 73 ser.json,.and.updates.the.compos
afe0 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 er.lock.file.').->setDefinition(
b000 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 array(.new.InputArgument('packag
b020 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 es',.InputArgument::IS_ARRAY.|.I
b040 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 67 65 nputArgument::OPTIONAL,.'Package
b060 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 75 70 64 61 74 65 64 2c 20 69 66 20 6e 6f 74 s.that.should.be.updated,.if.not
b080 20 70 72 6f 76 69 64 65 64 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 2e 27 29 2c 0a 6e .provided.all.packages.are.'),.n
b0a0 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 ew.InputOption('prefer-source',.
b0c0 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 null,.InputOption::VALUE_NONE,.'
b0e0 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 Forces.installation.from.package
b100 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e .sources.when.possible,.includin
b120 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f g.VCS.information.'),.new.InputO
b140 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 ption('prefer-dist',.null,.Input
b160 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 Option::VALUE_NONE,.'Forces.inst
b180 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 allation.from.package.dist.even.
b1a0 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 for.dev.versions.'),.new.InputOp
b1c0 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f tion('dry-run',.null,.InputOptio
b1e0 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 n::VALUE_NONE,.'Outputs.the.oper
b200 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 ations.but.will.not.execute.anyt
b220 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f hing.(implicitly.enables.--verbo
b240 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e se).'),.new.InputOption('dev',.n
b260 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 ull,.InputOption::VALUE_NONE,.'E
b280 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 64 65 76 2d 72 65 71 75 69 nables.installation.of.dev-requi
b2a0 72 65 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 re.packages.'),.new.InputOption(
b2c0 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 'no-custom-installers',.null,.In
b2e0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 putOption::VALUE_NONE,.'Disables
b300 20 61 6c 6c 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2e 27 29 2c 0a 6e 65 77 20 49 .all.custom.installers.'),.new.I
b320 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 nputOption('no-scripts',.null,.I
b340 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 nputOption::VALUE_NONE,.'Skips.t
b360 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 he.execution.of.all.scripts.defi
b380 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 ned.in.composer.json.file.'),.ne
b3a0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 27 2c 20 49 6e w.InputOption('verbose',.'v',.In
b3c0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 73 20 6d 6f putOption::VALUE_NONE,.'Shows.mo
b3e0 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 6f 6d 6d 69 74 73 re.details.including.new.commits
b400 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 61 63 6b 61 67 65 .pulled.in.when.updating.package
b420 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d s.'),.new.InputOption('optimize-
b440 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 autoloader',.'o',.InputOption::V
b460 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 ALUE_NONE,.'Optimize.autoloader.
b480 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 27 29 0a 29 29 0a 2d 3e 73 65 during.autoloader.dump').)).->se
b4a0 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f 69 tHelp(<<<EOT.The.<info>update</i
b4c0 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e nfo>.command.reads.the.composer.
b4e0 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 json.file.from.the.current.direc
b500 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 2c tory,.processes.it,.and.updates,
b520 20 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 70 .removes.or.installs.all.the.dep
b540 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 endencies...<info>php.composer.p
b560 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 20 har.update</info>..To.limit.the.
b580 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 67 update.operation.to.a.few.packag
b5a0 65 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 0a es,.you.can.list.the.package(s).
b5c0 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 6e you.want.to.update.as.such:..<in
b5e0 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 fo>php.composer.phar.update.vend
b600 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d 3c or/package1.foo/mypackage.[...]<
b620 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 /info>.EOT.).;.}..protected.func
b640 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 tion.execute(InputInterface.$inp
b660 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 ut,.OutputInterface.$output).{.$
b680 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b composer.=.$this->getComposer();
b6a0 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 20 .$io.=.$this->getIO();.$install.
b6c0 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 =.Installer::create($io,.$compos
b6e0 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 er);..$install.->setDryRun($inpu
b700 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 t->getOption('dry-run')).->setVe
b720 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 rbose($input->getOption('verbose
b740 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 65 ')).->setPreferSource($input->ge
b760 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 50 tOption('prefer-source')).->setP
b780 72 65 66 65 72 44 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 referDist($input->getOption('pre
b7a0 66 65 72 2d 64 69 73 74 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 75 74 2d fer-dist')).->setDevMode($input-
b7c0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 >getOption('dev')).->setRunScrip
b7e0 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 ts(!$input->getOption('no-script
b800 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 69 6e s')).->setOptimizeAutoloader($in
b820 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 put->getOption('optimize-autoloa
b840 64 65 72 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 der')).->setUpdate(true).->setUp
b860 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e dateWhitelist($input->getArgumen
b880 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 t('packages')).;..if.($input->ge
b8a0 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 tOption('no-custom-installers'))
b8c0 20 7b 0a 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c .{.$install->disableCustomInstal
b8e0 6c 65 72 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 lers();.}..return.$install->run(
b900 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ).?.0.:.1;.}.}.<?php............
b920 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 namespace.Composer\Command;..use
b940 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
b960 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
b980 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 ponent\Console\Input\InputArgume
b9a0 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c nt;.use.Symfony\Component\Consol
b9c0 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 e\Input\InputOption;.use.Symfony
b9e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 \Component\Console\Output\Output
ba00 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a Interface;.use.Composer\Config;.
ba20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f use.Composer\Config\JsonConfigSo
ba40 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 urce;.use.Composer\Factory;.use.
ba60 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 Composer\Json\JsonFile;......cla
ba80 73 73 20 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 ss.ConfigCommand.extends.Command
baa0 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 46 69 6c 65 3b 0a 0a 0a 0a .{....protected.$configFile;....
bac0 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 0a 0a 0a 70 72 .protected.$configSource;.....pr
bae0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 otected.function.configure().{.$
bb00 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 6f 6e 66 69 67 27 29 0a 2d 3e 73 65 74 44 65 this.->setName('config').->setDe
bb20 73 63 72 69 70 74 69 6f 6e 28 27 53 65 74 20 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 73 27 29 0a scription('Set.config.options').
bb40 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 ->setDefinition(array(.new.Input
bb60 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 2c 20 27 67 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f Option('global',.'g',.InputOptio
bb80 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 70 70 6c 79 20 63 6f 6d 6d 61 6e 64 20 74 6f n::VALUE_NONE,.'Apply.command.to
bba0 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 20 66 69 6c 65 27 29 2c 0a 6e 65 77 20 49 .the.global.config.file'),.new.I
bbc0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 2c 20 27 65 27 2c 20 49 6e 70 75 74 4f nputOption('editor',.'e',.InputO
bbe0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e 20 65 64 69 74 6f 72 27 ption::VALUE_NONE,.'Open.editor'
bc00 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 2c 20 6e 75 6c 6c ),.new.InputOption('unset',.null
bc20 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 55 6e 73 65 ,.InputOption::VALUE_NONE,.'Unse
bc40 74 20 74 68 65 20 67 69 76 65 6e 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 0a 6e 65 77 20 49 t.the.given.setting-key'),.new.I
bc60 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 nputOption('list',.'l',.InputOpt
bc80 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 63 6f 6e 66 69 67 75 72 61 ion::VALUE_NONE,.'List.configura
bca0 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e tion.settings'),.new.InputOption
bcc0 28 27 66 69 6c 65 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ('file',.'f',.InputOption::VALUE
bce0 5f 52 45 51 55 49 52 45 44 2c 20 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 6f 6f 73 _REQUIRED,.'If.you.want.to.choos
bd00 65 20 61 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 63 e.a.different.composer.json.or.c
bd20 6f 6e 66 69 67 2e 6a 73 6f 6e 27 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 2c 0a 6e onfig.json',.'composer.json'),.n
bd40 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 2c 20 ew.InputArgument('setting-key',.
bd60 6e 75 6c 6c 2c 20 27 53 65 74 74 69 6e 67 20 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 null,.'Setting.key'),.new.InputA
bd80 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 2c 20 49 6e 70 75 74 41 72 rgument('setting-value',.InputAr
bda0 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 2c 20 27 53 65 74 74 69 6e 67 20 76 61 6c 75 65 gument::IS_ARRAY,.'Setting.value
bdc0 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 69 73 20 63 6f 6d '),.)).->setHelp(<<<EOT.This.com
bde0 6d 61 6e 64 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 65 64 69 74 20 73 6f 6d 65 20 62 61 73 mand.allows.you.to.edit.some.bas
be00 69 63 20 63 6f 6d 70 6f 73 65 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 65 69 74 68 65 72 20 74 ic.composer.settings.in.either.t
be20 68 65 0a 6c 6f 63 61 6c 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 74 he.local.composer.json.file.or.t
be40 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 54 6f 20 he.global.config.json.file...To.
be60 65 64 69 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 edit.the.global.config.json.file
be80 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 :......<comment>%command.full_na
bea0 6d 65 25 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 61 64 64 20 61 me%.--global</comment>..To.add.a
bec0 20 72 65 70 6f 73 69 74 6f 72 79 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d .repository:......<comment>%comm
bee0 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 and.full_name%.repositories.foo.
bf00 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 59 6f vcs.http://bar.com</comment>..Yo
bf20 75 20 63 61 6e 20 61 64 64 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 74 68 65 20 67 6c u.can.add.a.repository.to.the.gl
bf40 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 20 62 79 20 70 61 73 73 69 6e 67 obal.config.json.file.by.passing
bf60 20 69 6e 20 74 68 65 0a 3c 69 6e 66 6f 3e 2d 2d 67 6c 6f 62 61 6c 3c 2f 69 6e 66 6f 3e 20 6f 70 .in.the.<info>--global</info>.op
bf80 74 69 6f 6e 2e 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 66 69 6c 65 20 69 6e 20 61 6e 20 65 78 tion...To.edit.the.file.in.an.ex
bfa0 74 65 72 6e 61 6c 20 65 64 69 74 6f 72 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f ternal.editor:......<comment>%co
bfc0 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 3c 2f 63 6f 6d 6d 65 6e 74 mmand.full_name%.--edit</comment
bfe0 3e 0a 0a 54 6f 20 63 68 6f 6f 73 65 20 79 6f 75 72 20 65 64 69 74 6f 72 20 79 6f 75 20 63 61 6e >..To.choose.your.editor.you.can
c000 20 73 65 74 20 74 68 65 20 22 45 44 49 54 4f 52 22 20 65 6e 76 20 76 61 72 69 61 62 6c 65 2e 0a .set.the."EDITOR".env.variable..
c020 0a 54 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 .To.get.a.list.of.configuration.
c040 76 61 6c 75 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e values.in.the.file:......<commen
c060 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 6c 69 73 74 3c 2f 63 6f t>%command.full_name%.--list</co
c080 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 77 61 79 73 20 70 61 73 73 20 6d 6f 72 65 mment>..You.can.always.pass.more
c0a0 20 74 68 61 6e 20 6f 6e 65 20 6f 70 74 69 6f 6e 2e 20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c .than.one.option..As.an.example,
c0c0 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 65 64 69 74 20 74 68 65 0a 67 6c 6f 62 61 6c 20 .if.you.want.to.edit.the.global.
c0e0 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e config.json.file.......<comment>
c100 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 20 2d 2d 67 6c 6f %command.full_name%.--edit.--glo
c120 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 bal</comment>.EOT.).;.}.....prot
c140 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 ected.function.initialize(InputI
c160 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 nterface.$input,.OutputInterface
c180 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f .$output).{.if.($input->getOptio
c1a0 6e 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 21 n('global').&&.'composer.json'.!
c1c0 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 29 20 7b 0a ==.$input->getOption('file')).{.
c1e0 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 2d 2d 66 throw.new.\RuntimeException('--f
c200 69 6c 65 20 61 6e 64 20 2d 2d 67 6c 6f 62 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 63 6f 6d 62 ile.and.--global.can.not.be.comb
c220 69 6e 65 64 27 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 24 69 6e ined');.}......$configFile.=.$in
c240 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 0a 3f 20 28 46 61 63 74 put->getOption('global').?.(Fact
c260 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 ory::createConfig()->get('home')
c280 20 2e 20 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 0a 3a 20 24 69 6e 70 75 74 2d 3e 67 65 74 ...'/config.json').:.$input->get
c2a0 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 Option('file');..$this->configFi
c2c0 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a le.=.new.JsonFile($configFile);.
c2e0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f $this->configSource.=.new.JsonCo
c300 6e 66 69 67 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 0a nfigSource($this->configFile);..
c320 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 ..if.($input->getOption('global'
c340 29 20 26 26 20 21 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 ).&&.!$this->configFile->exists(
c360 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 )).{.touch($this->configFile->ge
c380 74 50 61 74 68 28 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 77 72 69 tPath());.$this->configFile->wri
c3a0 74 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f te(array('config'.=>.new.\ArrayO
c3c0 62 6a 65 63 74 29 29 3b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 bject));.chmod($this->configFile
c3e0 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 ->getPath(),.0600);.}..if.(!$thi
c400 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 s->configFile->exists()).{.throw
c420 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 63 6f 6d 70 6f .new.\RuntimeException('No.compo
c440 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 ser.json.found.in.the.current.di
c460 72 65 63 74 6f 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e rectory');.}.}.....protected.fun
c480 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e ction.execute(InputInterface.$in
c4a0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
c4c0 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 ..if.($input->getOption('editor'
c4e0 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 67 65 74 65 6e 76 28 27 45 44 49 54 4f 52 27 29 3b )).{.$editor.=.getenv('EDITOR');
c500 0a 69 66 20 28 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 .if.(!$editor).{.if.(defined('PH
c520 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 64 P_WINDOWS_VERSION_BUILD')).{.$ed
c540 69 74 6f 72 20 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 itor.=.'notepad';.}.else.{.forea
c560 63 68 20 28 61 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 2c 20 27 6e 61 6e 6f 27 2c 20 27 ch.(array('vim',.'vi',.'nano',.'
c580 70 69 63 6f 27 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 pico',.'ed').as.$candidate).{.if
c5a0 20 28 65 78 65 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 24 .(exec('which.'.$candidate)).{.$
c5c0 65 64 69 74 6f 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a editor.=.$candidate;.break;.}.}.
c5e0 7d 0a 7d 0a 0a 73 79 73 74 65 6d 28 24 65 64 69 74 6f 72 20 2e 20 27 20 27 20 2e 20 24 74 68 69 }.}..system($editor...'.'...$thi
c600 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 20 2e 20 28 64 65 66 69 s->configFile->getPath()...(defi
c620 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
c640 20 3f 20 27 27 3a 20 27 20 3e 20 60 74 74 79 60 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a .?.'':.'.>.`tty`'));..return.0;.
c660 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 }....if.($input->getOption('list
c680 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 ')).{.$this->listConfiguration($
c6a0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 2c 20 24 6f 75 74 70 75 this->configFile->read(),.$outpu
c6c0 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 67 t);..return.0;.}..if.(!$input->g
c6e0 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 29 20 7b 0a 72 65 74 etArgument('setting-key')).{.ret
c700 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 21 3d 3d 20 24 69 6e 70 urn.0;.}....if.(array().!==.$inp
c720 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 ut->getArgument('setting-value')
c740 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 .&&.$input->getOption('unset')).
c760 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
c780 6f 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 20 61 20 73 65 74 74 69 6e 67 20 76 61 6c ou.can.not.combine.a.setting.val
c7a0 75 65 20 77 69 74 68 20 2d 2d 75 6e 73 65 74 27 29 3b 0a 7d 0a 69 66 20 28 61 72 72 61 79 28 29 ue.with.--unset');.}.if.(array()
c7c0 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e .===.$input->getArgument('settin
c7e0 67 2d 76 61 6c 75 65 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 g-value').&&.!$input->getOption(
c800 27 75 6e 73 65 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 'unset')).{.throw.new.\RuntimeEx
c820 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 69 6e 63 6c 75 64 65 20 61 20 73 65 74 74 ception('You.must.include.a.sett
c840 69 6e 67 20 76 61 6c 75 65 20 6f 72 20 70 61 73 73 20 2d 2d 75 6e 73 65 74 20 74 6f 20 63 6c 65 ing.value.or.pass.--unset.to.cle
c860 61 72 20 74 68 65 20 76 61 6c 75 65 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 73 20 3d 20 24 69 6e ar.the.value');.}..$values.=.$in
c880 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 put->getArgument('setting-value'
c8a0 29 3b 20 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 65 70 6f 73 3f 28 );.....if.(preg_match('/^repos?(
c8c0 3f 3a 69 74 6f 72 69 65 73 29 3f 5c 2e 28 2e 2b 29 2f 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 ?:itories)?\.(.+)/',.$input->get
c8e0 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 20 24 6d 61 74 63 68 65 Argument('setting-key'),.$matche
c900 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 s)).{.if.($input->getOption('uns
c920 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 et')).{.return.$this->configSour
c940 63 65 2d 3e 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d ce->removeRepository($matches[1]
c960 29 3b 0a 7d 0a 0a 69 66 20 28 32 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 );.}..if.(2.!==.count($values)).
c980 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
c9a0 6f 75 20 6d 75 73 74 20 70 61 73 73 20 74 68 65 20 74 79 70 65 20 61 6e 64 20 61 20 75 72 6c 2e ou.must.pass.the.type.and.a.url.
c9c0 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 .Example:.php.composer.phar.conf
c9e0 69 67 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 ig.repositories.foo.vcs.http://b
ca00 61 72 2e 63 6f 6d 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 ar.com');.}..return.$this->confi
ca20 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b gSource->addRepository($matches[
ca40 31 5d 2c 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 1],.array(.'type'.=>.$values[0],
ca60 0a 27 75 72 6c 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 31 5d 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 24 .'url'.=>.$values[1],.));.}....$
ca80 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f uniqueConfigValues.=.array(.'pro
caa0 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 cess-timeout'.=>.array('is_numer
cac0 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e 20 ic',.'intval'),.'vendor-dir'.=>.
cae0 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 array('is_string',.function.($va
cb00 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 62 69 6e 2d 64 69 72 27 20 l).{.return.$val;.}),.'bin-dir'.
cb20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 =>.array('is_string',.function.(
cb40 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 6e 6f 74 69 66 79 $val).{.return.$val;.}),.'notify
cb60 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 -on-install'.=>.array(.function.
cb80 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 74 72 75 65 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f ($val).{.return.true;.},.functio
cba0 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 n.($val).{.return.$val.!==.'fals
cbc0 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 29 3b 0a 24 6d 75 6c 74 e'.&&.(bool).$val;.}.),.);.$mult
cbe0 69 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 2d 70 iConfigValues.=.array(.'github-p
cc00 72 6f 74 6f 63 6f 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 rotocols'.=>.array(.function.($v
cc20 61 6c 73 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 73 29 29 20 7b 0a 72 als).{.if.(!is_array($vals)).{.r
cc40 65 74 75 72 6e 20 27 61 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a 7d 0a 0a 66 6f 72 65 61 eturn.'array.expected';.}..forea
cc60 63 68 20 28 24 76 61 6c 73 20 61 73 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 ch.($vals.as.$val).{.if.(!in_arr
cc80 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 ay($val,.array('git',.'https',.'
cca0 68 74 74 70 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 76 61 6c 69 64 20 70 72 6f 74 6f 63 6f http'))).{.return.'valid.protoco
ccc0 6c 73 20 69 6e 63 6c 75 64 65 3a 20 67 69 74 2c 20 68 74 74 70 73 2c 20 68 74 74 70 27 3b 0a 7d ls.include:.git,.https,.http';.}
cce0 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 .}..return.true;.},.function.($v
cd00 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 0a 29 2c 0a 29 3b 0a 0a 24 73 als).{.return.$vals;.}.),.);..$s
cd20 65 74 74 69 6e 67 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 ettingKey.=.$input->getArgument(
cd40 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 71 75 65 'setting-key');.foreach.($unique
cd60 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 ConfigValues.as.$name.=>.$callba
cd80 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 cks).{.if.($settingKey.===.$name
cda0 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 ).{.if.($input->getOption('unset
cdc0 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 ')).{.return.$this->configSource
cde0 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 ->removeConfigSetting($settingKe
ce00 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 y);.}..list($validator,.$normali
ce20 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 zer).=.$callbacks;.if.(1.!==.cou
ce40 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d nt($values)).{.throw.new.\Runtim
ce60 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6f 6e 6c 79 20 70 61 73 73 20 6f 6e eException('You.can.only.pass.on
ce80 65 20 76 61 6c 75 65 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 e.value..Example:.php.composer.p
cea0 68 61 72 20 63 6f 6e 66 69 67 20 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 20 33 30 30 27 29 har.config.process-timeout.300')
cec0 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 ;.}..if.(true.!==.$validation.=.
cee0 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 29 20 7b 0a 74 68 72 6f 77 20 $validator($values[0])).{.throw.
cf00 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 new.\RuntimeException(sprintf(.'
cf20 22 25 73 22 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 "%s".is.an.invalid.value'.($vali
cf40 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 dation.?.'.('.$validation.')'.:.
cf60 27 27 29 2c 0a 24 76 61 6c 75 65 73 5b 30 5d 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ''),.$values[0].));.}..return.$t
cf80 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 his->configSource->addConfigSett
cfa0 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 ing($settingKey,.$normalizer($va
cfc0 6c 75 65 73 5b 30 5d 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 75 6c 74 69 43 lues[0]));.}.}..foreach.($multiC
cfe0 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 onfigValues.as.$name.=>.$callbac
d000 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 ks).{.if.($settingKey.===.$name)
d020 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 .{.if.($input->getOption('unset'
d040 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d )).{.return.$this->configSource-
d060 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 >removeConfigSetting($settingKey
d080 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a );.}..list($validator,.$normaliz
d0a0 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 er).=.$callbacks;.if.(true.!==.$
d0c0 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 29 validation.=.$validator($values)
d0e0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
d100 73 70 72 69 6e 74 66 28 0a 27 25 73 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 sprintf(.'%s.is.an.invalid.value
d120 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f '.($validation.?.'.('.$validatio
d140 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 73 n.')'.:.''),.json_encode($values
d160 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 ).));.}..return.$this->configSou
d180 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 rce->addConfigSetting($settingKe
d1a0 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d 0a 7d 0a 0a 74 y,.$normalizer($values));.}.}..t
d1c0 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
d1e0 6f 6e 28 27 53 65 74 74 69 6e 67 20 27 2e 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 64 6f 65 73 on('Setting.'.$settingKey.'.does
d200 20 6e 6f 74 20 65 78 69 73 74 20 6f 72 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 .not.exist.or.is.not.supported.b
d220 79 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 y.this.command');.}.........prot
d240 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e ected.function.listConfiguration
d260 28 61 72 72 61 79 20 24 63 6f 6e 74 65 6e 74 73 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 (array.$contents,.OutputInterfac
d280 65 20 24 6f 75 74 70 75 74 2c 20 24 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 e.$output,.$k.=.null).{.foreach.
d2a0 28 24 63 6f 6e 74 65 6e 74 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a ($contents.as.$key.=>.$value).{.
d2c0 69 66 20 28 24 6b 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 if.($k.===.null.&&.!in_array($ke
d2e0 79 2c 20 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 y,.array('config',.'repositories
d300 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 '))).{.continue;.}..if.(is_array
d320 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ($value)).{.$k..=.preg_replace('
d340 7b 5e 63 6f 6e 66 69 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e 20 27 2e 27 29 3b 0a 24 {^config\.}',.'',.$key...'.');.$
d360 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 76 61 6c 75 65 2c 20 this->listConfiguration($value,.
d380 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 0a 69 66 20 28 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 $output,.$k);..if.(substr_count(
d3a0 24 6b 2c 27 2e 27 29 20 3e 20 31 29 20 7b 0a 24 6b 20 3d 20 73 74 72 5f 73 70 6c 69 74 28 24 6b $k,'.').>.1).{.$k.=.str_split($k
d3c0 2c 73 74 72 72 70 6f 73 28 24 6b 2c 27 2e 27 2c 2d 32 29 29 3b 0a 24 6b 20 3d 20 24 6b 5b 30 5d ,strrpos($k,'.',-2));.$k.=.$k[0]
d3e0 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6b 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 63 ...'.';.}.else.{.$k.=.null;.}..c
d400 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 5b 3c ontinue;.}..$output->writeln('[<
d420 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 comment>'...$k...$key...'</comme
d440 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 3c 2f 69 6e 66 6f 3e nt>].<info>'...$value...'</info>
d460 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ');.}.}.}.<?php............names
d480 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 pace.Composer\Command;..use.Comp
d4a0 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 oser\Installer;.use.Symfony\Comp
d4c0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 onent\Console\Input\InputInterfa
d4e0 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c ce;.use.Symfony\Component\Consol
d500 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 e\Input\InputOption;.use.Symfony
d520 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 \Component\Console\Output\Output
d540 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f Interface;.......class.InstallCo
d560 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 mmand.extends.Command.{.protecte
d580 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d d.function.configure().{.$this.-
d5a0 3e 73 65 74 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 >setName('install').->setDescrip
d5c0 74 69 6f 6e 28 27 49 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e tion('Installs.the.project.depen
d5e0 64 65 6e 63 69 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 dencies.from.the.composer.lock.f
d600 69 6c 65 20 69 66 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 6f 6e ile.if.present,.or.falls.back.on
d620 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e .the.composer.json.').->setDefin
d640 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 ition(array(.new.InputOption('pr
d660 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a efer-source',.null,.InputOption:
d680 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f :VALUE_NONE,.'Forces.installatio
d6a0 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 n.from.package.sources.when.poss
d6c0 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e ible,.including.VCS.information.
d6e0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 '),.new.InputOption('prefer-dist
d700 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
d720 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b ,.'Forces.installation.from.pack
d740 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 age.dist.even.for.dev.versions.'
d760 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 ),.new.InputOption('dry-run',.nu
d780 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 ll,.InputOption::VALUE_NONE,.'Ou
d7a0 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f tputs.the.operations.but.will.no
d7c0 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 t.execute.anything.(implicitly.e
d7e0 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f nables.--verbose).'),.new.InputO
d800 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ption('dev',.null,.InputOption::
d820 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f VALUE_NONE,.'Enables.installatio
d840 6e 20 6f 66 20 64 65 76 2d 72 65 71 75 69 72 65 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 n.of.dev-require.packages.'),.ne
d860 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c w.InputOption('no-custom-install
d880 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e ers',.null,.InputOption::VALUE_N
d8a0 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c ONE,.'Disables.all.custom.instal
d8c0 6c 65 72 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 lers.'),.new.InputOption('no-scr
d8e0 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f ipts',.null,.InputOption::VALUE_
d900 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c NONE,.'Skips.the.execution.of.al
d920 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 l.scripts.defined.in.composer.js
d940 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 on.file.'),.new.InputOption('ver
d960 62 6f 73 65 27 2c 20 27 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e bose',.'v',.InputOption::VALUE_N
d980 4f 4e 45 2c 20 27 53 68 6f 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 ONE,.'Shows.more.details.includi
d9a0 6e 67 20 6e 65 77 20 63 6f 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 ng.new.commits.pulled.in.when.up
d9c0 64 61 74 69 6e 67 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 dating.packages.'),.new.InputOpt
d9e0 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 ion('optimize-autoloader',.'o',.
da00 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 InputOption::VALUE_NONE,.'Optimi
da20 7a 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 ze.autoloader.during.autoloader.
da40 64 75 6d 70 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c dump').)).->setHelp(<<<EOT.The.<
da60 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 info>install</info>.command.read
da80 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 66 72 6f 6d 0a 74 68 s.the.composer.lock.file.from.th
daa0 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 e.current.directory,.processes.i
dac0 74 2c 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 61 6c t,.and.downloads.and.installs.al
dae0 6c 20 74 68 65 0a 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 l.the.libraries.and.dependencies
db00 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 20 49 66 20 74 68 65 20 66 .outlined.in.that.file..If.the.f
db20 69 6c 65 20 64 6f 65 73 20 6e 6f 74 0a 65 78 69 73 74 20 69 74 20 77 69 6c 6c 20 6c 6f 6f 6b 20 ile.does.not.exist.it.will.look.
db40 66 6f 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 64 6f 20 74 68 65 20 73 61 6d for.composer.json.and.do.the.sam
db60 65 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 e...<info>php.composer.phar.inst
db80 61 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 all</info>..EOT.).;.}..protected
dba0 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
dbc0 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
dbe0 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 ).{.$composer.=.$this->getCompos
dc00 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 er();.$io.=.$this->getIO();.$ins
dc20 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 tall.=.Installer::create($io,.$c
dc40 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 omposer);..$install.->setDryRun(
dc60 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e $input->getOption('dry-run')).->
dc80 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 setVerbose($input->getOption('ve
dca0 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 rbose')).->setPreferSource($inpu
dcc0 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d t->getOption('prefer-source')).-
dce0 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e >setPreferDist($input->getOption
dd00 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 ('prefer-dist')).->setDevMode($i
dd20 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 52 75 6e nput->getOption('dev')).->setRun
dd40 53 63 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 Scripts(!$input->getOption('no-s
dd60 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 cripts')).->setOptimizeAutoloade
dd80 72 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 r($input->getOption('optimize-au
dda0 74 6f 6c 6f 61 64 65 72 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 toloader')).;..if.($input->getOp
ddc0 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a tion('no-custom-installers')).{.
dde0 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 $install->disableCustomInstaller
de00 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 20 3f s();.}..return.$install->run().?
de20 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .0.:.1;.}.}.<?php............nam
de40 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f espace.Composer\Command;..use.Co
de60 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 mposer\Util\ConfigValidator;.use
de80 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
dea0 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
dec0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 ponent\Console\Input\InputArgume
dee0 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c nt;.use.Symfony\Component\Consol
df00 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a e\Output\OutputInterface;.......
df20 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 .class.ValidateCommand.extends.C
df40 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 ommand.{....protected.function.c
df60 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 76 61 onfigure().{.$this.->setName('va
df80 6c 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c 69 64 lidate').->setDescription('Valid
dfa0 61 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 66 69 ates.a.composer.json').->setDefi
dfc0 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 nition(array(.new.InputArgument(
dfe0 27 66 69 6c 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 'file',.InputArgument::OPTIONAL,
e000 20 27 70 61 74 68 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 27 2c 20 27 .'path.to.composer.json.file',.'
e020 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c ./composer.json').)).->setHelp(<
e040 3c 3c 45 4f 54 0a 54 68 65 20 76 61 6c 69 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 76 61 6c 69 64 <<EOT.The.validate.command.valid
e060 61 74 65 73 20 61 20 67 69 76 65 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 0a 0a 45 4f 54 0a ates.a.given.composer.json..EOT.
e080 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 );.}........protected.function.e
e0a0 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 xecute(InputInterface.$input,.Ou
e0c0 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d tputInterface.$output).{.$file.=
e0e0 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 29 3b 0a 0a 69 .$input->getArgument('file');..i
e100 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 f.(!file_exists($file)).{.$outpu
e120 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 t->writeln('<error>'...$file...'
e140 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 .not.found.</error>');..return.1
e160 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 ;.}.if.(!is_readable($file)).{.$
e180 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c output->writeln('<error>'...$fil
e1a0 65 20 2e 20 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 e...'.is.not.readable.</error>')
e1c0 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 ;..return.1;.}..$validator.=.new
e1e0 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 .ConfigValidator($this->getIO())
e200 3b 0a 6c 69 73 74 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 ;.list($errors,.$publishErrors,.
e220 24 77 61 72 6e 69 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 $warnings).=.$validator->validat
e240 65 28 24 66 69 6c 65 29 3b 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 e($file);....if.(!$errors.&&.!$p
e260 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 21 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 6f ublishErrors.&&.!$warnings).{.$o
e280 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 utput->writeln('<info>'...$file.
e2a0 2e 20 27 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 ..'.is.valid</info>');.}.elseif.
e2c0 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 20 7b 0a (!$errors.&&.!$publishErrors).{.
e2e0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c $output->writeln('<info>'...$fil
e300 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 2c 20 62 75 74 20 77 69 74 68 20 61 20 66 65 77 20 77 e...'.is.valid,.but.with.a.few.w
e320 61 72 6e 69 6e 67 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 arnings</info>');.$output->write
e340 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f ln('<warning>See.http://getcompo
e360 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 ser.org/doc/04-schema.md.for.det
e380 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a ails.on.the.schema</warning>');.
e3a0 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 }.elseif.(!$errors).{.$output->w
e3c0 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 riteln('<info>'...$file...'.is.v
e3e0 61 6c 69 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 6f alid.for.simple.usage.with.compo
e400 73 65 72 20 62 75 74 20 68 61 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 ser.but.has</info>');.$output->w
e420 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 73 74 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 74 riteln('<info>strict.errors.that
e440 20 6d 61 6b 65 20 69 74 20 75 6e 61 62 6c 65 20 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 20 .make.it.unable.to.be.published.
e460 61 73 20 61 20 70 61 63 6b 61 67 65 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d as.a.package:</info>');.$output-
e480 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 >writeln('<warning>See.http://ge
e4a0 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 tcomposer.org/doc/04-schema.md.f
e4c0 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e or.details.on.the.schema</warnin
e4e0 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 g>');.}.else.{.$output->writeln(
e500 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 69 6e 76 61 6c 69 64 '<error>'...$file...'.is.invalid
e520 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 ,.the.following.errors/warnings.
e540 77 65 72 65 20 66 6f 75 6e 64 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 were.found:</error>');.}..$messa
e560 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 61 72 72 61 79 5f 6d 65 ges.=.array(.'error'.=>.array_me
e580 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 2c 0a 27 77 rge($errors,.$publishErrors),.'w
e5a0 61 72 6e 69 6e 67 27 20 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 arning'.=>.$warnings,.);..foreac
e5c0 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 h.($messages.as.$style.=>.$msgs)
e5e0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 .{.foreach.($msgs.as.$msg).{.$ou
e600 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 tput->writeln('<'...$style...'>'
e620 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b 0a ...$msg...'</'...$style...'>');.
e640 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 }.}..return.$errors.||.$publishE
e660 72 72 6f 72 73 20 3f 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a rrors.?.1.:.0;.}.}.<?php........
e680 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
e6a0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 53 79 6d 66 .use.Composer\Composer;.use.Symf
e6c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
e6e0 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
e700 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 t\Console\Input\InputArgument;.u
e720 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
e740 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ut\InputOption;.use.Symfony\Comp
e760 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
e780 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 face;......class.DependsCommand.
e7a0 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e extends.Command.{.protected.$lin
e7c0 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 27 72 65 kTypes.=.array(.'require'.=>.'re
e7e0 71 75 69 72 65 73 27 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 27 64 65 76 52 65 quires',.'require-dev'.=>.'devRe
e800 71 75 69 72 65 73 27 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 quires',.);..protected.function.
e820 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 configure().{.$this.->setName('d
e840 65 70 65 6e 64 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 73 epends').->setDescription('Shows
e860 20 77 68 69 63 68 20 70 61 63 6b 61 67 65 73 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 67 69 .which.packages.depend.on.the.gi
e880 76 65 6e 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 ven.package').->setDefinition(ar
e8a0 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 ray(.new.InputArgument('package'
e8c0 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b ,.InputArgument::REQUIRED,.'Pack
e8e0 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f age.to.inspect'),.new.InputOptio
e900 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a n('link-type',.'',.InputOption::
e920 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 VALUE_REQUIRED.|.InputOption::VA
e940 4c 55 45 5f 49 53 5f 41 52 52 41 59 2c 20 27 4c 69 6e 6b 20 74 79 70 65 73 20 74 6f 20 73 68 6f LUE_IS_ARRAY,.'Link.types.to.sho
e960 77 20 28 72 65 71 75 69 72 65 2c 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 2c 20 61 72 72 61 79 w.(require,.require-dev)',.array
e980 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 0a 29 29 0a 2d 3e 73 65 _keys($this->linkTypes)).)).->se
e9a0 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 44 69 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 tHelp(<<<EOT.Displays.detailed.i
e9c0 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 77 68 65 72 65 20 61 20 70 61 63 6b 61 67 65 nformation.about.where.a.package
e9e0 20 69 73 20 72 65 66 65 72 65 6e 63 65 64 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f .is.referenced...<info>php.compo
ea00 73 65 72 2e 70 68 61 72 20 64 65 70 65 6e 64 73 20 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 ser.phar.depends.composer/compos
ea20 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 er</info>..EOT.).;.}..protected.
ea40 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 function.execute(InputInterface.
ea60 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 $input,.OutputInterface.$output)
ea80 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 .{.$composer.=.$this->getCompose
eaa0 72 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f r();.$repos.=.$composer->getRepo
eac0 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 sitoryManager()->getRepositories
eae0 28 29 3b 0a 0a 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 ();..$linkTypes.=.$this->linkTyp
eb00 65 73 3b 0a 0a 24 6e 65 65 64 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 es;..$needle.=.$input->getArgume
eb20 6e 74 28 27 70 61 63 6b 61 67 65 27 29 3b 0a 24 76 65 72 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 29 nt('package');.$verbose.=.(bool)
eb40 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 3b 0a 24 .$input->getOption('verbose');.$
eb60 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 types.=.array_map(function.($typ
eb80 65 29 20 75 73 65 20 28 24 6c 69 6e 6b 54 79 70 65 73 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 e).use.($linkTypes).{.$type.=.rt
eba0 72 69 6d 28 24 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6c 69 6e rim($type,.'s');.if.(!isset($lin
ebc0 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 kTypes[$type])).{.throw.new.\Inv
ebe0 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 alidArgumentException('Unexpecte
ec00 64 20 6c 69 6e 6b 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 2e 27 2c 20 76 61 6c 69 64 20 74 79 d.link.type:.'.$type.',.valid.ty
ec20 70 65 73 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 pes:.'.implode(',.',.array_keys(
ec40 24 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 79 70 65 3b 0a $linkTypes)));.}..return.$type;.
ec60 7d 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 },.$input->getOption('link-type'
ec80 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b ));..foreach.($repos.as.$repo).{
eca0 0a 24 72 65 70 6f 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 66 75 6e 63 74 69 6f 6e 20 .$repo->filterPackages(function.
ecc0 28 24 70 61 63 6b 61 67 65 29 20 75 73 65 20 28 24 6e 65 65 64 6c 65 2c 20 24 74 79 70 65 73 2c ($package).use.($needle,.$types,
ece0 20 24 6c 69 6e 6b 54 79 70 65 73 2c 20 24 6f 75 74 70 75 74 2c 20 24 76 65 72 62 6f 73 65 29 20 .$linkTypes,.$output,.$verbose).
ed00 7b 0a 73 74 61 74 69 63 20 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 {.static.$outputPackages.=.array
ed20 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b ();..foreach.($types.as.$type).{
ed40 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6c 69 6e 6b .foreach.($package->{'get'.$link
ed60 54 79 70 65 73 5b 24 74 79 70 65 5d 7d 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 Types[$type]}().as.$link).{.if.(
ed80 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 $link->getTarget().===.$needle).
eda0 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 {.if.($verbose).{.$output->write
edc0 6c 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 ln($package->getPrettyName()...'
ede0 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 .'...$package->getPrettyVersion(
ee00 29 20 2e 20 27 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 69 6e 66 6f 3e )...'.<info>'...$type...'</info>
ee20 20 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 .'...$link->getPrettyConstraint(
ee40 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 73 65 74 28 24 6f 75 74 70 75 74 50 61 63 6b ));.}.elseif.(!isset($outputPack
ee60 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 6f ages[$package->getName()])).{.$o
ee80 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 utput->writeln($package->getPret
eea0 74 79 4e 61 6d 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b tyName());.$outputPackages[$pack
eec0 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a age->getName()].=.true;.}.}.}.}.
eee0 7d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 });.}.}.}.<?php............names
ef00 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 pace.Composer\Command;..use.Symf
ef20 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
ef40 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
ef60 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 t\Console\Input\InputArgument;.u
ef80 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
efa0 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ut\InputOption;.use.Symfony\Comp
efc0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
efe0 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f face;.use.Composer\Repository\Co
f000 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c mpositeRepository;.use.Composer\
f020 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 Repository\PlatformRepository;.u
f040 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b se.Composer\Package\CompletePack
f060 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ageInterface;.use.Composer\Packa
f080 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 ge\AliasPackage;.use.Composer\Fa
f0a0 63 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 20 65 ctory;.....class.SearchCommand.e
f0c0 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 xtends.Command.{.protected.$matc
f0e0 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 73 20 3d 20 61 72 72 hes;.protected.$lowMatches.=.arr
f100 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a 70 72 6f 74 65 63 74 ay();.protected.$tokens;.protect
f120 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e 6c 79 4e 61 6d 65 3b ed.$output;.protected.$onlyName;
f140 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 ..protected.function.configure()
f160 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 61 72 63 68 27 29 0a 2d 3e 73 .{.$this.->setName('search').->s
f180 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 20 70 61 63 6b 61 67 etDescription('Search.for.packag
f1a0 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 es').->setDefinition(array(.new.
f1c0 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 27 4e 27 2c 20 49 6e InputOption('only-name',.'N',.In
f1e0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 61 72 63 68 20 6f putOption::VALUE_NONE,.'Search.o
f200 6e 6c 79 20 69 6e 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 nly.in.name'),.new.InputArgument
f220 28 27 74 6f 6b 65 6e 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 ('tokens',.InputArgument::IS_ARR
f240 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 74 AY.|.InputArgument::REQUIRED,.'t
f260 6f 6b 65 6e 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 okens.to.search.for'),.)).->setH
f280 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d 61 6e 64 20 73 65 elp(<<<EOT.The.search.command.se
f2a0 61 72 63 68 65 73 20 66 6f 72 20 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 20 6e 61 6d 65 0a arches.for.packages.by.its.name.
f2c0 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 61 72 63 68 20 73 <info>php.composer.phar.search.s
f2e0 79 6d 66 6f 6e 79 20 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a ymfony.composer</info>..EOT.).;.
f300 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e }..protected.function.execute(In
f320 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 putInterface.$input,.OutputInter
f340 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 face.$output).{...$platformRepo.
f360 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 63 =.new.PlatformRepository;.if.($c
f380 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c omposer.=.$this->getComposer(fal
f3a0 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 se)).{.$localRepo.=.$composer->g
f3c0 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 etRepositoryManager()->getLocalR
f3e0 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 epository();.$installedRepo.=.ne
f400 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 6c 6f 63 w.CompositeRepository(array($loc
f420 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 65 70 6f 73 20 alRepo,.$platformRepo));.$repos.
f440 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f =.new.CompositeRepository(array_
f460 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 63 6f merge(array($installedRepo),.$co
f480 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e mposer->getRepositoryManager()->
f4a0 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 getRepositories()));.}.else.{.$d
f4c0 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 efaultRepos.=.Factory::createDef
f4e0 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 aultRepositories($this->getIO())
f500 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e ;.$output->writeln('No.composer.
f520 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 json.found.in.the.current.direct
f540 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 ory,.showing.packages.from.'...i
f560 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 mplode(',.',.array_keys($default
f580 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 Repos)));.$installedRepo.=.$plat
f5a0 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 formRepo;.$repos.=.new.Composite
f5c0 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e Repository(array_merge(array($in
f5e0 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d stalledRepo),.$defaultRepos));.}
f600 0a 0a 24 74 68 69 73 2d 3e 6f 6e 6c 79 4e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ..$this->onlyName.=.$input->getO
f620 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 29 3b 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e ption('only-name');.$this->token
f640 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 s.=.$input->getArgument('tokens'
f660 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 72 65 70 );.$this->output.=.$output;.$rep
f680 6f 73 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 os->filterPackages(array($this,.
f6a0 27 70 72 6f 63 65 73 73 50 61 63 6b 61 67 65 27 29 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 'processPackage'),.'Composer\Pac
f6c0 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 0a 66 6f 72 65 61 63 68 kage\CompletePackage');..foreach
f6e0 20 28 24 74 68 69 73 2d 3e 6c 6f 77 4d 61 74 63 68 65 73 20 61 73 20 24 64 65 74 61 69 6c 73 29 .($this->lowMatches.as.$details)
f700 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 65 74 61 69 6c 73 5b 27 6e 61 .{.$output->writeln($details['na
f720 6d 65 27 5d 20 2e 20 27 3c 63 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 27 2e 20 me']...'<comment>:</comment>.'..
f740 24 64 65 74 61 69 6c 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 $details['description']);.}.}..p
f760 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 50 61 63 6b 61 67 65 28 24 70 ublic.function.processPackage($p
f780 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f ackage).{.if.($package.instanceo
f7a0 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 7c 7c 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6d f.AliasPackage.||.isset($this->m
f7c0 61 74 63 68 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a atches[$package->getName()])).{.
f7e0 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e return;.}..foreach.($this->token
f800 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 24 73 63 6f 72 65 20 3d 20 24 74 68 s.as.$token).{.if.(!$score.=.$th
f820 69 73 2d 3e 6d 61 74 63 68 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 74 6f 6b 65 is->matchPackage($package,.$toke
f840 6e 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d n)).{.continue;.}..if.(false.!==
f860 20 28 24 70 6f 73 20 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 .($pos.=.stripos($package->getNa
f880 6d 65 28 29 2c 20 24 74 6f 6b 65 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 me(),.$token))).{.$name.=.substr
f8a0 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 30 2c 20 24 ($package->getPrettyName(),.0,.$
f8c0 70 6f 73 29 0a 2e 20 27 3c 68 69 67 68 6c 69 67 68 74 3e 27 20 2e 20 73 75 62 73 74 72 28 24 70 pos)...'<highlight>'...substr($p
f8e0 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 70 6f 73 2c 20 73 ackage->getPrettyName(),.$pos,.s
f900 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 20 2e 20 27 3c 2f 68 69 67 68 6c 69 67 68 74 3e 27 0a trlen($token))...'</highlight>'.
f920 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 ..substr($package->getPrettyName
f940 28 29 2c 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 3b 0a 7d 20 65 6c (),.$pos.+.strlen($token));.}.el
f960 73 65 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 se.{.$name.=.$package->getPretty
f980 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b Name();.}..$description.=.strtok
f9a0 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 ($package->getDescription(),."\r
f9c0 5c 6e 22 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 69 \n");.if.(false.!==.($pos.=.stri
f9e0 70 6f 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 74 6f 6b 65 6e 29 29 29 20 7b 0a 24 64 pos($description,.$token))).{.$d
fa00 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e escription.=.substr($description
fa20 2c 20 30 2c 20 24 70 6f 73 29 0a 2e 20 27 3c 68 69 67 68 6c 69 67 68 74 3e 27 20 2e 20 73 75 62 ,.0,.$pos)...'<highlight>'...sub
fa40 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 70 6f 73 2c 20 73 74 72 6c 65 6e 28 24 str($description,.$pos,.strlen($
fa60 74 6f 6b 65 6e 29 29 20 2e 20 27 3c 2f 68 69 67 68 6c 69 67 68 74 3e 27 0a 2e 20 73 75 62 73 74 token))...'</highlight>'...subst
fa80 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 r($description,.$pos.+.strlen($t
faa0 6f 6b 65 6e 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 73 63 6f 72 65 20 3e 3d 20 33 29 20 7b 0a 24 74 oken));.}..if.($score.>=.3).{.$t
fac0 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6e 61 6d 65 20 2e 20 27 3c 63 his->output->writeln($name...'<c
fae0 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 27 2e 20 24 64 65 73 63 72 69 70 74 69 omment>:</comment>.'..$descripti
fb00 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 on);.$this->matches[$package->ge
fb20 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d tName()].=.true;.}.else.{.$this-
fb40 3e 6c 6f 77 4d 61 74 63 68 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d >lowMatches[$package->getName()]
fb60 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 0a 27 64 65 73 63 .=.array(.'name'.=>.$name,.'desc
fb80 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 29 3b 0a 7d 0a 0a ription'.=>.$description,.);.}..
fba0 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 return;.}.}.........private.func
fbc0 74 69 6f 6e 20 6d 61 74 63 68 50 61 63 6b 61 67 65 28 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 tion.matchPackage(CompletePackag
fbe0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 6f 6b 65 6e 29 0a 7b 0a 24 eInterface.$package,.$token).{.$
fc00 73 63 6f 72 65 20 3d 20 30 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f score.=.0;..if.(false.!==.stripo
fc20 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 6f 6b 65 6e 29 29 20 s($package->getName(),.$token)).
fc40 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 35 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 6e {.$score.+=.5;.}..if.(!$this->on
fc60 6c 79 4e 61 6d 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 6a 6f 69 6e lyName.&&.false.!==.stripos(join
fc80 28 27 2c 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a (',',.$package->getKeywords().?:
fca0 20 61 72 72 61 79 28 29 29 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 .array()),.$token)).{.$score.+=.
fcc0 33 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 6e 6c 79 4e 61 6d 65 20 26 26 20 66 61 3;.}..if.(!$this->onlyName.&&.fa
fce0 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 lse.!==.stripos($package->getDes
fd00 63 72 69 70 74 69 6f 6e 28 29 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d cription(),.$token)).{.$score.+=
fd20 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 63 6f 72 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a .1;.}..return.$score;.}.}.<?php.
fd40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f ...........namespace.Composer\Co
fd60 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 mmand;..use.Composer\Composer;.u
fd80 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 se.Composer\Util\RemoteFilesyste
fda0 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 m;.use.Symfony\Component\Console
fdc0 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
fde0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 ny\Component\Console\Output\Outp
fe00 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 utInterface;.....class.SelfUpdat
fe20 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 eCommand.extends.Command.{.prote
fe40 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 cted.function.configure().{.$thi
fe60 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 s.->setName('self-update').->set
fe80 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 73 65 6c 66 75 70 64 61 74 65 27 29 29 0a 2d 3e 73 Aliases(array('selfupdate')).->s
fea0 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 63 6f 6d 70 6f 73 65 72 2e etDescription('Updates.composer.
fec0 70 68 61 72 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 27 29 0a 2d 3e phar.to.the.latest.version.').->
fee0 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 setHelp(<<<EOT.The.<info>self-up
ff00 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 67 65 74 63 6f date</info>.command.checks.getco
ff20 6d 70 6f 73 65 72 2e 6f 72 67 20 66 6f 72 20 6e 65 77 65 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 mposer.org.for.newer.versions.of
ff40 20 63 6f 6d 70 6f 73 65 72 20 61 6e 64 20 69 66 20 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 .composer.and.if.found,.installs
ff60 20 74 68 65 20 6c 61 74 65 73 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 .the.latest...<info>php.composer
ff80 2e 70 68 61 72 20 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a .phar.self-update</info>..EOT.).
ffa0 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 ;.}..protected.function.execute(
ffc0 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
ffe0 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 72 66 73 20 3d 20 6e 65 77 20 52 65 6d erface.$output).{.$rfs.=.new.Rem
10000 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 oteFilesystem($this->getIO());.$
10020 6c 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 latest.=.trim($rfs->getContents(
10040 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 27 68 74 74 70 3a 2f 2f 67 65 74 63 6f 'getcomposer.org',.'http://getco
10060 6d 70 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 mposer.org/version',.false));..i
10080 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 f.(Composer::VERSION.!==.$latest
100a0 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 22 55 70 ).{.$output->writeln(sprintf("Up
100c0 64 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f dating.to.version.<info>%s</info
100e0 3e 2e 22 2c 20 24 6c 61 74 65 73 74 29 29 3b 0a 0a 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 >.",.$latest));..$remoteFilename
10100 20 3d 20 27 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 70 6f .=.'http://getcomposer.org/compo
10120 73 65 72 2e 70 68 61 72 27 3b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 24 5f 53 45 ser.phar';.$localFilename.=.$_SE
10140 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 3b 0a 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 20 3d RVER['argv'][0];.$tempFilename.=
10160 20 62 61 73 65 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 27 2e 70 68 61 72 .basename($localFilename,.'.phar
10180 27 29 2e 27 2d 74 65 6d 70 2e 70 68 61 72 27 3b 0a 0a 24 72 66 73 2d 3e 63 6f 70 79 28 27 67 65 ').'-temp.phar';..$rfs->copy('ge
101a0 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 2c tcomposer.org',.$remoteFilename,
101c0 20 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 74 72 79 20 7b 0a 63 68 6d 6f 64 28 24 74 .$tempFilename);..try.{.chmod($t
101e0 65 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 0a empFilename,.0777.&.~umask());..
10200 20 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 .$phar.=.new.\Phar($tempFilename
10220 29 3b 0a 0a 20 75 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 72 65 6e 61 6d 65 28 24 74 65 6d 70 46 );...unset($phar);.rename($tempF
10240 69 6c 65 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 20 63 61 74 63 ilename,.$localFilename);.}.catc
10260 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 40 75 6e 6c 69 6e 6b 28 24 74 65 6d h.(\Exception.$e).{.@unlink($tem
10280 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c pFilename);.if.(!$e.instanceof.\
102a0 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 24 65 20 UnexpectedValueException.&&.!$e.
102c0 69 6e 73 74 61 6e 63 65 6f 66 20 5c 50 68 61 72 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 instanceof.\PharException).{.thr
102e0 6f 77 20 24 65 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f ow.$e;.}.$output->writeln('<erro
10300 72 3e 54 68 65 20 64 6f 77 6e 6c 6f 61 64 20 69 73 20 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 r>The.download.is.corrupted.('.$
10320 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 e->getMessage().').</error>');.$
10340 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 output->writeln('<error>Please.r
10360 65 2d 72 75 6e 20 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f e-run.the.self-update.command.to
10380 20 74 72 79 20 61 67 61 69 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 .try.again.</error>');.}.}.else.
103a0 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 {.$output->writeln("<info>You.ar
103c0 65 20 75 73 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 e.using.the.latest.composer.vers
103e0 69 6f 6e 2e 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ion.</info>");.}.}.}.<?php......
10400 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 ......namespace.Composer\Command
10420 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 ;..use.Symfony\Component\Console
10440 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
10460 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
10480 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Argument;.use.Symfony\Component\
104a0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 Console\Input\InputOption;.use.S
104c0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
104e0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 OutputInterface;.use.Composer\Fa
10500 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 ctory;.use.Composer\Installer;.u
10520 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 se.Composer\Json\JsonFile;.use.C
10540 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a omposer\Json\JsonManipulator;...
10560 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ...class.RequireCommand.extends.
10580 49 6e 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e InitCommand.{.protected.function
105a0 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
105c0 72 65 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 73 require').->setDescription('Adds
105e0 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f .required.packages.to.your.compo
10600 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e 73 ser.json.and.installs.them').->s
10620 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 etDefinition(array(.new.InputArg
10640 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a ument('packages',.InputArgument:
10660 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f :IS_ARRAY.|.InputArgument::OPTIO
10680 4e 41 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 20 77 69 74 68 20 61 20 76 65 NAL,.'Required.package.with.a.ve
106a0 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 rsion.constraint,.e.g..foo/bar:1
106c0 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 .0.0.or.foo/bar=1.0.0.or."foo/ba
106e0 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 r.1.0.0"'),.new.InputOption('dev
10700 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
10720 2c 20 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 65 ,.'Add.requirement.to.require-de
10740 76 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f v.'),.new.InputOption('prefer-so
10760 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f urce',.null,.InputOption::VALUE_
10780 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 NONE,.'Forces.installation.from.
107a0 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 package.sources.when.possible,.i
107c0 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 ncluding.VCS.information.'),.new
107e0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c .InputOption('prefer-dist',.null
10800 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 ,.InputOption::VALUE_NONE,.'Forc
10820 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 es.installation.from.package.dis
10840 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 t.even.for.dev.versions.'),.new.
10860 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 InputOption('no-update',.null,.I
10880 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 nputOption::VALUE_NONE,.'Disable
108a0 73 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 64 65 s.the.automatic.update.of.the.de
108c0 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 pendencies.'),.)).->setHelp(<<<E
108e0 4f 54 0a 54 68 65 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 20 61 64 64 73 20 72 65 71 75 OT.The.require.command.adds.requ
10900 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a ired.packages.to.your.composer.j
10920 73 6f 6e 20 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 0a 0a 49 66 20 79 6f 75 20 64 6f son.and.installs.them..If.you.do
10940 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 64 65 70 .not.want.to.install.the.new.dep
10960 65 6e 64 65 6e 63 69 65 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 6e 20 63 61 endencies.immediately.you.can.ca
10980 6c 6c 20 69 74 20 77 69 74 68 20 2d 2d 6e 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a 29 0a 3b 0a ll.it.with.--no-update..EOT.).;.
109a0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e }..protected.function.execute(In
109c0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 putInterface.$input,.OutputInter
109e0 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 face.$output).{.$factory.=.new.F
10a00 61 63 74 6f 72 79 3b 0a 24 66 69 6c 65 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 67 65 74 43 6f 6d actory;.$file.=.$factory->getCom
10a20 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 poserFile();..if.(!file_exists($
10a40 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f file)).{.$output->writeln('<erro
10a60 72 3e 27 2e 24 66 69 6c 65 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 r>'.$file.'.not.found.</error>')
10a80 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 ;..return.1;.}.if.(!is_readable(
10aa0 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 $file)).{.$output->writeln('<err
10ac0 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 or>'.$file.'.is.not.readable.</e
10ae0 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 64 69 61 6c 6f 67 20 3d rror>');..return.1;.}..$dialog.=
10b00 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 .$this->getHelperSet()->get('dia
10b20 6c 6f 67 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 log');..$json.=.new.JsonFile($fi
10b40 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a le);.$composer.=.$json->read();.
10b60 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e .$requirements.=.$this->determin
10b80 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 eRequirements($input,.$output,.$
10ba0 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 3b input->getArgument('packages'));
10bc0 0a 0a 24 72 65 71 75 69 72 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ..$requireKey.=.$input->getOptio
10be0 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3a 20 27 72 65 71 75 n('dev').?.'require-dev'.:.'requ
10c00 69 72 65 27 3b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f ire';.$baseRequirements.=.array_
10c20 6b 65 79 5f 65 78 69 73 74 73 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 63 6f 6d 70 6f 73 65 key_exists($requireKey,.$compose
10c40 72 29 20 3f 20 24 63 6f 6d 70 6f 73 65 72 5b 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3a 20 61 72 r).?.$composer[$requireKey].:.ar
10c60 72 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 66 6f ray();.$requirements.=.$this->fo
10c80 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b rmatRequirements($requirements);
10ca0 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 ..if.(!$this->updateFileCleanly(
10cc0 24 6a 73 6f 6e 2c 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 $json,.$baseRequirements,.$requi
10ce0 72 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 29 20 7b 0a 66 6f 72 65 61 63 68 rements,.$requireKey)).{.foreach
10d00 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 .($requirements.as.$package.=>.$
10d20 76 65 72 73 69 6f 6e 29 20 7b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 24 70 61 version).{.$baseRequirements[$pa
10d40 63 6b 61 67 65 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 5b ckage].=.$version;.}..$composer[
10d60 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3d 20 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 $requireKey].=.$baseRequirements
10d80 3b 0a 24 6a 73 6f 6e 2d 3e 77 72 69 74 65 28 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 7d 0a 0a 24 6f ;.$json->write($composer);.}..$o
10da0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 2e 24 66 69 6c 65 2e 27 20 utput->writeln('<info>'.$file.'.
10dc0 68 61 73 20 62 65 65 6e 20 75 70 64 61 74 65 64 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 has.been.updated</info>');..if.(
10de0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 29 29 20 $input->getOption('no-update')).
10e00 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 {.return.0;.}....$composer.=.$th
10e20 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e is->getComposer();.$io.=.$this->
10e40 67 65 74 49 4f 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 getIO();.$install.=.Installer::c
10e60 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c reate($io,.$composer);..$install
10e80 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 .->setVerbose($input->getOption(
10ea0 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 'verbose')).->setPreferSource($i
10ec0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 nput->getOption('prefer-source')
10ee0 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 ).->setPreferDist($input->getOpt
10f00 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 ion('prefer-dist')).->setDevMode
10f20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 0a 2d 3e 73 65 74 ($input->getOption('dev')).->set
10f40 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 Update(true).->setUpdateWhitelis
10f60 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 t($requirements);.;..return.$ins
10f80 74 61 6c 6c 2d 3e 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 tall->run().?.0.:.1;.}..private.
10fa0 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e function.updateFileCleanly($json
10fc0 2c 20 61 72 72 61 79 20 24 62 61 73 65 2c 20 61 72 72 61 79 20 24 6e 65 77 2c 20 24 72 65 71 75 ,.array.$base,.array.$new,.$requ
10fe0 69 72 65 4b 65 79 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 ireKey).{.$contents.=.file_get_c
11000 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 0a 24 6d 61 6e ontents($json->getPath());..$man
11020 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 ipulator.=.new.JsonManipulator($
11040 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 20 61 73 20 24 70 61 contents);..foreach.($new.as.$pa
11060 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 6d 61 ckage.=>.$constraint).{.if.(!$ma
11080 6e 69 70 75 6c 61 74 6f 72 2d 3e 61 64 64 4c 69 6e 6b 28 24 72 65 71 75 69 72 65 4b 65 79 2c 20 nipulator->addLink($requireKey,.
110a0 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e $package,.$constraint)).{.return
110c0 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 .false;.}.}..file_put_contents($
110e0 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 json->getPath(),.$manipulator->g
11100 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a etContents());..return.true;.}..
11120 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 protected.function.interact(Inpu
11140 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 tInterface.$input,.OutputInterfa
11160 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ce.$output).{.return;.}.}.<?php.
11180 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f ...........namespace.Composer\Co
111a0 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f mmand;..use.Symfony\Component\Co
111c0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
111e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
11200 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 InputOption;.use.Composer\Reposi
11220 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 53 79 tory\CompositeRepository;.use.Sy
11240 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f mfony\Component\Console\Output\O
11260 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 utputInterface;.use.Composer\Aut
11280 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 63 6c 61 oload\AutoloadGenerator;.....cla
112a0 73 73 20 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 ss.DumpAutoloadCommand.extends.C
112c0 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 ommand.{.protected.function.conf
112e0 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 75 6d 70 2d igure().{.$this.->setName('dump-
11300 61 75 74 6f 6c 6f 61 64 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 64 autoload').->setAliases(array('d
11320 75 6d 70 61 75 74 6f 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 umpautoload')).->setDescription(
11340 27 64 75 6d 70 73 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 27 29 0a 2d 3e 73 65 74 44 65 66 'dumps.the.autoloader').->setDef
11360 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 inition(array(.new.InputOption('
11380 6f 70 74 69 6d 69 7a 65 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c optimize',.'o',.InputOption::VAL
113a0 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 73 20 50 53 52 30 20 70 61 63 6b 61 67 65 UE_NONE,.'Optimizes.PSR0.package
113c0 73 20 74 6f 20 62 65 20 6c 6f 61 64 65 64 20 77 69 74 68 20 63 6c 61 73 73 6d 61 70 73 20 74 6f s.to.be.loaded.with.classmaps.to
113e0 6f 2c 20 67 6f 6f 64 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e 2e 27 29 2c 0a 29 29 0a 2d 3e o,.good.for.production.'),.)).->
11400 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 setHelp(<<<EOT.<info>php.compose
11420 72 2e 70 68 61 72 20 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a r.phar.dump-autoload</info>.EOT.
11440 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 ).;.}..protected.function.execut
11460 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 e(InputInterface.$input,.OutputI
11480 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 nterface.$output).{.$output->wri
114a0 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 teln('<info>Generating.autoload.
114c0 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 files</info>');..$composer.=.$th
114e0 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e is->getComposer();.$installation
11500 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 Manager.=.$composer->getInstalla
11520 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 73 20 3d 20 6e 65 77 tionManager();.$localRepos.=.new
11540 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e .CompositeRepository($composer->
11560 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c getRepositoryManager()->getLocal
11580 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d Repositories());.$package.=.$com
115a0 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 poser->getPackage();.$config.=.$
115c0 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 67 65 6e 65 72 61 74 composer->getConfig();..$generat
115e0 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 67 or.=.new.AutoloadGenerator();.$g
11600 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 enerator->dump($config,.$localRe
11620 70 6f 73 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 pos,.$package,.$installationMana
11640 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 ger,.'composer',.$input->getOpti
11660 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a on('optimize'));.}.}.<?php......
11680 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 ......namespace.Composer\Command
116a0 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Helper;..use.Symfony\Component\
116c0 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 61 73 20 42 Console\Helper\DialogHelper.as.B
116e0 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 aseDialogHelper;..class.DialogHe
11700 6c 70 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 0a 7b 0a lper.extends.BaseDialogHelper.{.
11720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 51 75 ...........public.function.getQu
11740 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c estion($question,.$default.=.nul
11760 6c 2c 20 24 73 65 70 20 3d 20 27 3a 27 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 l,.$sep.=.':').{.return.$default
11780 20 21 3d 3d 20 6e 75 6c 6c 20 3f 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 .!==.null.?.sprintf('<info>%s</i
117a0 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 25 73 20 27 nfo>.[<comment>%s</comment>]%s.'
117c0 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 73 65 70 29 20 3a 0a 73 ,.$question,.$default,.$sep).:.s
117e0 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 25 73 20 27 2c 20 24 71 75 printf('<info>%s</info>%s.',.$qu
11800 65 73 74 69 6f 6e 2c 20 24 73 65 70 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a estion,.$sep);.}.}.<?php........
11820 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
11840 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
11860 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nput\InputInterface;.use.Symfony
11880 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 \Component\Console\Input\InputOp
118a0 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tion;.use.Symfony\Component\Cons
118c0 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ole\Output\OutputInterface;.use.
118e0 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 56 63 73 44 6f 77 6e 6c 6f 61 64 65 Composer\Downloader\VcsDownloade
11900 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 r;......class.StatusCommand.exte
11920 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e nds.Command.{.protected.function
11940 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
11960 73 74 61 74 75 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 status').->setDescription('Show.
11980 61 20 6c 69 73 74 20 6f 66 20 6c 6f 63 61 6c 6c 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 a.list.of.locally.modified.packa
119a0 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 ges').->setDefinition(array(.new
119c0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 27 2c 20 49 6e 70 .InputOption('verbose',.'v',.Inp
119e0 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 6d 6f 64 69 utOption::VALUE_NONE,.'Show.modi
11a00 66 69 65 64 20 66 69 6c 65 73 20 66 6f 72 20 65 61 63 68 20 64 69 72 65 63 74 6f 72 79 20 74 68 fied.files.for.each.directory.th
11a20 61 74 20 63 6f 6e 74 61 69 6e 73 20 63 68 61 6e 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 at.contains.changes.'),.)).->set
11a40 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 64 Help(<<<EOT.The.status.command.d
11a60 69 73 70 6c 61 79 73 20 61 20 6c 69 73 74 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 isplays.a.list.of.dependencies.t
11a80 68 61 74 20 68 61 76 65 0a 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6c 6f 63 61 6c 6c 79 2e 0a hat.have.been.modified.locally..
11aa0 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 .EOT.).;.}..protected.function.e
11ac0 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 xecute(InputInterface.$input,.Ou
11ae0 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 63 6f 6d 70 tputInterface.$output).{...$comp
11b00 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 69 6e oser.=.$this->getComposer();.$in
11b20 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f stalledRepo.=.$composer->getRepo
11b40 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 sitoryManager()->getLocalReposit
11b60 6f 72 79 28 29 3b 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e ory();..$dm.=.$composer->getDown
11b80 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e loadManager();.$im.=.$composer->
11ba0 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 24 65 72 72 6f getInstallationManager();..$erro
11bc0 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 rs.=.array();....foreach.($insta
11be0 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b lledRepo->getPackages().as.$pack
11c00 61 67 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 64 6d 2d 3e 67 65 74 44 6f 77 age).{.$downloader.=.$dm->getDow
11c20 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b nloaderForInstalledPackage($pack
11c40 61 67 65 29 3b 0a 0a 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f age);..if.($downloader.instanceo
11c60 66 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 f.VcsDownloader).{.$targetDir.=.
11c80 24 69 6d 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a $im->getInstallPath($package);..
11ca0 69 66 20 28 24 63 68 61 6e 67 65 73 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 4c if.($changes.=.$downloader->getL
11cc0 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a 24 65 72 72 6f ocalChanges($targetDir)).{.$erro
11ce0 72 73 5b 24 74 61 72 67 65 74 44 69 72 5d 20 3d 20 24 63 68 61 6e 67 65 73 3b 0a 7d 0a 7d 0a 7d rs[$targetDir].=.$changes;.}.}.}
11d00 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 ....if.(!$errors).{.$output->wri
11d20 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4e 6f 20 6c 6f 63 61 6c 20 63 68 61 6e 67 65 73 3c 2f 69 6e teln('<info>No.local.changes</in
11d40 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e fo>');.}.else.{.$output->writeln
11d60 28 27 3c 65 72 72 6f 72 3e 59 6f 75 20 68 61 76 65 20 63 68 61 6e 67 65 73 20 69 6e 20 74 68 65 ('<error>You.have.changes.in.the
11d80 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3a 3c 2f 65 72 72 6f 72 3e .following.dependencies:</error>
11da0 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 70 61 74 68 ');.}..foreach.($errors.as.$path
11dc0 20 3d 3e 20 24 63 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f .=>.$changes).{.if.($input->getO
11de0 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 69 6e 64 65 6e 74 65 64 43 68 61 ption('verbose')).{.$indentedCha
11e00 6e 67 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 nges.=.implode("\n",.array_map(f
11e20 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 20 unction.($line).{.return.'....'.
11e40 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 63 68 61 6e 67 ..$line;.},.explode("\n",.$chang
11e60 65 73 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 es)));.$output->writeln('<info>'
11e80 2e 24 70 61 74 68 2e 27 3c 2f 69 6e 66 6f 3e 3a 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 .$path.'</info>:');.$output->wri
11ea0 74 65 6c 6e 28 24 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b teln($indentedChanges);.}.else.{
11ec0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 .$output->writeln($path);.}.}..i
11ee0 66 20 28 24 65 72 72 6f 72 73 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e f.($errors.&&.!$input->getOption
11f00 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 ('verbose')).{.$output->writeln(
11f20 27 55 73 65 20 2d 2d 76 65 72 62 6f 73 65 20 28 2d 76 29 20 74 6f 20 73 65 65 20 6d 6f 64 69 66 'Use.--verbose.(-v).to.see.modif
11f40 69 65 64 20 66 69 6c 65 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 6f 72 73 20 3f ied.files');.}..return.$errors.?
11f60 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .1.:.0;.}.}.<?php............nam
11f80 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f espace.Composer\Command;..use.Co
11fa0 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 mposer\Json\JsonFile;.use.Compos
11fc0 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 er\Factory;.use.Composer\Package
11fe0 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 \BasePackage;.use.Composer\Repos
12000 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 itory\CompositeRepository;.use.C
12020 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer\Repository\PlatformRepos
12040 69 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e itory;.use.Symfony\Component\Con
12060 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 sole\Input\InputInterface;.use.S
12080 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
120a0 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nputOption;.use.Symfony\Componen
120c0 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
120e0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c ;.use.Symfony\Component\Process\
12100 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 Process;.use.Symfony\Component\P
12120 72 6f 63 65 73 73 5c 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c rocess\ExecutableFinder;......cl
12140 61 73 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a ass.InitCommand.extends.Command.
12160 7b 0a 70 72 69 76 61 74 65 20 24 67 69 74 43 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 72 {.private.$gitConfig;.private.$r
12180 65 70 6f 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 68 epos;..public.function.parseAuth
121a0 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 orString($author).{.if.(preg_mat
121c0 63 68 28 27 2f 5e 28 3f 50 3c 6e 61 6d 65 3e 5b 2d 20 5c 2e 2c 5c 77 5c 27 e2 80 99 5d 2b 29 20 ch('/^(?P<name>[-.\.,\w\'...]+).
121e0 3c 28 3f 50 3c 65 6d 61 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 2c 20 24 61 75 74 68 6f 72 2c 20 24 <(?P<email>.+?)>$/u',.$author,.$
12200 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 match)).{.if.(!function_exists('
12220 66 69 6c 74 65 72 5f 76 61 72 27 29 20 7c 7c 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 filter_var').||.version_compare(
12240 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3c 27 29 20 7c 7c 20 24 6d PHP_VERSION,.'5.3.3',.'<').||.$m
12260 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 20 3d 3d 3d 20 66 69 6c 74 65 72 5f 76 61 72 28 24 6d 61 atch['email'].===.filter_var($ma
12280 74 63 68 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d tch['email'],.FILTER_VALIDATE_EM
122a0 41 49 4c 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 AIL)).{.return.array(.'name'.=>.
122c0 74 72 69 6d 28 24 6d 61 74 63 68 5b 27 6e 61 6d 65 27 5d 29 2c 0a 27 65 6d 61 69 6c 27 20 3d 3e trim($match['name']),.'email'.=>
122e0 20 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 0a 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e .$match['email'].);.}.}..throw.n
12300 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 49 ew.\InvalidArgumentException(.'I
12320 6e 76 61 6c 69 64 20 61 75 74 68 6f 72 20 73 74 72 69 6e 67 2e 20 20 4d 75 73 74 20 62 65 20 69 nvalid.author.string...Must.be.i
12340 6e 20 74 68 65 20 66 6f 72 6d 61 74 3a 20 27 2e 0a 27 4a 6f 68 6e 20 53 6d 69 74 68 20 3c 6a 6f n.the.format:.'..'John.Smith.<jo
12360 68 6e 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 27 0a 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 hn@example.com>'.);.}..protected
12380 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e .function.configure().{.$this.->
123a0 73 65 74 4e 61 6d 65 28 27 69 6e 69 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e setName('init').->setDescription
123c0 28 27 43 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 ('Creates.a.basic.composer.json.
123e0 66 69 6c 65 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 file.in.current.directory.').->s
12400 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 etDefinition(array(.new.InputOpt
12420 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 ion('name',.null,.InputOption::V
12440 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4e 61 6d 65 20 6f 66 20 74 68 65 20 70 61 63 6b ALUE_REQUIRED,.'Name.of.the.pack
12460 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 age'),.new.InputOption('descript
12480 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 ion',.null,.InputOption::VALUE_R
124a0 45 51 55 49 52 45 44 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 65 EQUIRED,.'Description.of.package
124c0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 6e 75 '),.new.InputOption('author',.nu
124e0 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c ll,.InputOption::VALUE_REQUIRED,
12500 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 0a 20 6e 65 .'Author.name.of.package'),...ne
12520 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 6e 75 6c 6c 2c 20 w.InputOption('homepage',.null,.
12540 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 48 6f InputOption::VALUE_REQUIRED,.'Ho
12560 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 mepage.of.package'),.new.InputOp
12580 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f tion('require',.null,.InputOptio
125a0 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a n::VALUE_IS_ARRAY.|.InputOption:
125c0 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 :VALUE_REQUIRED,.'Package.to.req
125e0 75 69 72 65 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 uire.with.a.version.constraint,.
12600 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e e.g..foo/bar:1.0.0.or.foo/bar=1.
12620 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 0.0.or."foo/bar.1.0.0"'),.new.In
12640 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 putOption('require-dev',.null,.I
12660 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 nputOption::VALUE_IS_ARRAY.|.Inp
12680 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 utOption::VALUE_REQUIRED,.'Packa
126a0 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 77 69 ge.to.require.for.development.wi
126c0 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f th.a.version.constraint,.e.g..fo
126e0 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 o/bar:1.0.0.or.foo/bar=1.0.0.or.
12700 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 "foo/bar.1.0.0"'),.new.InputOpti
12720 6f 6e 28 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 2c 20 6e 75 6c 6c 2c 20 49 6e on('minimum-stability',.null,.In
12740 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4d 69 6e 69 putOption::VALUE_REQUIRED,.'Mini
12760 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 28 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a 20 mum.stability.(empty.or.one.of:.
12780 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 '.implode(',.',.array_keys(BaseP
127a0 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 27 29 2c 0a 29 29 0a ackage::$stabilities)).')'),.)).
127c0 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c ->setHelp(<<<EOT.The.<info>init<
127e0 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 /info>.command.creates.a.basic.c
12800 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 omposer.json.file.in.the.current
12820 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e .directory...<info>php.composer.
12840 70 68 61 72 20 69 6e 69 74 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f phar.init</info>..EOT.).;.}..pro
12860 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 tected.function.execute(InputInt
12880 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 erface.$input,.OutputInterface.$
128a0 6f 75 74 70 75 74 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 output).{.$dialog.=.$this->getHe
128c0 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 69 74 lperSet()->get('dialog');..$whit
128e0 65 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 elist.=.array('name',.'descripti
12900 6f 6e 27 2c 20 27 61 75 74 68 6f 72 27 2c 20 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 71 75 on',.'author',.'homepage',.'requ
12920 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 27 6d 69 6e 69 6d 75 6d 2d 73 74 ire',.'require-dev',.'minimum-st
12940 61 62 69 6c 69 74 79 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c ability');..$options.=.array_fil
12960 74 65 72 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e ter(array_intersect_key($input->
12980 67 65 74 4f 70 74 69 6f 6e 73 28 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 74 65 6c getOptions(),.array_flip($whitel
129a0 69 73 74 29 29 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 ist)));..if.(isset($options['aut
129c0 68 6f 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 hor'])).{.$options['authors'].=.
129e0 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 $this->formatAuthors($options['a
12a00 75 74 68 6f 72 27 5d 29 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 uthor']);.unset($options['author
12a20 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 73 ']);.}..$options['require'].=.is
12a40 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 73 set($options['require']).?.$this
12a60 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 ->formatRequirements($options['r
12a80 65 71 75 69 72 65 27 5d 29 20 3a 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 61 equire']).:.new.\stdClass;.if.(a
12aa0 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 rray().===.$options['require']).
12ac0 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 {.$options['require'].=.new.\std
12ae0 43 6c 61 73 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 Class;.}..if.(isset($options['re
12b00 71 75 69 72 65 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 quire-dev'])).{.$options['requir
12b20 65 2d 64 65 76 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 e-dev'].=.$this->formatRequireme
12b40 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 3b 0a 69 nts($options['require-dev']).;.i
12b60 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 f.(array().===.$options['require
12b80 2d 64 65 76 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 -dev']).{.$options['require-dev'
12ba0 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 ].=.new.\stdClass;.}.}..$file.=.
12bc0 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a new.JsonFile('composer.json');..
12be0 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 2d 3e 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b $json.=.$file->encode($options);
12c00 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b ..if.($input->isInteractive()).{
12c20 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 6a 73 .$output->writeln(array(.'',.$js
12c40 6f 6e 2c 0a 27 27 0a 29 29 3b 0a 69 66 20 28 21 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 on,.''.));.if.(!$dialog->askConf
12c60 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 irmation($output,.$dialog->getQu
12c80 65 73 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 61 74 69 6f estion('Do.you.confirm.generatio
12ca0 6e 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 6f 75 74 70 75 n',.'yes',.'?'),.true)).{.$outpu
12cc0 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 6f 72 74 t->writeln('<error>Command.abort
12ce0 65 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 66 ed</error>');..return.1;.}.}..$f
12d00 69 6c 65 2d 3e 77 72 69 74 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 ile->write($options);..if.($inpu
12d20 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 69 67 6e 6f 72 65 46 69 6c t->isInteractive()).{.$ignoreFil
12d40 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 67 69 74 69 67 6e 6f 72 65 27 29 3b 0a 0a 69 66 20 e.=.realpath('.gitignore');..if.
12d60 28 66 61 6c 73 65 20 3d 3d 3d 20 24 69 67 6e 6f 72 65 46 69 6c 65 29 20 7b 0a 24 69 67 6e 6f 72 (false.===.$ignoreFile).{.$ignor
12d80 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 27 29 20 2e 20 27 2f 2e 67 69 74 69 67 eFile.=.realpath('.')...'/.gitig
12da0 6e 6f 72 65 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 56 65 6e 64 6f 72 49 nore';.}..if.(!$this->hasVendorI
12dc0 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 gnore($ignoreFile)).{.$question.
12de0 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 68 65 20 3c 69 6e 66 6f 3e 76 65 6e 64 =.'Would.you.like.the.<info>vend
12e00 6f 72 3c 2f 69 6e 66 6f 3e 20 64 69 72 65 63 74 6f 72 79 20 61 64 64 65 64 20 74 6f 20 79 6f 75 or</info>.directory.added.to.you
12e20 72 20 3c 69 6e 66 6f 3e 2e 67 69 74 69 67 6e 6f 72 65 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d r.<info>.gitignore</info>.[<comm
12e40 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 27 3b 0a 0a 69 66 20 28 24 64 69 61 6c ent>yes</comment>]?';..if.($dial
12e60 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 71 75 og->askConfirmation($output,.$qu
12e80 65 73 74 69 6f 6e 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 56 65 6e 64 6f estion,.true)).{.$this->addVendo
12ea0 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 rIgnore($ignoreFile);.}.}.}.}..p
12ec0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 rotected.function.interact(Input
12ee0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
12f00 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 67 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 e.$output).{.$git.=.$this->getGi
12f20 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 tConfig();..$dialog.=.$this->get
12f40 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 66 6f 72 HelperSet()->get('dialog');.$for
12f60 6d 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e matter.=.$this->getHelperSet()->
12f80 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 get('formatter');.$output->write
12fa0 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 ln(array(.'',.$formatter->format
12fc0 42 6c 6f 63 6b 28 27 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 63 Block('Welcome.to.the.Composer.c
12fe0 6f 6e 66 69 67 20 67 65 6e 65 72 61 74 6f 72 27 2c 20 27 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 onfig.generator',.'bg=blue;fg=wh
13000 69 74 65 27 2c 20 74 72 75 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e ite',.true),.''.));....$output->
13020 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 54 68 69 73 20 63 6f 6d 6d 61 6e 64 writeln(array(.'',.'This.command
13040 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 20 63 72 65 61 74 69 6e 67 .will.guide.you.through.creating
13060 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 63 6f 6e 66 69 67 2e 27 2c 0a 27 27 .your.composer.json.config.',.''
13080 2c 0a 29 29 3b 0a 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 22 2e 22 29 3b 0a 0a 69 66 ,.));..$cwd.=.realpath(".");..if
130a0 20 28 21 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 .(!$name.=.$input->getOption('na
130c0 6d 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a me')).{.$name.=.basename($cwd);.
130e0 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 if.(isset($git['github.user'])).
13100 7b 0a 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 {.$name.=.$git['github.user']...
13120 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f '/'...$name;.}.elseif.(!empty($_
13140 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 SERVER['USERNAME'])).{.$name.=.$
13160 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d _SERVER['USERNAME']...'/'...$nam
13180 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 e;.}.elseif.(get_current_user())
131a0 20 7b 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 .{.$name.=.get_current_user()...
131c0 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 '/'...$name;.}.else.{...$name.=.
131e0 24 6e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 $name...'/'...$name;.}.}..$name.
13200 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 =.$dialog->askAndValidate(.$outp
13220 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 ut,.$dialog->getQuestion('Packag
13240 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e 2f 3c 6e 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 e.name.(<vendor>/<name>)',.$name
13260 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 ),.function.($value).use.($name)
13280 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e .{.if.(null.===.$value).{.return
132a0 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 .$name;.}..if.(!preg_match('{^[a
132c0 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 69 27 2c 20 24 76 61 -z0-9_.-]+/[a-z0-9_.-]+$}i',.$va
132e0 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 lue)).{.throw.new.\InvalidArgume
13300 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 ntException(.'The.package.name.'
13320 2e 24 76 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 .$value.'.is.invalid,.it.should.
13340 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c have.a.vendor.name,.a.forward.sl
13360 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e ash,.and.a.package.name,.matchin
13380 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b g:.[a-z0-9_.-]+/[a-z0-9_.-]+'.);
133a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e .}..return.$value;.}.);.$input->
133c0 73 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 setOption('name',.$name);..$desc
133e0 72 69 70 74 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 ription.=.$input->getOption('des
13400 63 72 69 70 74 69 6f 6e 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f cription').?:.false;.$descriptio
13420 6e 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c n.=.$dialog->ask(.$output,.$dial
13440 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 og->getQuestion('Description',.$
13460 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f description).);.$input->setOptio
13480 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a n('description',.$description);.
134a0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 68 6f 72 20 3d 20 24 69 6e 70 75 74 2d 3e .if.(null.===.$author.=.$input->
134c0 67 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 getOption('author')).{.if.(isset
134e0 28 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 67 69 ($git['user.name']).&&.isset($gi
13500 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 24 61 75 74 68 6f 72 20 3d 20 73 70 t['user.email'])).{.$author.=.sp
13520 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 rintf('%s.<%s>',.$git['user.name
13540 27 5d 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 '],.$git['user.email']);.}.}..$s
13560 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 61 75 74 68 6f 72 20 3d 20 24 64 69 61 6c 6f 67 2d 3e elf.=.$this;.$author.=.$dialog->
13580 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 askAndValidate(.$output,.$dialog
135a0 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 41 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 ->getQuestion('Author',.$author)
135c0 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 ,.function.($value).use.($self,.
135e0 24 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 $author).{.if.(null.===.$value).
13600 7b 0a 72 65 74 75 72 6e 20 24 61 75 74 68 6f 72 3b 0a 7d 0a 0a 24 61 75 74 68 6f 72 20 3d 20 24 {.return.$author;.}..$author.=.$
13620 73 65 6c 66 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b self->parseAuthorString($value);
13640 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 61 75 74 ..return.sprintf('%s.<%s>',.$aut
13660 68 6f 72 5b 27 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a hor['name'],.$author['email']);.
13680 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c }.);.$input->setOption('author',
136a0 20 24 61 75 74 68 6f 72 29 3b 0a 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 .$author);..$minimumStability.=.
136c0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 $input->getOption('minimum-stabi
136e0 6c 69 74 79 27 29 20 3f 3a 20 27 27 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 lity').?:.'';.$minimumStability.
13700 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 =.$dialog->askAndValidate(.$outp
13720 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 4d 69 6e 69 6d 75 ut,.$dialog->getQuestion('Minimu
13740 6d 20 53 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 m.Stability',.$minimumStability)
13760 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 ,.function.($value).use.($self,.
13780 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d $minimumStability).{.if.(null.==
137a0 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 =.$value).{.return.$minimumStabi
137c0 6c 69 74 79 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a lity;.}..if.(!isset(BasePackage:
137e0 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 :$stabilities[$value])).{.throw.
13800 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 new.\InvalidArgumentException(.'
13820 49 6e 76 61 6c 69 64 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 22 27 2e 24 76 61 Invalid.minimum.stability."'.$va
13840 6c 75 65 2e 27 22 2e 20 4d 75 73 74 20 62 65 20 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a lue.'"..Must.be.empty.or.one.of:
13860 20 27 2e 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 .'..implode(',.',.array_keys(Bas
13880 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 0a 29 3b 0a 7d 0a 0a 72 ePackage::$stabilities)).);.}..r
138a0 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 eturn.$value;.}.);.$input->setOp
138c0 74 69 6f 6e 28 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d tion('minimum-stability',.$minim
138e0 75 6d 53 74 61 62 69 6c 69 74 79 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 umStability);..$output->writeln(
13900 61 72 72 61 79 28 0a 27 27 2c 0a 27 44 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e array(.'',.'Define.your.dependen
13920 63 69 65 73 2e 27 2c 0a 27 27 0a 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 cies.',.''.));..$requirements.=.
13940 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d array();.if.($dialog->askConfirm
13960 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 ation($output,.$dialog->getQuest
13980 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f ion('Would.you.like.to.define.yo
139a0 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 65 29 20 69 6e 74 65 72 61 ur.dependencies.(require).intera
139c0 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a ctively',.'yes',.'?'),.true)).{.
139e0 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 $requirements.=.$this->determine
13a00 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 Requirements($input,.$output,.$i
13a20 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 29 29 3b 0a 7d 0a 24 nput->getOption('require'));.}.$
13a40 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 24 72 65 71 input->setOption('require',.$req
13a60 75 69 72 65 6d 65 6e 74 73 29 3b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 uirements);.$devRequirements.=.a
13a80 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 rray();.if.($dialog->askConfirma
13aa0 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 tion($output,.$dialog->getQuesti
13ac0 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 on('Would.you.like.to.define.you
13ae0 72 20 64 65 76 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 69 72 65 2d 64 65 76 29 r.dev.dependencies.(require-dev)
13b00 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 .interactively',.'yes',.'?'),.tr
13b20 75 65 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d ue)).{.$devRequirements.=.$this-
13b40 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 >determineRequirements($input,.$
13b60 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 output,.$input->getOption('requi
13b80 72 65 2d 64 65 76 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 re-dev'));.}.$input->setOption('
13ba0 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b require-dev',.$devRequirements);
13bc0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 .}..protected.function.findPacka
13be0 67 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 ges($name).{.$packages.=.array()
13c00 3b 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 70 6f 73 29 20 7b 0a 24 74 68 69 73 2d ;....if.(!$this->repos).{.$this-
13c20 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 >repos.=.new.CompositeRepository
13c40 28 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d (array_merge(.array(new.Platform
13c60 52 65 70 6f 73 69 74 6f 72 79 29 2c 0a 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 Repository),.Factory::createDefa
13c80 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 0a ultRepositories($this->getIO()).
13ca0 29 29 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 ));.}..$token.=.strtolower($name
13cc0 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 );..$this->repos->filterPackages
13ce0 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 65 29 20 75 73 65 20 28 24 74 6f 6b 65 6e (function.($package).use.($token
13d00 2c 20 26 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 ,.&$packages).{.if.(false.!==.st
13d20 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 6f 6b 65 6e rpos($package->getName(),.$token
13d40 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d )).{.$packages[].=.$package;.}.}
13d60 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 );..return.$packages;.}..protect
13d80 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 ed.function.determineRequirement
13da0 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 s(InputInterface.$input,.OutputI
13dc0 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 nterface.$output,.$requires.=.ar
13de0 72 61 79 28 29 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c ray()).{.$dialog.=.$this->getHel
13e00 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 70 72 6f 6d 70 74 perSet()->get('dialog');.$prompt
13e20 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 53 65 61 72 63 68 20 .=.$dialog->getQuestion('Search.
13e40 66 6f 72 20 61 20 70 61 63 6b 61 67 65 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 3b 0a 0a 69 66 for.a.package',.false,.':');..if
13e60 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 .($requires).{.foreach.($require
13e80 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a 24 72 65 s.as.$key.=>.$requirement).{.$re
13ea0 71 75 69 72 65 73 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 quires[$key].=.$this->normalizeR
13ec0 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 3b 0a 69 66 20 28 66 61 equirement($requirement);.if.(fa
13ee0 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 2c 20 lse.===.strpos($requires[$key],.
13f00 27 20 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 '.').&&.$input->isInteractive())
13f20 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 .{.$question.=.$dialog->getQuest
13f40 69 6f 6e 28 27 50 6c 65 61 73 65 20 70 72 6f 76 69 64 65 20 61 20 76 65 72 73 69 6f 6e 20 63 6f ion('Please.provide.a.version.co
13f60 6e 73 74 72 61 69 6e 74 20 66 6f 72 20 74 68 65 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 2e nstraint.for.the.'.$requirement.
13f80 27 20 72 65 71 75 69 72 65 6d 65 6e 74 27 29 3b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 '.requirement');.if.($constraint
13fa0 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 .=.$dialog->ask($output,.$questi
13fc0 6f 6e 29 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 20 2e 3d 20 27 20 27 20 2e 20 on)).{.$requires[$key]..=.'.'...
13fe0 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 $constraint;.}.}.if.(false.===.s
14000 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 73 5b 24 6b 65 79 5d 2c 20 27 20 27 29 29 20 7b 0a 74 trpos($requires[$key],.'.')).{.t
14020 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
14040 6f 6e 28 27 54 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 27 2e 24 72 65 71 75 69 72 65 6d 65 on('The.requirement.'.$requireme
14060 6e 74 2e 27 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 nt.'.must.contain.a.version.cons
14080 74 72 61 69 6e 74 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b traint');.}.}..return.$requires;
140a0 0a 7d 0a 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 24 .}..while.(null.!==.$package.=.$
140c0 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 6d 70 74 29 29 20 7b dialog->ask($output,.$prompt)).{
140e0 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 .$matches.=.$this->findPackages(
14100 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 29 $package);..if.(count($matches))
14120 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 73 .{.$output->writeln(array(.'',.s
14140 70 72 69 6e 74 66 28 27 46 6f 75 6e 64 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 printf('Found.<info>%s</info>.pa
14160 63 6b 61 67 65 73 20 6d 61 74 63 68 69 6e 67 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 ckages.matching.<info>%s</info>'
14180 2c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 2c 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 ,.count($matches),.$package),.''
141a0 0a 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 6f 73 69 .));..foreach.($matches.as.$posi
141c0 74 69 6f 6e 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 tion.=>.$package).{.$output->wri
141e0 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 35 73 3c 2f 69 6e 66 6f 3e 20 teln(sprintf('.<info>%5s</info>.
14200 25 73 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 22 5b 24 70 6f %s.<comment>%s</comment>',."[$po
14220 73 69 74 69 6f 6e 5d 22 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d sition]",.$package->getPrettyNam
14240 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 e(),.$package->getPrettyVersion(
14260 29 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 24 )));.}..$output->writeln('');..$
14280 76 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 65 6c 65 63 74 69 6f 6e validator.=.function.($selection
142a0 29 20 75 73 65 20 28 24 6d 61 74 63 68 65 73 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 73 ).use.($matches).{.if.(''.===.$s
142c0 65 6c 65 63 74 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 election).{.return.false;.}..if.
142e0 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 26 26 20 70 72 65 67 (!is_numeric($selection).&&.preg
14300 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 20 2b 28 5c 53 2e 2a 29 5c 73 2a 7d 27 2c _match('{^\s*(\S+).+(\S.*)\s*}',
14320 20 24 73 65 6c 65 63 74 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e .$selection,.$matches)).{.return
14340 20 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 20 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 7d 0a .$matches[1].'.'.$matches[2];.}.
14360 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 .if.(!isset($matches[(int).$sele
14380 63 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 ction])).{.throw.new.\Exception(
143a0 27 4e 6f 74 20 61 20 76 61 6c 69 64 20 73 65 6c 65 63 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 70 61 'Not.a.valid.selection');.}..$pa
143c0 63 6b 61 67 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f ckage.=.$matches[(int).$selectio
143e0 6e 5d 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 70 61 n];..return.sprintf('%s.%s',.$pa
14400 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 ckage->getName(),.$package->getP
14420 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 rettyVersion());.};..$package.=.
14440 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c $dialog->askAndValidate($output,
14460 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 45 6e 74 65 72 20 70 61 63 .$dialog->getQuestion('Enter.pac
14480 6b 61 67 65 20 23 20 74 6f 20 61 64 64 2c 20 6f 72 20 61 20 22 5b 70 61 63 6b 61 67 65 5d 20 5b kage.#.to.add,.or.a."[package].[
144a0 76 65 72 73 69 6f 6e 5d 22 20 63 6f 75 70 6c 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 6c 69 version]".couple.if.it.is.not.li
144c0 73 74 65 64 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 sted',.false,.':'),.$validator,.
144e0 33 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 3);..if.(false.!==.$package).{.$
14500 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 requires[].=.$package;.}.}.}..re
14520 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e turn.$requires;.}..protected.fun
14540 63 74 69 6f 6e 20 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 61 75 74 68 6f 72 29 0a 7b 0a 72 ction.formatAuthors($author).{.r
14560 65 74 75 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 eturn.array($this->parseAuthorSt
14580 72 69 6e 67 28 24 61 75 74 68 6f 72 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ring($author));.}..protected.fun
145a0 63 74 69 6f 6e 20 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 ction.formatRequirements(array.$
145c0 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 requirements).{.$requires.=.arra
145e0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 y();.foreach.($requirements.as.$
14600 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 20 3d 20 24 74 requirement).{.$requirement.=.$t
14620 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 his->normalizeRequirement($requi
14640 72 65 6d 65 6e 74 29 3b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 70 61 63 rement);.list($packageName,.$pac
14660 6b 61 67 65 56 65 72 73 69 6f 6e 29 20 3d 20 65 78 70 6c 6f 64 65 28 22 20 22 2c 20 24 72 65 71 kageVersion).=.explode(".",.$req
14680 75 69 72 65 6d 65 6e 74 2c 20 32 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 5b 24 70 61 63 6b 61 67 uirement,.2);..$requires[$packag
146a0 65 4e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 eName].=.$packageVersion;.}..ret
146c0 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 urn.$requires;.}..protected.func
146e0 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 28 24 72 65 71 75 69 tion.normalizeRequirement($requi
14700 72 65 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b rement).{.return.preg_replace('{
14720 5e 28 5b 5e 3d 3a 20 5d 2b 29 5b 3d 3a 20 5d 28 2e 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c ^([^=:.]+)[=:.](.*)$}',.'$1.$2',
14740 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .$requirement);.}..protected.fun
14760 63 74 69 6f 6e 20 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 ction.getGitConfig().{.if.(null.
14780 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 !==.$this->gitConfig).{.return.$
147a0 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 this->gitConfig;.}..$finder.=.ne
147c0 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 67 69 74 42 69 6e 20 3d 20 w.ExecutableFinder();.$gitBin.=.
147e0 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 67 69 74 27 29 3b 0a 0a 24 63 6d 64 20 3d 20 6e 65 $finder->find('git');..$cmd.=.ne
14800 77 20 50 72 6f 63 65 73 73 28 73 70 72 69 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c 27 w.Process(sprintf('%s.config.-l'
14820 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 42 69 6e 29 29 29 3b 0a 24 63 6d ,.escapeshellarg($gitBin)));.$cm
14840 64 2d 3e 72 75 6e 28 29 3b 0a 0a 69 66 20 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 d->run();..if.($cmd->isSuccessfu
14860 6c 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 l()).{.$this->gitConfig.=.array(
14880 29 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a );.preg_match_all('{^([^=]+)=(.*
148a0 29 24 7d 6d 27 2c 20 24 63 6d 64 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 )$}m',.$cmd->getOutput(),.$match
148c0 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d es,.PREG_SET_ORDER);.foreach.($m
148e0 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f atches.as.$match).{.$this->gitCo
14900 6e 66 69 67 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a nfig[$match[1]].=.$match[2];.}..
14920 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 return.$this->gitConfig;.}..retu
14940 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d rn.$this->gitConfig.=.array();.}
14960 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ..................protected.func
14980 74 69 6f 6e 20 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 tion.hasVendorIgnore($ignoreFile
149a0 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c ,.$vendor.=.'vendor').{.if.(!fil
149c0 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 e_exists($ignoreFile)).{.return.
149e0 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7e false;.}..$pattern.=.sprintf(.'~
14a00 5e 2f 3f 25 73 28 2f 7c 2f 5c 2a 29 3f 24 7e 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 ^/?%s(/|/\*)?$~',.preg_quote($ve
14a20 6e 64 6f 72 2c 20 27 7e 27 29 0a 29 3b 0a 0a 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 69 67 ndor,.'~').);..$lines.=.file($ig
14a40 6e 6f 72 65 46 69 6c 65 2c 20 46 49 4c 45 5f 49 47 4e 4f 52 45 5f 4e 45 57 5f 4c 49 4e 45 53 29 noreFile,.FILE_IGNORE_NEW_LINES)
14a60 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 ;.foreach.($lines.as.$line).{.if
14a80 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 6c 69 6e 65 29 29 20 7b .(preg_match($pattern,.$line)).{
14aa0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b .return.true;.}.}..return.false;
14ac0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 65 6e 64 6f 72 .}..protected.function.addVendor
14ae0 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 76 Ignore($ignoreFile,.$vendor.=.'v
14b00 65 6e 64 6f 72 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 22 3b 0a 69 66 20 28 66 69 endor').{.$contents.=."";.if.(fi
14b20 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 63 6f 6e 74 65 le_exists($ignoreFile)).{.$conte
14b40 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 nts.=.file_get_contents($ignoreF
14b60 69 6c 65 29 3b 0a 0a 69 66 20 28 22 5c 6e 22 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 ile);..if.("\n".!==.substr($cont
14b80 65 6e 74 73 2c 20 30 2c 20 2d 31 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 2e 3d 20 22 5c 6e ents,.0,.-1)).{.$contents..=."\n
14ba0 22 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 ";.}.}..file_put_contents($ignor
14bc0 65 46 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 20 2e 20 24 76 65 6e 64 6f 72 2e 20 22 5c 6e 22 eFile,.$contents...$vendor.."\n"
14be0 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
14c00 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 e.Composer\Downloader;..use.Comp
14c20 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 oser\Config;.use.Composer\Packag
14c40 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e\PackageInterface;.use.Composer
14c60 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a \Package\Version\VersionParser;.
14c80 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f use.Composer\Util\ProcessExecuto
14ca0 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a r;.use.Composer\IO\IOInterface;.
14cc0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a use.Composer\Util\Filesystem;...
14ce0 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 20 69 ..abstract.class.VcsDownloader.i
14d00 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a mplements.DownloaderInterface.{.
14d20 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 protected.$io;.protected.$config
14d40 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 ;.protected.$process;.protected.
14d60 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f $filesystem;..public.function.__
14d80 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 construct(IOInterface.$io,.Confi
14da0 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 g.$config,.ProcessExecutor.$proc
14dc0 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 20 3d 20 6e 75 6c ess.=.null,.Filesystem.$fs.=.nul
14de0 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e l).{.$this->io.=.$io;.$this->con
14e00 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 fig.=.$config;.$this->process.=.
14e20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b $process.?:.new.ProcessExecutor;
14e40 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 20 3f 3a 20 6e 65 77 20 .$this->filesystem.=.$fs.?:.new.
14e60 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Filesystem;.}.....public.functio
14e80 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 n.getInstallationSource().{.retu
14ea0 72 6e 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rn.'source';.}.....public.functi
14ec0 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 on.download(PackageInterface.$pa
14ee0 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 ckage,.$path).{.if.(!$package->g
14f00 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 etSourceReference()).{.throw.new
14f20 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b .\InvalidArgumentException('Pack
14f40 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e age.'.$package->getPrettyName().
14f60 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 '.is.missing.reference.informati
14f80 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 49 on');.}..$this->io->write("..-.I
14fa0 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 nstalling.<info>"...$package->ge
14fc0 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e tName()..."</info>.(<comment>"..
14fe0 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 .VersionParser::formatVersion($p
15000 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d ackage)..."</comment>)");.$this-
15020 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 >filesystem->removeDirectory($pa
15040 74 68 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c th);.$this->doDownload($package,
15060 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d .$path);.$this->io->write('');.}
15080 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b .....public.function.update(Pack
150a0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e ageInterface.$initial,.PackageIn
150c0 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 terface.$target,.$path).{.if.(!$
150e0 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a target->getSourceReference()).{.
15100 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
15120 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 ion('Package.'.$target->getPrett
15140 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 65 20 69 yName().'.is.missing.reference.i
15160 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 61 72 67 65 74 nformation');.}..$name.=.$target
15180 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 ->getName();.if.($initial->getPr
151a0 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 ettyVersion().==.$target->getPre
151c0 74 74 79 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 74 ttyVersion()).{.if.($target->get
151e0 53 6f 75 72 63 65 54 79 70 65 28 29 20 3d 3d 3d 20 27 73 76 6e 27 29 20 7b 0a 24 66 72 6f 6d 20 SourceType().===.'svn').{.$from.
15200 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 =.$initial->getSourceReference()
15220 3b 0a 24 74 6f 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 ;.$to.=.$target->getSourceRefere
15240 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 73 75 62 73 74 72 28 24 nce();.}.else.{.$from.=.substr($
15260 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 initial->getSourceReference(),.0
15280 2c 20 37 29 3b 0a 24 74 6f 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 ,.7);.$to.=.substr($target->getS
152a0 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 24 6e 61 6d 65 ourceReference(),.0,.7);.}.$name
152c0 20 2e 3d 20 27 20 27 2e 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 ..=.'.'.$initial->getPrettyVersi
152e0 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 56 65 72 73 69 6f 6e 50 61 on();.}.else.{.$from.=.VersionPa
15300 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 rser::formatVersion($initial);.$
15320 74 6f 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f to.=.VersionParser::formatVersio
15340 6e 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 n($target);.}..$this->io->write(
15360 22 20 20 2d 20 55 70 64 61 74 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 6e 61 6d 65 20 2e 20 "..-.Updating.<info>"...$name...
15380 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 66 72 6f 6d 20 2e 20 22 "</info>.(<comment>"...$from..."
153a0 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3d 3e 20 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 74 6f 20 2e </comment>.=>.<comment>"...$to..
153c0 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 ."</comment>)");..$this->cleanCh
153e0 61 6e 67 65 73 28 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d anges($path,.true);.try.{.$this-
15400 3e 64 6f 55 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 >doUpdate($initial,.$target,.$pa
15420 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a th);.}.catch.(\Exception.$e).{..
15440 20 24 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a .$this->reapplyChanges($path);..
15460 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 throw.$e;.}.$this->reapplyChange
15480 73 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 s($path);....if.($this->io->isVe
154a0 72 62 6f 73 65 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 50 75 6c 6c 69 6e 67 20 69 rbose()).{.$message.=.'Pulling.i
154c0 6e 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 n.changes:';.$logs.=.$this->getC
154e0 6f 6d 6d 69 74 4c 6f 67 73 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 ommitLogs($initial->getSourceRef
15500 65 72 65 6e 63 65 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 erence(),.$target->getSourceRefe
15520 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 6c 6f 67 rence(),.$path);..if.(!trim($log
15540 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 63 s)).{.$message.=.'Rolling.back.c
15560 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d hanges:';.$logs.=.$this->getComm
15580 69 74 4c 6f 67 73 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e itLogs($target->getSourceReferen
155a0 63 65 28 29 2c 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e ce(),.$initial->getSourceReferen
155c0 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 69 6d 28 24 6c 6f 67 73 29 ce(),.$path);.}..if.(trim($logs)
155e0 29 20 7b 0a 24 6c 6f 67 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f ).{.$logs.=.implode("\n",.array_
15600 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 map(function.($line).{.return.'.
15620 20 20 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c .....'...$line;.},.explode("\n",
15640 20 24 6c 6f 67 73 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 .$logs)));..$this->io->write('..
15660 20 20 27 2e 24 6d 65 73 73 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 ..'.$message);.$this->io->write(
15680 24 6c 6f 67 73 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 $logs);.}.}..$this->io->write(''
156a0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 );.}.....public.function.remove(
156c0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 PackageInterface.$package,.$path
156e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 52 65 6d 6f 76 69 ).{.$this->io->write("..-.Removi
15700 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 ng.<info>"...$package->getName()
15720 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 ..."</info>.(<comment>"...$packa
15740 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d ge->getPrettyVersion()..."</comm
15760 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 ent>)");.$this->cleanChanges($pa
15780 74 68 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 th,.false);.if.(!$this->filesyst
157a0 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 74 68 em->removeDirectory($path)).{.th
157c0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 row.new.\RuntimeException('Could
157e0 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 .not.completely.delete.'.$path.'
15800 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ,.aborting.');.}.}..........prot
15820 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 ected.function.cleanChanges($pat
15840 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 h,.$update).{...if.(null.!==.$th
15860 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 29 20 7b 0a 74 68 is->getLocalChanges($path)).{.th
15880 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 row.new.\RuntimeException('Sourc
158a0 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e e.directory.'...$path...'.has.un
158c0 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a committed.changes.');.}.}.......
158e0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 .protected.function.reapplyChang
15900 65 73 28 24 70 61 74 68 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 es($path).{.}........abstract.pr
15920 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b otected.function.doDownload(Pack
15940 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a ageInterface.$package,.$path);..
15960 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .......abstract.protected.functi
15980 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e on.doUpdate(PackageInterface.$in
159a0 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c itial,.PackageInterface.$target,
159c0 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 .$path);........abstract.public.
159e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b function.getLocalChanges($path);
15a00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
15a20 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e ction.getCommitLogs($fromReferen
15a40 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 ce,.$toReference,.$path);.}.<?ph
15a60 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
15a80 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 Downloader;..use.Composer\Config
15aa0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 ;.use.Composer\IO\IOInterface;.u
15ac0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 se.Composer\Package\PackageInter
15ae0 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 face;.use.Composer\Package\Versi
15b00 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 on\VersionParser;.use.Composer\U
15b20 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 til\Filesystem;.use.Composer\Uti
15b40 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f l\GitHub;.use.Composer\Util\Remo
15b60 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 teFilesystem;.........class.File
15b80 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 72 Downloader.implements.Downloader
15ba0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 Interface.{.protected.$io;.prote
15bc0 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a 70 72 cted.$config;.protected.$rfs;.pr
15be0 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 otected.$filesystem;..........pu
15c00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 blic.function.__construct(IOInte
15c20 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 65 6d 6f 74 rface.$io,.Config.$config,.Remot
15c40 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 eFilesystem.$rfs.=.null,.Filesys
15c60 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d tem.$filesystem.=.null).{.$this-
15c80 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 >io.=.$io;.$this->config.=.$conf
15ca0 69 67 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d ig;.$this->rfs.=.$rfs.?:.new.Rem
15cc0 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 oteFilesystem($io);.$this->files
15ce0 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 ystem.=.$filesystem.?:.new.Files
15d00 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ystem();.}.....public.function.g
15d20 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 etInstallationSource().{.return.
15d40 27 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 'dist';.}.....public.function.do
15d60 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 wnload(PackageInterface.$package
15d80 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 ,.$path).{.$url.=.$package->getD
15da0 69 73 74 55 72 6c 28 29 3b 0a 69 66 20 28 21 24 75 72 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 istUrl();.if.(!$url).{.throw.new
15dc0 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 .\InvalidArgumentException('The.
15de0 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 75 72 6c 20 69 6e 66 given.package.is.missing.url.inf
15e00 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ormation');.}..$this->filesystem
15e20 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 70 61 74 68 29 3b 0a ->ensureDirectoryExists($path);.
15e40 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 .$fileName.=.$this->getFileName(
15e60 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 $package,.$path);..$this->io->wr
15e80 69 74 65 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 ite("..-.Installing.<info>"...$p
15ea0 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 ackage->getName()..."</info>.(<c
15ec0 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 omment>"...VersionParser::format
15ee0 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 Version($package)..."</comment>)
15f00 22 29 3b 0a 0a 24 70 72 6f 63 65 73 73 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ");..$processUrl.=.$this->proces
15f20 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 3b 0a 0a 74 72 79 20 7b 0a 74 72 79 sUrl($package,.$url);..try.{.try
15f40 20 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e 63 6f 70 79 28 70 61 72 73 65 5f 75 72 6c 28 24 70 .{.$this->rfs->copy(parse_url($p
15f60 72 6f 63 65 73 73 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2c 20 24 70 72 6f 63 65 rocessUrl,.PHP_URL_HOST),.$proce
15f80 73 73 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e ssUrl,.$fileName);.}.catch.(Tran
15fa0 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 34 30 34 20 3d 3d 3d sportException.$e).{.if.(404.===
15fc0 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 26 26 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d .$e->getCode().&&.'github.com'.=
15fe0 3d 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 70 72 6f 63 65 73 73 55 72 6c 2c 20 50 48 50 5f 55 52 ==.parse_url($processUrl,.PHP_UR
16000 4c 5f 48 4f 53 54 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 5c 6e 22 2e 27 43 6f 75 6c L_HOST)).{.$message.=."\n".'Coul
16020 64 20 6e 6f 74 20 66 65 74 63 68 20 27 2e 24 70 72 6f 63 65 73 73 55 72 6c 2e 27 2c 20 65 6e 74 d.not.fetch.'.$processUrl.',.ent
16040 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 61 63 er.your.GitHub.credentials.to.ac
16060 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 3b 0a 24 67 69 74 48 75 62 55 74 69 6c cess.private.repos';.$gitHubUtil
16080 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e .=.new.GitHub($this->io,.$this->
160a0 63 6f 6e 66 69 67 2c 20 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 69 66 20 28 21 config,.null,.$this->rfs);.if.(!
160c0 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 27 67 69 74 $gitHubUtil->authorizeOAuth('git
160e0 68 75 62 2e 63 6f 6d 27 29 0a 26 26 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 hub.com').&&.(!$this->io->isInte
16100 72 61 63 74 69 76 65 28 29 20 7c 7c 20 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f ractive().||.!$gitHubUtil->autho
16120 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 27 67 69 74 68 75 62 2e 63 rizeOAuthInteractively('github.c
16140 6f 6d 27 2c 20 24 6d 65 73 73 61 67 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a om',.$message)).).{.throw.$e;.}.
16160 24 74 68 69 73 2d 3e 72 66 73 2d 3e 63 6f 70 79 28 70 61 72 73 65 5f 75 72 6c 28 24 70 72 6f 63 $this->rfs->copy(parse_url($proc
16180 65 73 73 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2c 20 24 70 72 6f 63 65 73 73 55 essUrl,.PHP_URL_HOST),.$processU
161a0 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 24 rl,.$fileName);.}.else.{.throw.$
161c0 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 4e 61 e;.}.}..if.(!file_exists($fileNa
161e0 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 me)).{.throw.new.\UnexpectedValu
16200 65 45 78 63 65 70 74 69 6f 6e 28 24 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 73 eException($url.'.could.not.be.s
16220 61 76 65 64 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b 65 20 73 75 72 65 aved.to.'.$fileName.',.make.sure
16240 20 74 68 65 27 0a 2e 27 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 77 72 69 74 61 62 6c 65 20 61 .the'..'.directory.is.writable.a
16260 6e 64 20 79 6f 75 20 68 61 76 65 20 69 6e 74 65 72 6e 65 74 20 63 6f 6e 6e 65 63 74 69 76 69 74 nd.you.have.internet.connectivit
16280 79 27 29 3b 0a 7d 0a 0a 24 63 68 65 63 6b 73 75 6d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 y');.}..$checksum.=.$package->ge
162a0 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 69 66 20 28 24 63 68 65 63 6b 73 tDistSha1Checksum();.if.($checks
162c0 75 6d 20 26 26 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 31 27 2c 20 24 66 69 6c 65 4e 61 6d um.&&.hash_file('sha1',.$fileNam
162e0 65 29 20 21 3d 3d 20 24 63 68 65 63 6b 73 75 6d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 e).!==.$checksum).{.throw.new.\U
16300 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 68 65 nexpectedValueException('The.che
16320 63 6b 73 75 6d 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 cksum.verification.of.the.file.f
16340 61 69 6c 65 64 20 28 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 27 2e 24 75 72 6c 2e 27 29 ailed.(downloaded.from.'.$url.')
16360 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a ');.}.}.catch.(\Exception.$e).{.
16380 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 ..$this->filesystem->removeDirec
163a0 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 tory($path);.throw.$e;.}.}.....p
163c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 ublic.function.update(PackageInt
163e0 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 erface.$initial,.PackageInterfac
16400 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 e.$target,.$path).{.$this->remov
16420 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c e($initial,.$path);.$this->downl
16440 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 oad($target,.$path);.}.....publi
16460 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 c.function.remove(PackageInterfa
16480 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d ce.$package,.$path).{.$this->io-
164a0 3e 77 72 69 74 65 28 22 20 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 >write("..-.Removing.<info>"...$
164c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c package->getName()..."</info>.(<
164e0 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 comment>"...VersionParser::forma
16500 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e tVersion($package)..."</comment>
16520 29 22 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d )");.if.(!$this->filesystem->rem
16540 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 oveDirectory($path)).{.throw.new
16560 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f .\RuntimeException('Could.not.co
16580 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 mpletely.delete.'.$path.',.abort
165a0 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ing.');.}.}.........protected.fu
165c0 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 nction.getFileName(PackageInterf
165e0 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 ace.$package,.$path).{.return.$p
16600 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b ath.'/'.pathinfo(parse_url($pack
16620 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 age->getDistUrl(),.PHP_URL_PATH)
16640 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.PATHINFO_BASENAME);.}.........
16660 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 ..protected.function.processUrl(
16680 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 PackageInterface.$package,.$url)
166a0 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 .{.if.(!extension_loaded('openss
166c0 6c 27 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 73 l').&&.0.===.strpos($url,.'https
166e0 3a 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 :')).{.throw.new.\RuntimeExcepti
16700 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 on('You.must.enable.the.openssl.
16720 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 76 69 61 20 extension.to.download.files.via.
16740 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 https');.}..return.$url;.}.}.<?p
16760 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
16780 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Downloader;..use.Composer\Packa
167a0 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ge\PackageInterface;.use.Compose
167c0 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 r\Util\Svn.as.SvnUtil;......clas
167e0 73 20 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c s.SvnDownloader.extends.VcsDownl
16800 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 oader.{....public.function.doDow
16820 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c nload(PackageInterface.$package,
16840 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f .$path).{.$url.=.$package->getSo
16860 75 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 urceUrl();.$ref.=.$package->getS
16880 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 ourceReference();..$this->io->wr
168a0 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 70 61 63 6b 61 67 65 ite("....Checking.out.".$package
168c0 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e ->getSourceReference());.$this->
168e0 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 63 6f 22 2c 20 73 70 72 69 6e 74 66 28 execute($url,."svn.co",.sprintf(
16900 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 6e 75 6c 6c 2c 20 24 70 61 74 "%s/%s",.$url,.$ref),.null,.$pat
16920 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 h);.}.....public.function.doUpda
16940 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 te(PackageInterface.$initial,.Pa
16960 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b ckageInterface.$target,.$path).{
16980 0a 24 75 72 6c 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b .$url.=.$target->getSourceUrl();
169a0 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .$ref.=.$target->getSourceRefere
169c0 6e 63 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 nce();..$this->io->write("....Ch
169e0 65 63 6b 69 6e 67 20 6f 75 74 20 22 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 ecking.out."...$ref);.$this->exe
16a00 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 73 77 69 74 63 68 22 2c 20 73 70 72 69 6e 74 66 cute($url,."svn.switch",.sprintf
16a20 28 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 24 70 61 74 68 29 3b 0a 7d ("%s/%s",.$url,.$ref),.$path);.}
16a40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 .....public.function.getLocalCha
16a60 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 nges($path).{.$this->process->ex
16a80 65 63 75 74 65 28 27 73 76 6e 20 73 74 61 74 75 73 20 2d 2d 69 67 6e 6f 72 65 2d 65 78 74 65 72 ecute('svn.status.--ignore-exter
16aa0 6e 61 6c 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 nals',.$output,.$path);..return.
16ac0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f 75 74 preg_match('{^.*[^X.].+}m',.$out
16ae0 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a put).?.$output.:.null;.}........
16b00 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 ......protected.function.execute
16b20 28 24 62 61 73 65 55 72 6c 2c 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 ($baseUrl,.$command,.$url,.$cwd.
16b40 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 =.null,.$path.=.null).{.$util.=.
16b60 6e 65 77 20 53 76 6e 55 74 69 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 new.SvnUtil($baseUrl,.$this->io)
16b80 3b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 ;.try.{.return.$util->execute($c
16ba0 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 69 73 ommand,.$url,.$cwd,.$path,.$this
16bc0 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 ->io->isVerbose());.}.catch.(\Ru
16be0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ntimeException.$e).{.throw.new.\
16c00 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 6c 64 RuntimeException(.'Package.could
16c20 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 .not.be.downloaded,.'.$e->getMes
16c40 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 sage().);.}.}.....protected.func
16c60 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 tion.cleanChanges($path,.$update
16c80 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 ).{.if.(!$this->io->isInteractiv
16ca0 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 e()).{.return.parent::cleanChang
16cc0 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 63 68 61 es($path,.$update);.}..if.(!$cha
16ce0 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 nges.=.$this->getLocalChanges($p
16d00 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 ath)).{.return;.}..$changes.=.ar
16d20 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 ray_map(function.($elem).{.retur
16d40 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b n.'....'.$elem;.},.preg_split('{
16d60 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 \s*\r?\n\s*}',.$changes));.$this
16d80 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b ->io->write('....<error>The.pack
16da0 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 age.has.modified.files:</error>'
16dc0 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 5f 73 6c 69 63 65 28 );.$this->io->write(array_slice(
16de0 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 68 $changes,.0,.10));.if.(count($ch
16e00 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 anges).>.10).{.$this->io->write(
16e20 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 2d 20 31 '....<info>'.count($changes).-.1
16e40 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 63 68 6f 6f 73 0...'.more.files.modified,.choos
16e60 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 3c 2f 69 6e 66 e."v".to.view.the.full.list</inf
16e80 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 74 63 68 20 28 o>');.}..while.(true).{.switch.(
16ea0 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 69 73 63 61 72 $this->io->ask('....<info>Discar
16ec0 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 d.changes.[y,n,v,?]?</info>.',.'
16ee0 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 ?')).{.case.'y':.if.(0.!==.$this
16f00 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 72 65 76 65 72 74 20 2d ->process->execute('svn.revert.-
16f20 52 20 2e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e R..',.$output,.$path)).{.throw.n
16f40 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 ew.\RuntimeException("Could.not.
16f60 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 reset.changes\n\n:".$this->proce
16f80 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 62 72 65 61 6b 20 32 ss->getErrorOutput());.}.break.2
16fa0 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 ;..case.'n':.throw.new.\RuntimeE
16fc0 78 63 65 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 xception('Update.aborted');..cas
16fe0 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 63 68 61 6e 67 65 73 e.'v':.$this->io->write($changes
17000 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 74 );.break;..case.'?':.default:.$t
17020 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 his->io->write(array(.'....y.-.d
17040 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 iscard.changes.and.apply.the.'.(
17060 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 $update.?.'update'.:.'uninstall'
17080 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 ),.'....n.-.abort.the.'.($update
170a0 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 .?.'update'.:.'uninstall').'.and
170c0 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 .let.you.manually.clean.things.u
170e0 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 p',.'....v.-.view.modified.files
17100 27 2c 0a 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 2c 0a 29 29 3b 0a 62 72 65 ',.'....?.-.print.help',.));.bre
17120 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ak;.}.}.}.....protected.function
17140 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 .getCommitLogs($fromReference,.$
17160 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d toReference,.$path).{.$command.=
17180 20 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 73 76 6e 20 6c 6f 67 20 2d 72 25 73 3a .sprintf('cd.%s.&&.svn.log.-r%s:
171a0 25 73 20 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 %s.--incremental',.escapeshellar
171c0 67 28 24 70 61 74 68 29 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 g($path),.$fromReference,.$toRef
171e0 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 erence);..if.(0.!==.$this->proce
17200 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 29 20 ss->execute($command,.$output)).
17220 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 {.throw.new.\RuntimeException('F
17240 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 ailed.to.execute.'...$command...
17260 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f "\n\n"...$this->process->getErro
17280 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d rOutput());.}..return.$output;.}
172a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
172c0 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 mposer\Downloader;..use.Composer
172e0 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 \Util\Filesystem;...........clas
17300 73 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 s.PearPackageExtractor.{.private
17320 20 73 74 61 74 69 63 20 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 .static.$rolesWithoutPackageName
17340 50 72 65 66 69 78 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 73 63 72 69 70 74 27 2c 20 Prefix.=.array('php',.'script',.
17360 27 77 77 77 27 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 'www');..private.$filesystem;.pr
17380 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ivate.$file;..public.function.__
173a0 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 construct($file).{.if.(!is_file(
173c0 24 66 69 6c 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 $file)).{.throw.new.\UnexpectedV
173e0 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 45 41 52 20 70 61 63 6b 61 67 65 20 66 69 6c 65 alueException('PEAR.package.file
17400 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 61 74 20 27 2e 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 74 .is.not.found.at.'.$file);.}..$t
17420 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d his->filesystem.=.new.Filesystem
17440 28 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a ();.$this->file.=.$file;.}......
17460 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 54 6f 28 ......public.function.extractTo(
17480 24 74 61 72 67 65 74 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 20 3d 20 61 72 72 61 79 28 27 70 $target,.array.$roles.=.array('p
174a0 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 29 2c hp'.=>.'/',.'script'.=>.'/bin'),
174c0 20 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 65 78 74 72 61 63 74 69 6f 6e 50 .$vars.=.array()).{.$extractionP
174e0 61 74 68 20 3d 20 24 74 61 72 67 65 74 2e 27 2f 74 61 72 62 61 6c 6c 27 3b 0a 0a 74 72 79 20 7b ath.=.$target.'/tarball';..try.{
17500 0a 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 74 68 69 73 2d .$archive.=.new.\PharData($this-
17520 3e 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 65 78 74 >file);.$archive->extractTo($ext
17540 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 ractionPath,.null,.true);..if.(!
17560 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 65 78 74 72 61 63 74 69 is_file($this->combine($extracti
17580 6f 6e 50 61 74 68 2c 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 29 20 7b 0a 74 68 72 6f onPath,.'/package.xml'))).{.thro
175a0 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 w.new.\RuntimeException('Invalid
175c0 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 49 74 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 70 .PEAR.package..It.must.contain.p
175e0 61 63 6b 61 67 65 2e 78 6d 6c 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 66 69 6c 65 43 6f 70 79 ackage.xml.file.');.}..$fileCopy
17600 41 63 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e Actions.=.$this->buildCopyAction
17620 73 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 s($extractionPath,.$roles,.$vars
17640 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 43 6f 70 79 41 63 74 );.$this->copyFiles($fileCopyAct
17660 69 6f 6e 73 2c 20 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 74 61 72 67 65 74 2c 20 ions,.$extractionPath,.$target,.
17680 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 $roles,.$vars);.$this->filesyste
176a0 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 m->removeDirectory($extractionPa
176c0 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 th);.}.catch.(\Exception.$except
176e0 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 ion).{.throw.new.\UnexpectedValu
17700 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 eException(sprintf('Failed.to.ex
17720 74 72 61 63 74 20 50 45 41 52 20 70 61 63 6b 61 67 65 20 25 73 20 74 6f 20 25 73 2e 20 52 65 61 tract.PEAR.package.%s.to.%s..Rea
17740 73 6f 6e 3a 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 24 74 61 72 67 65 74 2c 20 son:.%s',.$this->file,.$target,.
17760 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2c 20 30 2c 20 24 65 $exception->getMessage()),.0,.$e
17780 78 63 65 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 xception);.}.}...........private
177a0 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 .function.copyFiles($files,.$sou
177c0 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 rce,.$target,.$roles,.$vars).{.f
177e0 6f 72 65 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 72 6f 6d oreach.($files.as.$file).{.$from
17800 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 .=.$this->combine($source,.$file
17820 5b 27 66 72 6f 6d 27 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 ['from']);.$to.=.$this->combine(
17840 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 5b 24 66 69 6c 65 5b 27 72 6f 6c 65 27 5d 5d 29 3b $target,.$roles[$file['role']]);
17860 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 6f 2c 20 24 66 69 6c 65 .$to.=.$this->combine($to,.$file
17880 5b 27 74 6f 27 5d 29 3b 0a 24 74 61 73 6b 73 20 3d 20 24 66 69 6c 65 5b 27 74 61 73 6b 73 27 5d ['to']);.$tasks.=.$file['tasks']
178a0 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 ;.$this->copyFile($from,.$to,.$t
178c0 61 73 6b 73 2c 20 24 76 61 72 73 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 asks,.$vars);.}.}..private.funct
178e0 69 6f 6e 20 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c ion.copyFile($from,.$to,.$tasks,
17900 20 24 76 61 72 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 72 6f 6d 29 29 20 7b .$vars).{.if.(!is_file($from)).{
17920 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e .throw.new.\RuntimeException('In
17940 76 61 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 valid.PEAR.package..package.xml.
17960 64 65 66 69 6e 65 73 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6e 6f 74 20 6c 6f 63 61 74 65 64 defines.file.that.is.not.located
17980 20 69 6e 73 69 64 65 20 74 61 72 62 61 6c 6c 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 .inside.tarball.');.}..$this->fi
179a0 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 lesystem->ensureDirectoryExists(
179c0 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 dirname($to));..if.(0.==.count($
179e0 74 61 73 6b 73 29 29 20 7b 0a 24 63 6f 70 69 65 64 20 3d 20 63 6f 70 79 28 24 66 72 6f 6d 2c 20 tasks)).{.$copied.=.copy($from,.
17a00 24 74 6f 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 $to);.}.else.{.$content.=.file_g
17a20 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 72 6f 6d 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 et_contents($from);.$replacement
17a40 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 73 6b 73 20 61 73 20 s.=.array();.foreach.($tasks.as.
17a60 24 74 61 73 6b 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 24 74 61 73 6b 5b 27 66 72 6f 6d 27 $task).{.$pattern.=.$task['from'
17a80 5d 3b 0a 24 76 61 72 4e 61 6d 65 20 3d 20 24 74 61 73 6b 5b 27 74 6f 27 5d 3b 0a 69 66 20 28 69 ];.$varName.=.$task['to'];.if.(i
17aa0 73 73 65 74 28 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 29 20 7b 0a 69 66 20 28 24 76 61 sset($vars[$varName])).{.if.($va
17ac0 72 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 5f 62 69 6e 27 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d rName.===.'php_bin'.&&.false.===
17ae0 20 73 74 72 70 6f 73 28 24 74 6f 2c 20 27 2e 62 61 74 27 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 .strpos($to,.'.bat')).{.$replace
17b00 6d 65 6e 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ments[$pattern].=.preg_replace('
17b20 7b 5c 2e 62 61 74 24 7d 27 2c 20 27 27 2c 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 3b {\.bat$}',.'',.$vars[$varName]);
17b40 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 5b 24 70 61 74 74 65 72 6e .}.else.{.$replacements[$pattern
17b60 5d 20 3d 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 3b 0a 7d 0a 7d 0a 7d 0a 24 63 6f 6e 74 ].=.$vars[$varName];.}.}.}.$cont
17b80 65 6e 74 20 3d 20 73 74 72 74 72 28 24 63 6f 6e 74 65 6e 74 2c 20 24 72 65 70 6c 61 63 65 6d 65 ent.=.strtr($content,.$replaceme
17ba0 6e 74 73 29 3b 0a 0a 24 63 6f 70 69 65 64 20 3d 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e nts);..$copied.=.file_put_conten
17bc0 74 73 28 24 74 6f 2c 20 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 ts($to,.$content);.}..if.(false.
17be0 3d 3d 3d 20 24 63 6f 70 69 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d ===.$copied).{.throw.new.\Runtim
17c00 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6f eException(sprintf('Failed.to.co
17c20 70 79 20 25 73 20 74 6f 20 25 73 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 7d 0a py.%s.to.%s',.$from,.$to));.}.}.
17c40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c ...........private.function.buil
17c60 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 73 6f 75 72 63 65 2c 20 61 72 72 61 79 20 24 72 6f 6c dCopyActions($source,.array.$rol
17c80 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 73 69 6d 70 6c 65 78 es,.$vars).{..$package.=.simplex
17ca0 6d 6c 5f 6c 6f 61 64 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 ml_load_file($this->combine($sou
17cc0 72 63 65 2c 20 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 3b 0a 69 66 28 66 61 6c 73 65 20 3d rce,.'package.xml'));.if(false.=
17ce0 3d 3d 20 24 70 61 63 6b 61 67 65 29 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 ==.$package).throw.new.\RuntimeE
17d00 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c xception('Package.definition.fil
17d20 65 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 29 3b 0a 0a 24 70 61 63 6b 61 67 65 53 63 68 65 e.is.not.valid.');..$packageSche
17d40 6d 61 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b maVersion.=.$package['version'];
17d60 0a 69 66 20 28 27 31 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 .if.('1.0'.==.$packageSchemaVers
17d80 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c ion).{.$children.=.$package->rel
17da0 65 61 73 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 ease->filelist->children();.$pac
17dc0 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 kageName.=.(string).$package->na
17de0 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 me;.$packageVersion.=.(string).$
17e00 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 76 65 72 73 69 6f 6e 3b 0a 24 73 6f 75 72 package->release->version;.$sour
17e20 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 ceDir.=.$packageName...'-'...$pa
17e40 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 ckageVersion;.$result.=.$this->b
17e60 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c uildSourceList10($children,.$rol
17e80 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 es,.$sourceDir,.'',.null,.$packa
17ea0 67 65 4e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 32 2e 30 27 20 3d 3d 20 24 70 61 63 geName);.}.elseif.('2.0'.==.$pac
17ec0 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 7c 7c 20 27 32 2e 31 27 20 3d 3d 20 24 70 kageSchemaVersion.||.'2.1'.==.$p
17ee0 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e ackageSchemaVersion).{.$children
17f00 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 63 6f 6e 74 65 6e 74 73 2d 3e 63 68 69 6c 64 72 65 6e 28 .=.$package->contents->children(
17f20 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b );.$packageName.=.(string).$pack
17f40 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 age->name;.$packageVersion.=.(st
17f60 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 76 65 72 73 69 6f 6e 2d 3e 72 65 6c 65 61 73 65 ring).$package->version->release
17f80 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d ;.$sourceDir.=.$packageName...'-
17fa0 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 '...$packageVersion;.$result.=.$
17fc0 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 this->buildSourceList20($childre
17fe0 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c n,.$roles,.$sourceDir,.'',.null,
18000 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 .$packageName);..$namespaces.=.$
18020 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 3b 0a 24 70 61 63 6b 61 package->getNamespaces();.$packa
18040 67 65 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c ge->registerXPathNamespace('ns',
18060 20 24 6e 61 6d 65 73 70 61 63 65 73 5b 27 27 5d 29 3b 0a 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 .$namespaces['']);.$releaseNodes
18080 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 68 70 72 65 6c 65 61 73 .=.$package->xpath('ns:phpreleas
180a0 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 79 52 65 6c 65 61 73 65 28 24 72 65 73 75 6c 74 e');.$this->applyRelease($result
180c0 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 3b 0a 7d 20 65 6c 73 65 20 ,.$releaseNodes,.$vars);.}.else.
180e0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 {.throw.new.\RuntimeException('U
18100 6e 73 75 70 70 6f 72 74 65 64 20 73 63 68 65 6d 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 70 61 63 nsupported.schema.version.of.pac
18120 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 kage.definition.file.');.}..retu
18140 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 rn.$result;.}..private.function.
18160 61 70 70 6c 79 52 65 6c 65 61 73 65 28 26 24 61 63 74 69 6f 6e 73 2c 20 24 72 65 6c 65 61 73 65 applyRelease(&$actions,.$release
18180 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 Nodes,.$vars).{.foreach.($releas
181a0 65 4e 6f 64 65 73 20 61 73 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 eNodes.as.$releaseNode).{.$requi
181c0 72 65 64 4f 73 20 3d 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e redOs.=.$releaseNode->installcon
181e0 64 69 74 69 6f 6e 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c ditions.&&.$releaseNode->install
18200 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e conditions->os.&&.$releaseNode->
18220 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3f 20 28 73 installconditions->os->name.?.(s
18240 74 72 69 6e 67 29 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 tring).$releaseNode->installcond
18260 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3a 20 27 27 3b 0a 69 66 20 28 24 72 65 71 75 itions->os->name.:.'';.if.($requ
18280 69 72 65 64 4f 73 20 26 26 20 24 76 61 72 73 5b 27 6f 73 27 5d 20 21 3d 20 24 72 65 71 75 69 72 iredOs.&&.$vars['os'].!=.$requir
182a0 65 64 4f 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6c 65 61 73 edOs).{.continue;.}..if.($releas
182c0 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c eNode->filelist).{.foreach.($rel
182e0 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 20 61 easeNode->filelist->children().a
18300 73 20 24 61 63 74 69 6f 6e 29 20 7b 0a 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 20 24 61 s.$action).{.if.('install'.==.$a
18320 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 ction->getName()).{.$name.=.(str
18340 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 24 61 73 20 3d 20 28 73 74 72 ing).$action['name'];.$as.=.(str
18360 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 61 73 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 ing).$action['as'];.if.(isset($a
18380 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 ctions[$name])).{.$actions[$name
183a0 5d 5b 27 74 6f 27 5d 20 3d 20 24 61 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 67 6e 6f ]['to'].=.$as;.}.}.elseif.('igno
183c0 72 65 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 re'.==.$action->getName()).{.$na
183e0 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 75 me.=.(string).$action['name'];.u
18400 6e 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a nset($actions[$name]);.}.else.{.
18420 0a 20 7d 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ..}.}.}.break;.}.}..private.func
18440 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e tion.buildSourceList10($children
18460 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 20 3d 20 27 27 2c 20 24 74 ,.$targetRoles,.$source.=.'',.$t
18480 61 72 67 65 74 20 3d 20 27 27 2c 20 24 72 6f 6c 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 arget.=.'',.$role.=.null,.$packa
184a0 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 geName).{.$result.=.array();....
184c0 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a foreach.($children.as.$child).{.
184e0 0a 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 27 64 69 72 27 29 .if.($child->getName().==.'dir')
18500 20 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 .{.$dirSource.=.$this->combine($
18520 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 source,.(string).$child['name'])
18540 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 ;.$dirTarget.=.$child['baseinsta
18560 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 6f 6c 65 20 3d 20 lldir'].?.:.$target;.$dirRole.=.
18580 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 24 64 69 72 46 69 $child['role'].?.:.$role;.$dirFi
185a0 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 les.=.$this->buildSourceList10($
185c0 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c child->children(),.$targetRoles,
185e0 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 67 65 74 2c 20 24 64 69 72 52 6f 6c .$dirSource,.$dirTarget,.$dirRol
18600 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 e,.$packageName);.$result.=.arra
18620 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 29 3b 0a 7d 20 65 y_merge($result,.$dirFiles);.}.e
18640 6c 73 65 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 27 66 69 6c lseif.($child->getName().==.'fil
18660 65 27 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c e').{.$fileRole.=.(string).$chil
18680 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b 0a 69 66 20 28 69 73 73 65 74 28 24 d['role'].?.:.$role;.if.(isset($
186a0 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a 24 66 69 6c 65 targetRoles[$fileRole])).{.$file
186c0 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 20 Name.=.(string).($child['name'].
186e0 3f 20 3a 20 24 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 ?.:.$child[0]);...$fileSource.=.
18700 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 4e 61 6d $this->combine($source,.$fileNam
18720 65 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 e);.$fileTarget.=.$this->combine
18740 28 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 ((string).$child['baseinstalldir
18760 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 69 66 20 28 '].?.:.$target,.$fileName);.if.(
18780 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 !in_array($fileRole,.self::$role
187a0 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 66 sWithoutPackageNamePrefix)).{.$f
187c0 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 2e ileTarget.=.$packageName...'/'..
187e0 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 29 .$fileTarget;.}.$result[(string)
18800 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 .$child['name']].=.array('from'.
18820 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 72 =>.$fileSource,.'to'.=>.$fileTar
18840 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b 73 get,.'role'.=>.$fileRole,.'tasks
18860 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 '.=>.array());.}.}.}..return.$re
18880 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 sult;.}..private.function.buildS
188a0 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 72 67 65 74 52 6f ourceList20($children,.$targetRo
188c0 6c 65 73 2c 20 24 73 6f 75 72 63 65 20 3d 20 27 27 2c 20 24 74 61 72 67 65 74 20 3d 20 27 27 2c les,.$source.=.'',.$target.=.'',
188e0 20 24 72 6f 6c 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 .$role.=.null,.$packageName).{.$
18900 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 result.=.array();....foreach.($c
18920 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a 69 66 20 28 27 64 69 72 27 20 hildren.as.$child).{..if.('dir'.
18940 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 64 69 72 53 6f 75 72 ==.$child->getName()).{.$dirSour
18960 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 63 68 ce.=.$this->combine($source,.$ch
18980 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c ild['name']);.$dirTarget.=.$chil
189a0 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 3b d['baseinstalldir'].?.:.$target;
189c0 0a 24 64 69 72 52 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 .$dirRole.=.$child['role'].?.:.$
189e0 72 6f 6c 65 3b 0a 24 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f role;.$dirFiles.=.$this->buildSo
18a00 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 urceList20($child->children(),.$
18a20 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 targetRoles,.$dirSource,.$dirTar
18a40 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 get,.$dirRole,.$packageName);.$r
18a60 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 esult.=.array_merge($result,.$di
18a80 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 66 69 6c 65 27 20 3d 3d 20 24 63 68 rFiles);.}.elseif.('file'.==.$ch
18aa0 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 ild->getName()).{.$fileRole.=.(s
18ac0 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b tring).$child['role'].?.:.$role;
18ae0 0a 69 66 20 28 69 73 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c .if.(isset($targetRoles[$fileRol
18b00 65 5d 29 29 20 7b 0a 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 e])).{.$fileSource.=.$this->comb
18b20 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 ine($source,.(string).$child['na
18b40 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 me']);.$fileTarget.=.$this->comb
18b60 69 6e 65 28 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c ine((string).($child['baseinstal
18b80 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 29 2c 20 28 73 74 72 69 6e 67 29 20 24 63 ldir'].?.:.$target),.(string).$c
18ba0 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 73 6b 73 20 3d 20 61 72 72 61 hild['name']);.$fileTasks.=.arra
18bc0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 27 y();.foreach.($child->children('
18be0 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 74 61 73 6b 73 2d 31 2e http://pear.php.net/dtd/tasks-1.
18c00 30 27 29 20 61 73 20 24 74 61 73 6b 4e 6f 64 65 29 20 7b 0a 69 66 20 28 27 72 65 70 6c 61 63 65 0').as.$taskNode).{.if.('replace
18c20 27 20 3d 3d 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 '.==.$taskNode->getName()).{.$fi
18c40 6c 65 54 61 73 6b 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 28 73 74 72 leTasks[].=.array('from'.=>.(str
18c60 69 6e 67 29 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 28 29 2d 3e 66 72 ing).$taskNode->attributes()->fr
18c80 6f 6d 2c 20 27 74 6f 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b 4e 6f 64 65 2d 3e om,.'to'.=>.(string).$taskNode->
18ca0 61 74 74 72 69 62 75 74 65 73 28 29 2d 3e 74 6f 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 69 6e 5f 61 attributes()->to);.}.}.if.(!in_a
18cc0 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 73 57 69 74 68 rray($fileRole,.self::$rolesWith
18ce0 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 66 69 6c 65 54 61 outPackageNamePrefix)).{.$fileTa
18d00 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 66 69 6c rget.=.$packageName...'/'...$fil
18d20 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 29 20 24 63 68 69 eTarget;.}.$result[(string).$chi
18d40 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 24 66 ld['name']].=.array('from'.=>.$f
18d60 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 72 67 65 74 2c 20 ileSource,.'to'.=>.$fileTarget,.
18d80 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b 73 27 20 3d 3e 20 'role'.=>.$fileRole,.'tasks'.=>.
18da0 24 66 69 6c 65 54 61 73 6b 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 $fileTasks);.}.}.}..return.$resu
18dc0 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 65 28 lt;.}..private.function.combine(
18de0 24 6c 65 66 74 2c 20 24 72 69 67 68 74 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6c $left,.$right).{.return.rtrim($l
18e00 65 66 74 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 72 69 67 68 74 2c 20 eft,.'/')...'/'...ltrim($right,.
18e20 27 2f 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 '/');.}.}.<?php............names
18e40 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 pace.Composer\Downloader;..use.C
18e60 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
18e80 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f ;.use.Composer\Downloader\Downlo
18ea0 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c aderInterface;.use.Composer\Util
18ec0 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 6f 77 6e 6c 6f 61 \Filesystem;.......class.Downloa
18ee0 64 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 44 69 73 74 20 3d dManager.{.private.$preferDist.=
18f00 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 .false;.private.$preferSource.=.
18f20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 false;.private.$filesystem;.priv
18f40 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a ate.$downloaders.=.array();.....
18f60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 ...public.function.__construct($
18f80 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 46 69 6c 65 73 79 73 74 65 6d preferSource.=.false,.Filesystem
18fa0 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 .$filesystem.=.null).{.$this->pr
18fc0 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 24 74 68 69 eferSource.=.$preferSource;.$thi
18fe0 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e s->filesystem.=.$filesystem.?:.n
19000 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ew.Filesystem();.}.......public.
19020 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 function.setPreferSource($prefer
19040 53 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 Source).{.$this->preferSource.=.
19060 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a $preferSource;..return.$this;.}.
19080 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 ......public.function.setPreferD
190a0 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 ist($preferDist).{.$this->prefer
190c0 44 69 73 74 20 3d 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 Dist.=.$preferDist;..return.$thi
190e0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 s;.}........public.function.setD
19100 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 65 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 ownloader($type,.DownloaderInter
19120 66 61 63 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 74 72 74 face.$downloader).{.$type.=.strt
19140 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 olower($type);.$this->downloader
19160 73 5b 24 74 79 70 65 5d 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 s[$type].=.$downloader;..return.
19180 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $this;.}...........public.functi
191a0 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 65 29 0a 7b 0a 24 74 79 70 65 20 on.getDownloader($type).{.$type.
191c0 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 =.strtolower($type);.if.(!isset(
191e0 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 $this->downloaders[$type])).{.th
19200 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
19220 6e 28 27 55 6e 6b 6e 6f 77 6e 20 64 6f 77 6e 6c 6f 61 64 65 72 20 74 79 70 65 3a 20 27 2e 24 74 n('Unknown.downloader.type:.'.$t
19240 79 70 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 ype);.}..return.$this->downloade
19260 72 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rs[$type];.}.............public.
19280 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c function.getDownloaderForInstall
192a0 65 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b edPackage(PackageInterface.$pack
192c0 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 70 61 age).{.$installationSource.=.$pa
192e0 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a ckage->getInstallationSource();.
19300 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 .if.('dist'.===.$installationSou
19320 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 rce).{.$downloader.=.$this->getD
19340 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 ownloader($package->getDistType(
19360 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 74 ));.}.elseif.('source'.===.$inst
19380 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 allationSource).{.$downloader.=.
193a0 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 $this->getDownloader($package->g
193c0 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 etSourceType());.}.else.{.throw.
193e0 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 new.\InvalidArgumentException(.'
19400 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 73 65 65 6d 73 20 6e 6f 74 20 62 Package.'.$package.'.seems.not.b
19420 65 65 6e 20 69 6e 73 74 61 6c 6c 65 64 20 70 72 6f 70 65 72 6c 79 27 0a 29 3b 0a 7d 0a 0a 69 66 een.installed.properly'.);.}..if
19440 20 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 21 3d 3d 20 24 64 6f 77 6e 6c .($installationSource.!==.$downl
19460 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 29 20 oader->getInstallationSource()).
19480 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 {.throw.new.\LogicException(spri
194a0 6e 74 66 28 0a 27 44 6f 77 6e 6c 6f 61 64 65 72 20 22 25 73 22 20 69 73 20 61 20 25 73 20 74 79 ntf(.'Downloader."%s".is.a.%s.ty
194c0 70 65 20 64 6f 77 6e 6c 6f 61 64 65 72 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 75 73 65 pe.downloader.and.can.not.be.use
194e0 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 25 73 27 2c 0a 67 65 74 5f 63 6c 61 73 73 28 24 64 6f d.to.download.%s',.get_class($do
19500 77 6e 6c 6f 61 64 65 72 29 2c 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 wnloader),.$downloader->getInsta
19520 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f llationSource(),.$installationSo
19540 75 72 63 65 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 77 6e 6c 6f 61 64 65 72 3b 0a urce.));.}..return.$downloader;.
19560 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e }...........public.function.down
19580 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 load(PackageInterface.$package,.
195a0 24 74 61 72 67 65 74 44 69 72 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e 75 6c 6c $targetDir,.$preferSource.=.null
195c0 29 0a 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e 75 6c 6c 20 21 3d 3d 20 24 70 72 ).{.$preferSource.=.null.!==.$pr
195e0 65 66 65 72 53 6f 75 72 63 65 20 3f 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3a 20 24 74 68 eferSource.?.$preferSource.:.$th
19600 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 24 73 6f 75 72 63 65 54 79 70 65 20 3d 20 is->preferSource;.$sourceType.=.
19620 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 69 73 74 $package->getSourceType();.$dist
19640 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a Type.=.$package->getDistType();.
19660 0a 69 66 20 28 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 24 74 68 69 .if.((!$package->isDev().||.$thi
19680 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 7c 7c 20 21 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 s->preferDist.||.!$sourceType).&
196a0 26 20 21 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 26 26 20 24 73 6f 75 72 63 65 54 79 70 65 &.!($preferSource.&&.$sourceType
196c0 29 20 26 26 20 24 64 69 73 74 54 79 70 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 ).&&.$distType).{.$package->setI
196e0 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 27 64 69 73 74 27 29 3b 0a 7d 20 65 6c 73 nstallationSource('dist');.}.els
19700 65 69 66 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 eif.($sourceType).{.$package->se
19720 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 27 73 6f 75 72 63 65 27 29 3b 0a 7d tInstallationSource('source');.}
19740 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 .else.{.throw.new.\InvalidArgume
19760 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e ntException('Package.'.$package.
19780 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 20 6f 72 20 64 69 73 74 20 73 70 65 '.must.have.a.source.or.dist.spe
197a0 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e cified');.}..$this->filesystem->
197c0 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 ensureDirectoryExists($targetDir
197e0 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e );..$downloader.=.$this->getDown
19800 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 loaderForInstalledPackage($packa
19820 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b ge);.$downloader->download($pack
19840 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 age,.$targetDir);.}...........pu
19860 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 blic.function.update(PackageInte
19880 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
198a0 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 .$target,.$targetDir).{.$downloa
198c0 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 der.=.$this->getDownloaderForIns
198e0 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 69 6e 73 74 61 6c talledPackage($initial);.$instal
19900 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 49 6e 73 74 lationSource.=.$initial->getInst
19920 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 27 64 69 73 74 27 20 3d 3d allationSource();..if.('dist'.==
19940 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 69 6e 69 74 69 61 =.$installationSource).{.$initia
19960 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b lType.=.$initial->getDistType();
19980 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 54 .$targetType.=.$target->getDistT
199a0 79 70 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 ype();.}.else.{.$initialType.=.$
199c0 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 initial->getSourceType();.$targe
199e0 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 tType.=.$target->getSourceType()
19a00 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 61 72 67 65 74 2d 3e 69 73 44 65 76 28 29 20 26 26 20 27 ;.}....if.($target->isDev().&&.'
19a20 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b dist'.===.$installationSource).{
19a40 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 .$downloader->remove($initial,.$
19a60 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 targetDir);.$this->download($tar
19a80 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 get,.$targetDir);..return;.}..if
19aa0 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 .($initialType.===.$targetType).
19ac0 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 {.$target->setInstallationSource
19ae0 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 ($installationSource);.$download
19b00 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 er->update($initial,.$target,.$t
19b20 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d argetDir);.}.else.{.$downloader-
19b40 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 >remove($initial,.$targetDir);.$
19b60 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 this->download($target,.$targetD
19b80 69 72 2c 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f ir,.'source'.===.$installationSo
19ba0 75 72 63 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f urce);.}.}........public.functio
19bc0 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 n.remove(PackageInterface.$packa
19be0 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 ge,.$targetDir).{.$downloader.=.
19c00 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 $this->getDownloaderForInstalled
19c20 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e Package($package);.$downloader->
19c40 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a remove($package,.$targetDir);.}.
19c60 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
19c80 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c poser\Downloader;..use.Composer\
19ca0 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a Package\PackageInterface;.......
19cc0 0a 69 6e 74 65 72 66 61 63 65 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b .interface.DownloaderInterface.{
19ce0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c ......public.function.getInstall
19d00 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ationSource();........public.fun
19d20 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ction.download(PackageInterface.
19d40 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $package,.$path);.........public
19d60 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 .function.update(PackageInterfac
19d80 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 e.$initial,.PackageInterface.$ta
19da0 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rget,.$path);........public.func
19dc0 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 tion.remove(PackageInterface.$pa
19de0 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ckage,.$path);.}.<?php..........
19e00 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b ..namespace.Composer\Downloader;
19e20 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 65 78 .....class.TransportException.ex
19e40 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 tends.\Exception.{.protected.$he
19e60 61 64 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 61 64 65 aders;..public.function.setHeade
19e80 72 73 28 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 rs($headers).{.$this->headers.=.
19ea0 24 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 $headers;.}..public.function.get
19ec0 48 65 61 64 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 61 64 65 72 Headers().{.return.$this->header
19ee0 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 s;.}.}.<?php............namespac
19f00 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 e.Composer\Downloader;.......cla
19f20 73 73 20 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 ss.PharDownloader.extends.Archiv
19f40 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 eDownloader.{....protected.funct
19f60 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 61 ion.extract($file,.$path).{...$a
19f80 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 68 rchive.=.new.\Phar($file);.$arch
19fa0 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 ive->extractTo($path,.null,.true
19fc0 29 3b 0a 0a 0a 0a 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d );......}.}.<?php............nam
19fe0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a espace.Composer\Downloader;.....
1a000 0a 0a 63 6c 61 73 73 20 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 ..class.TarDownloader.extends.Ar
1a020 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 chiveDownloader.{....protected.f
1a040 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a unction.extract($file,.$path).{.
1a060 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 66 69 6c 65 ..$archive.=.new.\PharData($file
1a080 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 );.$archive->extractTo($path,.nu
1a0a0 6c 6c 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ll,.true);.}.}.<?php............
1a0c0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a namespace.Composer\Downloader;..
1a0e0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 use.Composer\Package\PackageInte
1a100 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 rface;.....class.HgDownloader.ex
1a120 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 tends.VcsDownloader.{....public.
1a140 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 function.doDownload(PackageInter
1a160 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 65 face.$package,.$path).{.$url.=.e
1a180 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 scapeshellarg($package->getSourc
1a1a0 65 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 eUrl());.$ref.=.escapeshellarg($
1a1c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a package->getSourceReference());.
1a1e0 24 70 61 74 68 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 24 $path.=.escapeshellarg($path);.$
1a200 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 this->io->write("....Cloning.".$
1a220 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a package->getSourceReference());.
1a240 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 25 73 20 $command.=.sprintf('hg.clone.%s.
1a260 25 73 20 26 26 20 63 64 20 25 32 24 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 75 72 6c %s.&&.cd.%2$s.&&.hg.up.%s',.$url
1a280 2c 20 24 70 61 74 68 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d ,.$path,.$ref);.if.(0.!==.$this-
1a2a0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e >process->execute($command,.$ign
1a2c0 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d oredOutput)).{.throw.new.\Runtim
1a2e0 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 eException('Failed.to.execute.'.
1a300 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f ..$command..."\n\n"...$this->pro
1a320 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a cess->getErrorOutput());.}.}....
1a340 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 .public.function.doUpdate(Packag
1a360 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 eInterface.$initial,.PackageInte
1a380 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 65 rface.$target,.$path).{.$url.=.e
1a3a0 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 scapeshellarg($target->getSource
1a3c0 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 Url());.$ref.=.escapeshellarg($t
1a3e0 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 70 arget->getSourceReference());.$p
1a400 61 74 68 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 24 74 68 ath.=.escapeshellarg($path);.$th
1a420 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 55 70 64 61 74 69 6e 67 20 74 6f 20 22 is->io->write("....Updating.to."
1a440 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b .$target->getSourceReference());
1a460 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 .$command.=.sprintf('cd.%s.&&.hg
1a480 20 70 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 70 61 74 68 2c 20 24 75 .pull.%s.&&.hg.up.%s',.$path,.$u
1a4a0 72 6c 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 rl,.$ref);.if.(0.!==.$this->proc
1a4c0 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f ess->execute($command,.$ignoredO
1a4e0 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 utput)).{.throw.new.\RuntimeExce
1a500 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f ption('Failed.to.execute.'...$co
1a520 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d mmand..."\n\n"...$this->process-
1a540 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c >getErrorOutput());.}.}.....publ
1a560 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 74 ic.function.getLocalChanges($pat
1a580 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 h).{.$this->process->execute(spr
1a5a0 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 73 74 27 2c 20 65 73 63 61 70 65 73 68 65 intf('cd.%s.&&.hg.st',.escapeshe
1a5c0 6c 6c 61 72 67 28 24 70 61 74 68 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e llarg($path)),.$output);..return
1a5e0 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 .trim($output).?:.null;.}.....pr
1a600 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 otected.function.getCommitLogs($
1a620 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 fromReference,.$toReference,.$pa
1a640 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 th).{.$command.=.sprintf('cd.%s.
1a660 26 26 20 68 67 20 6c 6f 67 20 2d 72 20 25 73 3a 25 73 20 2d 2d 73 74 79 6c 65 20 63 6f 6d 70 61 &&.hg.log.-r.%s:%s.--style.compa
1a680 63 74 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 24 66 72 6f ct',.escapeshellarg($path),.$fro
1a6a0 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 mReference,.$toReference);..if.(
1a6c0 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 0.!==.$this->process->execute($c
1a6e0 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 ommand,.$output)).{.throw.new.\R
1a700 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 untimeException('Failed.to.execu
1a720 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 te.'...$command..."\n\n"...$this
1a740 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a ->process->getErrorOutput());.}.
1a760 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .return.$output;.}.}.<?php......
1a780 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 ......namespace.Composer\Downloa
1a7a0 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 der;..use.Composer\Package\Packa
1a7c0 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c geInterface;.........abstract.cl
1a7e0 61 73 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 46 69 ass.ArchiveDownloader.extends.Fi
1a800 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f leDownloader.{....public.functio
1a820 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 n.download(PackageInterface.$pac
1a840 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 64 6f 77 6e 6c 6f 61 64 28 kage,.$path).{.parent::download(
1a860 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 $package,.$path);..$fileName.=.$
1a880 74 68 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 this->getFileName($package,.$pat
1a8a0 68 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 h);.if.($this->io->isVerbose()).
1a8c0 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 55 6e 70 61 63 6b 69 6e {.$this->io->write('....Unpackin
1a8e0 67 20 61 72 63 68 69 76 65 27 29 3b 0a 7d 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 g.archive');.}.try.{.$this->extr
1a900 61 63 74 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 24 74 68 69 act($fileName,.$path);..if.($thi
1a920 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d s->io->isVerbose()).{.$this->io-
1a940 3e 77 72 69 74 65 28 27 20 20 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 75 6e 6c >write('....Cleaning.up');.}.unl
1a960 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d ink($fileName);....$contentDir.=
1a980 20 67 6c 6f 62 28 24 70 61 74 68 20 2e 20 27 2f 2a 27 29 3b 0a 69 66 20 28 31 20 3d 3d 3d 20 63 .glob($path...'/*');.if.(1.===.c
1a9a0 6f 75 6e 74 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 44 69 72 ount($contentDir)).{.$contentDir
1a9c0 20 3d 20 24 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 3b 0a 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 .=.$contentDir[0];..if.(is_file(
1a9e0 24 63 6f 6e 74 65 6e 74 44 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 $contentDir)).{.$this->filesyste
1aa00 6d 2d 3e 72 65 6e 61 6d 65 28 24 63 6f 6e 74 65 6e 74 44 69 72 2c 20 24 70 61 74 68 20 2e 20 27 m->rename($contentDir,.$path...'
1aa20 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 29 3b 0a 7d 20 65 /'...basename($contentDir));.}.e
1aa40 6c 73 65 20 7b 0a 0a 20 0a 20 24 74 65 6d 70 6f 72 61 72 79 44 69 72 20 3d 20 73 79 73 5f 67 65 lse.{.....$temporaryDir.=.sys_ge
1aa60 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 27 2e 6d 64 35 28 74 69 6d 65 28 29 2e 72 61 6e 64 t_temp_dir().'/'.md5(time().rand
1aa80 28 29 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 ());.$this->filesystem->rename($
1aaa0 63 6f 6e 74 65 6e 74 44 69 72 2c 20 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 24 63 6f 6e contentDir,.$temporaryDir);.$con
1aac0 74 65 6e 74 44 69 72 20 3d 20 24 74 65 6d 70 6f 72 61 72 79 44 69 72 3b 0a 0a 66 6f 72 65 61 63 tentDir.=.$temporaryDir;..foreac
1aae0 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 28 67 6c 6f 62 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 h.(array_merge(glob($contentDir.
1ab00 2e 20 27 2f 2e 2a 27 29 2c 20 67 6c 6f 62 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 2e 20 27 2f 2a ..'/.*'),.glob($contentDir...'/*
1ab20 27 29 29 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 74 72 69 6d 28 62 61 73 65 6e 61 6d ')).as.$file).{.if.(trim(basenam
1ab40 65 28 24 66 69 6c 65 29 2c 20 27 2e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 e($file),.'.')).{.$this->filesys
1ab60 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 68 20 2e 20 27 2f 27 20 2e tem->rename($file,.$path...'/'..
1ab80 20 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 .basename($file));.}.}..$this->f
1aba0 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 63 6f 6e 74 ilesystem->removeDirectory($cont
1abc0 65 6e 74 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e entDir);.}.}.}.catch.(\Exception
1abe0 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f .$e).{...$this->filesystem->remo
1ac00 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a veDirectory($path);.throw.$e;.}.
1ac20 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f .$this->io->write('');.}.....pro
1ac40 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b tected.function.getFileName(Pack
1ac60 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a ageInterface.$package,.$path).{.
1ac80 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e 6d 64 35 28 24 70 61 74 68 return.rtrim($path.'/'.md5($path
1aca0 2e 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 67 65 29 29 2e 27 2e 27 2e .spl_object_hash($package)).'.'.
1acc0 70 61 74 68 69 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c pathinfo($package->getDistUrl(),
1ace0 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 2e 27 29 3b 0a 7d 0a 0a 0a .PATHINFO_EXTENSION),.'.');.}...
1ad00 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 ..protected.function.processUrl(
1ad20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 PackageInterface.$package,.$url)
1ad40 0a 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 .{...if.($package->getDistRefere
1ad60 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f nce().&&.preg_match('{^https?://
1ad80 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b (?:www\.)?github\.com/([^/]+)/([
1ada0 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 2f 28 2e 2b 29 24 7d 69 27 2c 20 24 75 ^/]+)/(zip|tar)ball/(.+)$}i',.$u
1adc0 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 67 rl,.$match)).{.$url.=.'https://g
1ade0 69 74 68 75 62 2e 63 6f 6d 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 ithub.com/'...$match[1]...'/'..$
1ae00 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 match[2]...'/'...$match[3]...'ba
1ae20 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 ll/'...$package->getDistReferenc
1ae40 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 e();.}..if.($package->getDistRef
1ae60 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f erence().&&.preg_match('{^https?
1ae80 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 ://(?:www\.)?github\.com/([^/]+)
1aea0 2f 28 5b 5e 2f 5d 2b 29 2f 61 72 63 68 69 76 65 2f 2e 2b 5c 2e 28 7a 69 70 7c 74 61 72 5c 2e 67 /([^/]+)/archive/.+\.(zip|tar\.g
1aec0 7a 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 z)$}i',.$url,.$match)).{.$url.=.
1aee0 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 'https://github.com/'...$match[1
1af00 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 61 72 63 68 69 76 65 2f 27 ]...'/'..$match[2]...'/archive/'
1af20 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 ...$package->getDistReference().
1af40 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e ..'.'...$match[3];.}..if.(!exten
1af60 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 28 30 20 3d 3d 3d sion_loaded('openssl').&&.(0.===
1af80 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 73 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d .strpos($url,.'https:').||.0.===
1afa0 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d .strpos($url,.'http://github.com
1afc0 27 29 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 '))).{...if.(preg_match('{^https
1afe0 3f 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b 29 2f 28 7a 69 ?://github.com/([^/]+/[^/]+)/(zi
1b000 70 7c 74 61 72 29 62 61 6c 6c 2f 28 5b 5e 2f 5d 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d p|tar)ball/([^/]+)$}i',.$url,.$m
1b020 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 6e 6f 64 65 6c 6f 61 64 atch)).{.$url.=.'http://nodeload
1b040 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 .github.com/'.$match[1].'/'.$mat
1b060 63 68 5b 32 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 ch[2].'/'.$match[3];.}.elseif.(p
1b080 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d reg_match('{^https?://github.com
1b0a0 2f 28 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b 29 2f 61 72 63 68 69 76 65 2f 28 5b 5e 2f 5d 2b 29 5c 2e /([^/]+/[^/]+)/archive/([^/]+)\.
1b0c0 28 7a 69 70 7c 74 61 72 5c 2e 67 7a 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 (zip|tar\.gz)$}i',.$url,.$match)
1b0e0 29 20 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 6e 6f 64 65 6c 6f 61 64 2e 67 69 74 68 ).{.$url.=.'http://nodeload.gith
1b100 75 62 2e 63 6f 6d 2f 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d ub.com/'.$match[1].'/'.$match[3]
1b120 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e .'/'.$match[2];.}.else.{.throw.n
1b140 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 ew.\RuntimeException('You.must.e
1b160 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 nable.the.openssl.extension.to.d
1b180 6f 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 7d 0a 0a ownload.files.via.https');.}.}..
1b1a0 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 return.parent::processUrl($packa
1b1c0 67 65 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 ge,.$url);.}..........abstract.p
1b1e0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c rotected.function.extract($file,
1b200 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 .$path);.}.<?php............name
1b220 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 space.Composer\Downloader;..use.
1b240 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 Composer\Config;.use.Composer\Ut
1b260 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 il\ProcessExecutor;.use.Composer
1b280 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 5a 69 70 41 72 63 68 69 76 65 3b \IO\IOInterface;.use.ZipArchive;
1b2a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 .....class.ZipDownloader.extends
1b2c0 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 .ArchiveDownloader.{.protected.$
1b2e0 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 process;..public.function.__cons
1b300 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 truct(IOInterface.$io,.Config.$c
1b320 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 onfig,.ProcessExecutor.$process.
1b340 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 =.null).{.$this->process.=.$proc
1b360 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 70 61 72 65 ess.?:.new.ProcessExecutor;.pare
1b380 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d nt::__construct($io,.$config);.}
1b3a0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 ..protected.function.extract($fi
1b3c0 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 le,.$path).{.if.(!class_exists('
1b3e0 5a 69 70 41 72 63 68 69 76 65 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 27 59 6f 75 20 6e 65 ZipArchive')).{.$error.=.'You.ne
1b400 65 64 20 74 68 65 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 65 6e 61 62 6c 65 64 20 74 6f 20 ed.the.zip.extension.enabled.to.
1b420 75 73 65 20 74 68 65 20 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 27 3b 0a 0a 0a 20 69 66 20 28 21 use.the.ZipDownloader';....if.(!
1b440 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
1b460 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 7a 69 70 20 27 2e 65 73 63 61 LD')).{.$command.=.'unzip.'.esca
1b480 70 65 73 68 65 6c 6c 61 72 67 28 24 66 69 6c 65 29 2e 27 20 2d 64 20 27 2e 65 73 63 61 70 65 73 peshellarg($file).'.-d.'.escapes
1b4a0 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d hellarg($path);.if.(0.===.$this-
1b4c0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e >process->execute($command,.$ign
1b4e0 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 72 72 6f 72 oredOutput)).{.return;.}..$error
1b500 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 .=."Could.not.decompress.the.arc
1b520 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 hive,.enable.the.PHP.zip.extensi
1b540 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 2e 0a 27 46 61 69 6c 65 64 on.or.install.unzip.\n"..'Failed
1b560 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e .to.execute.'...$command..."\n\n
1b580 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 "...$this->process->getErrorOutp
1b5a0 75 74 28 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 ut();.}..throw.new.\RuntimeExcep
1b5c0 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e tion($error);.}..$zipArchive.=.n
1b5e0 65 77 20 5a 69 70 41 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 ew.ZipArchive();..if.(true.!==.(
1b600 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c $retval.=.$zipArchive->open($fil
1b620 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 e))).{.throw.new.\UnexpectedValu
1b640 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 eException($this->getErrorMessag
1b660 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 e($retval,.$file));.}..if.(true.
1b680 21 3d 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 !==.$zipArchive->extractTo($path
1b6a0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e )).{.throw.new.\RuntimeException
1b6c0 28 22 54 68 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 ("There.was.an.error.extracting.
1b6e0 74 68 65 20 5a 49 50 20 66 69 6c 65 2e 20 43 6f 72 72 75 70 74 20 66 69 6c 65 3f 22 29 3b 0a 7d the.ZIP.file..Corrupt.file?");.}
1b700 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ..$zipArchive->close();.}.......
1b720 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4d 65 73 ..protected.function.getErrorMes
1b740 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 sage($retval,.$file).{.switch.($
1b760 72 65 74 76 61 6c 29 20 7b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 45 58 retval).{.case.ZipArchive::ER_EX
1b780 49 53 54 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 46 69 6c 65 20 27 25 73 27 20 ISTS:.return.sprintf("File.'%s'.
1b7a0 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a already.exists.",.$file);.case.Z
1b7c0 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 49 4e 43 4f 4e 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 ipArchive::ER_INCONS:.return.spr
1b7e0 69 6e 74 66 28 22 5a 69 70 20 61 72 63 68 69 76 65 20 27 25 73 27 20 69 73 20 69 6e 63 6f 6e 73 intf("Zip.archive.'%s'.is.incons
1b800 69 73 74 65 6e 74 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 istent.",.$file);.case.ZipArchiv
1b820 65 3a 3a 45 52 5f 49 4e 56 41 4c 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 49 6e 76 e::ER_INVAL:.return.sprintf("Inv
1b840 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 alid.argument.(%s)",.$file);.cas
1b860 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4d 45 4d 4f 52 59 3a 0a 72 65 74 75 72 6e 20 e.ZipArchive::ER_MEMORY:.return.
1b880 73 70 72 69 6e 74 66 28 22 4d 61 6c 6c 6f 63 20 66 61 69 6c 75 72 65 20 28 25 73 29 22 2c 20 24 sprintf("Malloc.failure.(%s)",.$
1b8a0 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 45 4e 54 file);.case.ZipArchive::ER_NOENT
1b8c0 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 4e 6f 20 73 75 63 68 20 7a 69 70 20 66 69 :.return.sprintf("No.such.zip.fi
1b8e0 6c 65 3a 20 27 25 73 27 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 le:.'%s'",.$file);.case.ZipArchi
1b900 76 65 3a 3a 45 52 5f 4e 4f 5a 49 50 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 ve::ER_NOZIP:.return.sprintf("'%
1b920 73 27 20 69 73 20 6e 6f 74 20 61 20 7a 69 70 20 61 72 63 68 69 76 65 2e 22 2c 20 24 66 69 6c 65 s'.is.not.a.zip.archive.",.$file
1b940 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4f 50 45 4e 3a 0a 72 65 74 );.case.ZipArchive::ER_OPEN:.ret
1b960 75 72 6e 20 73 70 72 69 6e 74 66 28 22 43 61 6e 27 74 20 6f 70 65 6e 20 7a 69 70 20 66 69 6c 65 urn.sprintf("Can't.open.zip.file
1b980 3a 20 25 73 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a :.%s",.$file);.case.ZipArchive::
1b9a0 45 52 5f 52 45 41 44 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 72 65 61 ER_READ:.return.sprintf("Zip.rea
1b9c0 64 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 d.error.(%s)",.$file);.case.ZipA
1b9e0 72 63 68 69 76 65 3a 3a 45 52 5f 53 45 45 4b 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 rchive::ER_SEEK:.return.sprintf(
1ba00 22 5a 69 70 20 73 65 65 6b 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 64 "Zip.seek.error.(%s)",.$file);.d
1ba20 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 efault:.return.sprintf("'%s'.is.
1ba40 6e 6f 74 20 61 20 76 61 6c 69 64 20 7a 69 70 20 61 72 63 68 69 76 65 2c 20 67 6f 74 20 65 72 72 not.a.valid.zip.archive,.got.err
1ba60 6f 72 20 63 6f 64 65 3a 20 25 73 22 2c 20 24 66 69 6c 65 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d or.code:.%s",.$file,.$retval);.}
1ba80 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
1baa0 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 Composer\Downloader;..use.Compos
1bac0 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 er\Package\PackageInterface;.use
1bae0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 .Composer\Util\GitHub;.....class
1bb00 20 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f .GitDownloader.extends.VcsDownlo
1bb20 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 ader.{.private.$hasStashedChange
1bb40 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 s.=.false;.....public.function.d
1bb60 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b oDownload(PackageInterface.$pack
1bb80 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 age,.$path).{.$ref.=.$package->g
1bba0 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 etSourceReference();.$command.=.
1bbc0 27 67 69 74 20 63 6c 6f 6e 65 20 25 73 20 25 73 20 26 26 20 63 64 20 25 32 24 73 20 26 26 20 67 'git.clone.%s.%s.&&.cd.%2$s.&&.g
1bbe0 69 74 20 72 65 6d 6f 74 65 20 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 20 26 26 20 67 it.remote.add.composer.%1$s.&&.g
1bc00 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 it.fetch.composer';.$this->io->w
1bc20 72 69 74 65 28 22 20 20 20 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 72 65 66 29 3b 0a 0a 0a 20 70 75 rite("....Cloning.".$ref);....pu
1bc40 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 41 53 53 3d 65 63 68 6f 27 29 3b 0a 24 63 6f 6d 6d 61 tenv('GIT_ASKPASS=echo');.$comma
1bc60 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 24 75 72 6c 29 20 75 73 65 20 ndCallable.=.function($url).use.
1bc80 28 24 72 65 66 2c 20 24 70 61 74 68 2c 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e ($ref,.$path,.$command).{.return
1bca0 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 .sprintf($command,.escapeshellar
1bcc0 67 28 24 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 g($url),.escapeshellarg($path),.
1bce0 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 66 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 escapeshellarg($ref));.};..$this
1bd00 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 ->runCommand($commandCallable,.$
1bd20 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 29 3b package->getSourceUrl(),.$path);
1bd40 0a 24 74 68 69 73 2d 3e 73 65 74 50 75 73 68 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 .$this->setPushUrl($package,.$pa
1bd60 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 th);..$this->updateToCommit($pat
1bd80 68 2c 20 24 72 65 66 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 h,.$ref,.$package->getPrettyVers
1bda0 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 ion(),.$package->getReleaseDate(
1bdc0 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 ));.}.....public.function.doUpda
1bde0 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 te(PackageInterface.$initial,.Pa
1be00 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b ckageInterface.$target,.$path).{
1be20 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .$ref.=.$target->getSourceRefere
1be40 6e 63 65 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 nce();.$this->io->write("....Che
1be60 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 72 65 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 63 cking.out.".$ref);.$command.=.'c
1be80 64 20 25 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 63 6f 6d 70 6f d.%s.&&.git.remote.set-url.compo
1bea0 73 65 72 20 25 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 20 26 26 20 ser.%s.&&.git.fetch.composer.&&.
1bec0 67 69 74 20 66 65 74 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 69 66 20 git.fetch.--tags.composer';..if.
1bee0 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 (!$this->io->hasAuthorization('g
1bf00 69 74 68 75 62 2e 63 6f 6d 27 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d ithub.com')).{...$this->process-
1bf20 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 72 >execute(sprintf('cd.%s.&&.git.r
1bf40 65 6d 6f 74 65 20 2d 76 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 emote.-v',.escapeshellarg($path)
1bf60 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 ),.$output);.if.(preg_match('{^c
1bf80 6f 6d 70 6f 73 65 72 5c 73 2b 68 74 74 70 73 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 67 69 74 68 omposer\s+https://(.+):(.+)@gith
1bfa0 75 62 2e 63 6f 6d 2f 7d 69 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b ub.com/}im',.$output,.$match)).{
1bfc0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 .$this->io->setAuthorization('gi
1bfe0 74 68 75 62 2e 63 6f 6d 27 2c 20 24 6d 61 74 63 68 5b 31 5d 2c 20 24 6d 61 74 63 68 5b 32 5d 29 thub.com',.$match[1],.$match[2])
1c000 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 ;.}.}..$commandCallable.=.functi
1c020 6f 6e 28 24 75 72 6c 29 20 75 73 65 20 28 24 72 65 66 2c 20 24 70 61 74 68 2c 20 24 63 6f 6d 6d on($url).use.($ref,.$path,.$comm
1c040 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 and).{.return.sprintf($command,.
1c060 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 2c 20 65 73 63 61 70 65 73 68 65 escapeshellarg($path),.escapeshe
1c080 6c 6c 61 72 67 28 24 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 66 llarg($url),.escapeshellarg($ref
1c0a0 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 ));.};..$this->runCommand($comma
1c0c0 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 ndCallable,.$target->getSourceUr
1c0e0 6c 28 29 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 l());.$this->updateToCommit($pat
1c100 68 2c 20 24 72 65 66 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 h,.$ref,.$target->getPrettyVersi
1c120 6f 6e 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 on(),.$target->getReleaseDate())
1c140 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c ;.}.....public.function.getLocal
1c160 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 Changes($path).{.$command.=.spri
1c180 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 ntf('cd.%s.&&.git.status.--porce
1c1a0 6c 61 69 6e 20 2d 2d 75 6e 74 72 61 63 6b 65 64 2d 66 69 6c 65 73 3d 6e 6f 27 2c 20 65 73 63 61 lain.--untracked-files=no',.esca
1c1c0 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 peshellarg($path));.if.(0.!==.$t
1c1e0 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 his->process->execute($command,.
1c200 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 $output)).{.throw.new.\RuntimeEx
1c220 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 ception('Failed.to.execute.'...$
1c240 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 command..."\n\n"...$this->proces
1c260 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 s->getErrorOutput());.}..return.
1c280 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f trim($output).?:.null;.}.....pro
1c2a0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 tected.function.cleanChanges($pa
1c2c0 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 th,.$update).{.if.(!$this->io->i
1c2e0 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a sInteractive()).{.return.parent:
1c300 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d :cleanChanges($path,.$update);.}
1c320 0a 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 ..if.(!$changes.=.$this->getLoca
1c340 6c 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 lChanges($path)).{.return;.}..$c
1c360 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c hanges.=.array_map(function.($el
1c380 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 em).{.return.'....'.$elem;.},.pr
1c3a0 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 eg_split('{\s*\r?\n\s*}',.$chang
1c3c0 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 65 72 72 es));.$this->io->write('....<err
1c3e0 6f 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 or>The.package.has.modified.file
1c400 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 s:</error>');.$this->io->write(a
1c420 72 72 61 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 rray_slice($changes,.0,.10));.if
1c440 20 28 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d .(count($changes).>.10).{.$this-
1c460 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 >io->write('....<info>'.count($c
1c480 68 61 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 hanges).-.10...'.more.files.modi
1c4a0 66 69 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c fied,.choose."v".to.view.the.ful
1c4c0 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 l.list</info>');.}..while.(true)
1c4e0 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c .{.switch.($this->io->ask('....<
1c500 69 6e 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 27 2e 28 24 info>Discard.changes.[y,n,v,'.($
1c520 75 70 64 61 74 65 20 3f 20 27 73 2c 27 20 3a 20 27 27 29 2e 27 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 update.?.'s,'.:.'').'?]?</info>.
1c540 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 69 66 20 28 30 20 21 3d 3d 20 24 ',.'?')).{.case.'y':.if.(0.!==.$
1c560 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 73 65 this->process->execute('git.rese
1c580 74 20 2d 2d 68 61 72 64 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 t.--hard',.$output,.$path)).{.th
1c5a0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 row.new.\RuntimeException("Could
1c5c0 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e .not.reset.changes\n\n:".$this->
1c5e0 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 62 72 process->getErrorOutput());.}.br
1c600 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 73 27 3a 0a 69 66 20 28 21 24 75 70 64 61 74 65 29 20 eak.2;..case.'s':.if.(!$update).
1c620 7b 0a 67 6f 74 6f 20 68 65 6c 70 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d {.goto.help;.}..if.(0.!==.$this-
1c640 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 27 2c 20 24 >process->execute('git.stash',.$
1c660 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e output,.$path)).{.throw.new.\Run
1c680 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 73 74 61 73 68 20 63 timeException("Could.not.stash.c
1c6a0 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 hanges\n\n:".$this->process->get
1c6c0 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 ErrorOutput());.}..$this->hasSta
1c6e0 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 shedChanges.=.true;.break.2;..ca
1c700 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 se.'n':.throw.new.\RuntimeExcept
1c720 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 27 ion('Update.aborted');..case.'v'
1c740 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 :.$this->io->write($changes);.br
1c760 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 68 65 6c 70 3a 0a 24 eak;..case.'?':.default:.help:.$
1c780 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 this->io->write(array(.'....y.-.
1c7a0 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e discard.changes.and.apply.the.'.
1c7c0 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c ($update.?.'update'.:.'uninstall
1c7e0 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 '),.'....n.-.abort.the.'.($updat
1c800 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e e.?.'update'.:.'uninstall').'.an
1c820 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 d.let.you.manually.clean.things.
1c840 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 up',.'....v.-.view.modified.file
1c860 73 27 2c 0a 29 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f s',.));.if.($update).{.$this->io
1c880 2d 3e 77 72 69 74 65 28 27 20 20 20 20 73 20 2d 20 73 74 61 73 68 20 63 68 61 6e 67 65 73 20 61 ->write('....s.-.stash.changes.a
1c8a0 6e 64 20 74 72 79 20 74 6f 20 72 65 61 70 70 6c 79 20 74 68 65 6d 20 61 66 74 65 72 20 74 68 65 nd.try.to.reapply.them.after.the
1c8c0 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 .update');.}.$this->io->write('.
1c8e0 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a ...?.-.print.help');.break;.}.}.
1c900 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 }.....protected.function.reapply
1c920 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 Changes($path).{.if.($this->hasS
1c940 74 61 73 68 65 64 43 68 61 6e 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 tashedChanges).{.$this->hasStash
1c960 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 edChanges.=.false;.$this->io->wr
1c980 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f 3e 52 65 2d 61 70 70 6c 79 69 6e 67 20 73 74 61 73 68 ite('....<info>Re-applying.stash
1c9a0 65 64 20 63 68 61 6e 67 65 73 27 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 ed.changes');.if.(0.!==.$this->p
1c9c0 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 20 70 6f 70 27 2c rocess->execute('git.stash.pop',
1c9e0 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 .$output,.$path)).{.throw.new.\R
1ca00 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 46 61 69 6c 65 64 20 74 6f 20 61 70 70 6c 79 untimeException("Failed.to.apply
1ca20 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 3a 5c 6e 5c 6e 22 2e 24 74 68 69 73 2d 3e 70 72 .stashed.changes:\n\n".$this->pr
1ca40 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a ocess->getErrorOutput());.}.}.}.
1ca60 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 43 6f 6d 6d .protected.function.updateToComm
1ca80 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c 20 24 it($path,.$reference,.$branch,.$
1caa0 64 61 74 65 29 0a 7b 0a 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 date).{.$template.=.'git.checkou
1cac0 74 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 31 24 73 27 3b 0a t.%s.&&.git.reset.--hard.%1$s';.
1cae0 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 5e 64 65 76 $branch.=.preg_replace('{(?:^dev
1cb00 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 -|(?:\.x)?-dev$)}i',.'',.$branch
1cb20 29 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 );..$branches.=.null;.if.(0.===.
1cb40 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 $this->process->execute('git.bra
1cb60 6e 63 68 20 2d 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 nch.-r',.$output,.$path)).{.$bra
1cb80 6e 63 68 65 73 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 nches.=.$output;.}....$gitRef.=.
1cba0 24 72 65 66 65 72 65 6e 63 65 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b $reference;.if.(!preg_match('{^[
1cbc0 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 0a 26 26 20 24 a-f0-9]{40}$}',.$reference).&&.$
1cbe0 62 72 61 6e 63 68 65 73 0a 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d branches.&&.preg_match('{^\s+com
1cc00 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 72 65 66 65 72 65 6e 63 65 29 2e 27 poser/'.preg_quote($reference).'
1cc20 24 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 $}m',.$output).).{.$command.=.sp
1cc40 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 20 26 26 20 rintf('git.checkout.-B.%s.%s.&&.
1cc60 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 32 24 73 27 2c 20 65 73 63 61 70 65 73 68 git.reset.--hard.%2$s',.escapesh
1cc80 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 ellarg($branch),.escapeshellarg(
1cca0 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 'composer/'.$reference));.if.(0.
1ccc0 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d ===.$this->process->execute($com
1cce0 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b mand,.$output,.$path)).{.return;
1cd00 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d .}.}....if.(preg_match('{^[a-f0-
1cd20 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 9]{40}$}',.$reference)).{...if.(
1cd40 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 !preg_match('{^\s+composer/'.pre
1cd60 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 g_quote($branch).'$}m',.$branche
1cd80 73 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f s).&&.preg_match('{^\s+composer/
1cda0 76 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 v'.preg_quote($branch).'$}m',.$b
1cdc0 72 61 6e 63 68 65 73 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 27 76 27 20 2e 20 24 62 72 61 ranches)).{.$branch.=.'v'...$bra
1cde0 6e 63 68 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 nch;.}..$command.=.sprintf('git.
1ce00 63 68 65 63 6b 6f 75 74 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 checkout.%s',.escapeshellarg($br
1ce20 61 6e 63 68 29 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e anch));.$fallbackCommand.=.sprin
1ce40 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 27 2c 20 65 73 63 61 tf('git.checkout.-B.%s.%s',.esca
1ce60 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c peshellarg($branch),.escapeshell
1ce80 61 72 67 28 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 62 72 61 6e 63 68 29 29 3b 0a 69 66 20 28 30 arg('composer/'.$branch));.if.(0
1cea0 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f .===.$this->process->execute($co
1cec0 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 7c 7c 20 30 20 3d 3d 3d 20 mmand,.$output,.$path).||.0.===.
1cee0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 66 61 6c 6c 62 61 63 $this->process->execute($fallbac
1cf00 6b 43 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 29 20 7b 0a 24 63 kCommand,.$output,.$path).).{.$c
1cf20 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 ommand.=.sprintf('git.reset.--ha
1cf40 72 64 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 66 65 72 65 6e 63 rd.%s',.escapeshellarg($referenc
1cf60 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 e));.if.(0.===.$this->process->e
1cf80 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 xecute($command,.$output,.$path)
1cfa0 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 ).{.return;.}.}.}..$command.=.sp
1cfc0 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 rintf($template,.escapeshellarg(
1cfe0 24 67 69 74 52 65 66 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 $gitRef));.if.(0.===.$this->proc
1d000 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 ess->execute($command,.$output,.
1d020 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 64 61 74 65 $path)).{.return;.}....if.($date
1d040 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 .&&.false.!==.strpos($this->proc
1d060 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 72 65 66 65 72 65 6e 63 ess->getErrorOutput(),.$referenc
1d080 65 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 e)).{.$date.=.$date->format('U')
1d0a0 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 3b ;....$command.=.'git.branch.-r';
1d0c0 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 .if.(0.!==.$this->process->execu
1d0e0 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a te($command,.$output,.$path)).{.
1d100 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 throw.new.\RuntimeException('Fai
1d120 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c led.to.execute.'...$command..."\
1d140 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f n\n"...$this->process->getErrorO
1d160 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 67 75 65 73 73 54 65 6d 70 6c 61 74 65 20 3d 20 27 67 utput());.}..$guessTemplate.=.'g
1d180 69 74 20 6c 6f 67 20 2d 2d 75 6e 74 69 6c 3d 25 73 20 2d 2d 64 61 74 65 3d 72 61 77 20 2d 6e 31 it.log.--until=%s.--date=raw.-n1
1d1a0 20 2d 2d 70 72 65 74 74 79 3d 25 25 48 20 25 73 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 .--pretty=%%H.%s';.foreach.($thi
1d1c0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 s->process->splitLines($output).
1d1e0 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f as.$line).{.if.(preg_match('{^co
1d200 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 28 3f mposer/'.preg_quote($branch).'(?
1d220 3a 5c 2e 78 29 3f 24 7d 69 27 2c 20 74 72 69 6d 28 24 6c 69 6e 65 29 29 29 20 7b 0a 0a 20 69 66 :\.x)?$}i',.trim($line))).{...if
1d240 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.===.$this->process->execute(
1d260 73 70 72 69 6e 74 66 28 24 67 75 65 73 73 54 65 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 65 sprintf($guessTemplate,.$date,.e
1d280 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 74 72 69 6d 28 24 6c 69 6e 65 29 29 29 2c 20 24 6f 75 scapeshellarg(trim($line))),.$ou
1d2a0 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 6e 65 77 52 65 66 65 72 65 6e 63 65 20 3d 20 tput,.$path)).{.$newReference.=.
1d2c0 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 trim($output);.}..break;.}.}..if
1d2e0 20 28 65 6d 70 74 79 28 24 6e 65 77 52 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 .(empty($newReference)).{...if.(
1d300 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 0.!==.$this->process->execute(sp
1d320 72 69 6e 74 66 28 24 67 75 65 73 73 54 65 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 27 2d 2d rintf($guessTemplate,.$date,.'--
1d340 61 6c 6c 27 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 all'),.$output,.$path)).{.throw.
1d360 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f new.\RuntimeException('Failed.to
1d380 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 .execute.'...$this->sanitizeUrl(
1d3a0 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 $command)..."\n\n"...$this->proc
1d3c0 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 6e 65 77 52 65 ess->getErrorOutput());.}.$newRe
1d3e0 66 65 72 65 6e 63 65 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 ference.=.trim($output);.}....$c
1d400 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 65 73 63 61 ommand.=.sprintf($template,.esca
1d420 70 65 73 68 65 6c 6c 61 72 67 28 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d peshellarg($reference));.if.(0.=
1d440 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d ==.$this->process->execute($comm
1d460 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 and,.$output,.$path)).{.$this->i
1d480 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 27 2e 24 72 65 66 65 72 65 6e 63 65 2e 27 20 69 73 20 o->write('....'.$reference.'.is.
1d4a0 67 6f 6e 65 20 28 68 69 73 74 6f 72 79 20 77 61 73 20 72 65 77 72 69 74 74 65 6e 3f 29 2c 20 72 gone.(history.was.rewritten?),.r
1d4c0 65 63 6f 76 65 72 65 64 20 62 79 20 63 68 65 63 6b 69 6e 67 20 6f 75 74 20 27 2e 24 6e 65 77 52 ecovered.by.checking.out.'.$newR
1d4e0 65 66 65 72 65 6e 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e eference);..return;.}.}..throw.n
1d500 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 ew.\RuntimeException('Failed.to.
1d520 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 execute.'...$this->sanitizeUrl($
1d540 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 command)..."\n\n"...$this->proce
1d560 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ss->getErrorOutput());.}........
1d580 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 43 6f 6d 6d 61 6e 64 28 ..protected.function.runCommand(
1d5a0 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 $commandCallable,.$url,.$path.=.
1d5c0 6e 75 6c 6c 29 0a 7b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 null).{.$handler.=.array($this,.
1d5e0 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 27 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 'outputHandler');....if.(preg_ma
1d600 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 28 3a 2f 2f 67 69 74 68 75 62 2e tch('{^(?:https?|git)(://github.
1d620 63 6f 6d 2f 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 6f com/.*)}',.$url,.$match)).{.$pro
1d640 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 tocols.=.$this->config->get('git
1d660 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 hub-protocols');.if.(!is_array($
1d680 70 72 6f 74 6f 63 6f 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 protocols)).{.throw.new.\Runtime
1d6a0 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6e 66 69 67 20 76 61 6c 75 65 20 22 67 69 74 68 75 62 2d Exception('Config.value."github-
1d6c0 70 72 6f 74 6f 63 6f 6c 73 22 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 67 6f 74 protocols".must.be.an.array,.got
1d6e0 20 27 2e 67 65 74 74 79 70 65 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 3b 0a 7d 0a 24 6d 65 73 73 .'.gettype($protocols));.}.$mess
1d700 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 74 6f 63 ages.=.array();.foreach.($protoc
1d720 6f 6c 73 20 61 73 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 6f 74 ols.as.$protocol).{.$url.=.$prot
1d740 6f 63 6f 6c 20 2e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 ocol...$match[1];.if.(0.===.$thi
1d760 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 s->process->execute(call_user_fu
1d780 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 68 61 6e nc($commandCallable,.$url),.$han
1d7a0 64 6c 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d dler)).{.return;.}.$messages[].=
1d7c0 20 27 2d 20 27 20 2e 20 24 75 72 6c 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 .'-.'...$url..."\n"...preg_repla
1d7e0 63 65 28 27 23 5e 23 6d 27 2c 20 27 20 20 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d ce('#^#m',.'..',.$this->process-
1d800 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d >getErrorOutput());.if.(null.!==
1d820 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d .$path).{.$this->filesystem->rem
1d840 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 oveDirectory($path);.}.}....$thi
1d860 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f s->throwException('Failed.to.clo
1d880 6e 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 20 ne.'...$this->sanitizeUrl($url).
1d8a0 2e 27 20 76 69 61 20 67 69 74 2c 20 68 74 74 70 73 20 61 6e 64 20 68 74 74 70 20 70 72 6f 74 6f .'.via.git,.https.and.http.proto
1d8c0 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 69 6d 70 6c cols,.aborting.'..."\n\n"...impl
1d8e0 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a ode("\n",.$messages),.$url);.}..
1d900 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 $command.=.call_user_func($comma
1d920 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 ndCallable,.$url);.if.(0.!==.$th
1d940 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 is->process->execute($command,.$
1d960 68 61 6e 64 6c 65 72 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e handler)).{...if.(preg_match('{^
1d980 67 69 74 40 28 67 69 74 68 75 62 2e 63 6f 6d 29 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d 69 27 2c git@(github.com):(.+?)\.git$}i',
1d9a0 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f .$url,.$match)).{.if.(!$this->io
1d9c0 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b ->hasAuthorization($match[1])).{
1d9e0 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d .$gitHubUtil.=.new.GitHub($this-
1da00 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 >io,.$this->config,.$this->proce
1da20 73 73 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6c 6f 6e 69 6e 67 20 66 61 69 6c 65 64 20 ss);.$message.=.'Cloning.failed.
1da40 75 73 69 6e 67 20 61 6e 20 73 73 68 20 6b 65 79 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 using.an.ssh.key.for.authenticat
1da60 69 6f 6e 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 ion,.enter.your.GitHub.credentia
1da80 6c 73 20 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 3b 0a 0a 69 66 ls.to.access.private.repos';..if
1daa0 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 .(!$gitHubUtil->authorizeOAuth($
1dac0 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 match[1]).&&.$this->io->isIntera
1dae0 63 74 69 76 65 28 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a ctive()).{.$gitHubUtil->authoriz
1db00 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6d 61 74 63 68 5b 31 5d 2c 20 24 eOAuthInteractively($match[1],.$
1db20 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 message);.}.}..if.($this->io->ha
1db40 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a 24 61 75 sAuthorization($match[1])).{.$au
1db60 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e th.=.$this->io->getAuthorization
1db80 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 ($match[1]);.$url.=.'https://'.$
1dba0 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 auth['username']...':'...$auth['
1dbc0 70 61 73 73 77 6f 72 64 27 5d 20 2e 20 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 password']...'@'.$match[1].'/'.$
1dbe0 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c match[2].'.git';..$command.=.cal
1dc00 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 l_user_func($commandCallable,.$u
1dc20 72 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 rl);.if.(0.===.$this->process->e
1dc40 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a 72 65 xecute($command,.$handler)).{.re
1dc60 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 68 29 turn;.}.}.}..if.(null.!==.$path)
1dc80 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 .{.$this->filesystem->removeDire
1dca0 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 ctory($path);.}.$this->throwExce
1dcc0 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 ption('Failed.to.execute.'...$th
1dce0 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c is->sanitizeUrl($command)..."\n\
1dd00 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 n"...$this->process->getErrorOut
1dd20 70 75 74 28 29 2c 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 put(),.$url);.}.}..public.functi
1dd40 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 on.outputHandler($type,.$buffer)
1dd60 0a 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e .{.if.($type.!==.'out').{.return
1dd80 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 ;.}.if.($this->io->isVerbose()).
1dda0 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 {.$this->io->write($buffer,.fals
1ddc0 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 68 72 6f e);.}.}..protected.function.thro
1dde0 77 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 wException($message,.$url).{.if.
1de00 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 (0.!==.$this->process->execute('
1de20 67 69 74 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 git.--version',.$ignoredOutput))
1de40 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
1de60 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a Failed.to.clone.'.$this->sanitiz
1de80 65 55 72 6c 28 24 75 72 6c 29 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c eUrl($url).',.git.was.not.found,
1dea0 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 .check.that.it.is.installed.and.
1dec0 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 in.your.PATH.env.'..."\n\n"...$t
1dee0 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b his->process->getErrorOutput());
1df00 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 .}..throw.new.\RuntimeException(
1df20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e $message);.}..protected.function
1df40 20 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 .sanitizeUrl($message).{.return.
1df60 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 3a 2f 2f 28 2e 2b 3f 29 3a 2e 2b 3f 40 7d 27 2c 20 preg_replace('{://(.+?):.+?@}',.
1df80 27 3a 2f 2f 24 31 3a 2a 2a 2a 40 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 '://$1:***@',.$message);.}..prot
1dfa0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 75 73 68 55 72 6c 28 50 61 63 6b 61 67 ected.function.setPushUrl(Packag
1dfc0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 eInterface.$package,.$path).{...
1dfe0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 if.(preg_match('{^(?:https?|git)
1e000 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 3f ://github.com/([^/]+)/([^/]+?)(?
1e020 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 :\.git)?$}',.$package->getSource
1e040 55 72 6c 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 Url(),.$match)).{.$pushUrl.=.'gi
1e060 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 t@github.com:'.$match[1].'/'.$ma
1e080 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 tch[2].'.git';.$cmd.=.sprintf('g
1e0a0 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 it.remote.set-url.--push.origin.
1e0c0 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 75 73 68 55 72 6c 29 29 3b 0a %s',.escapeshellarg($pushUrl));.
1e0e0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 69 $this->process->execute($cmd,.$i
1e100 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 gnoredOutput,.$path);.}.}.....pr
1e120 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 otected.function.getCommitLogs($
1e140 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 fromReference,.$toReference,.$pa
1e160 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 th).{.$command.=.sprintf('cd.%s.
1e180 26 26 20 67 69 74 20 6c 6f 67 20 25 73 2e 2e 25 73 20 2d 2d 70 72 65 74 74 79 3d 66 6f 72 6d 61 &&.git.log.%s..%s.--pretty=forma
1e1a0 74 3a 22 25 25 68 20 2d 20 25 25 61 6e 3a 20 25 25 73 22 27 2c 20 65 73 63 61 70 65 73 68 65 6c t:"%%h.-.%%an:.%%s"',.escapeshel
1e1c0 6c 61 72 67 28 24 70 61 74 68 29 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f larg($path),.$fromReference,.$to
1e1e0 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 Reference);..if.(0.!==.$this->pr
1e200 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 ocess->execute($command,.$output
1e220 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e )).{.throw.new.\RuntimeException
1e240 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 ('Failed.to.execute.'...$command
1e260 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 ..."\n\n"...$this->process->getE
1e280 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 rrorOutput());.}..return.$output
1e2a0 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
1e2c0 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f .Composer\Repository;..use.Compo
1e2e0 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f ser\Package\AliasPackage;.use.Co
1e300 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b mposer\Package\PackageInterface;
1e320 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 .use.Composer\Package\Version\Ve
1e340 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 52 65 rsionParser;.......class.ArrayRe
1e360 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e pository.implements.RepositoryIn
1e380 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a terface.{.protected.$packages;..
1e3a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 public.function.__construct(arra
1e3c0 79 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 y.$packages.=.array()).{.foreach
1e3e0 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 .($packages.as.$package).{.$this
1e400 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ->addPackage($package);.}.}.....
1e420 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d public.function.findPackage($nam
1e440 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 e,.$version).{...$versionParser.
1e460 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 =.new.VersionParser();.$version.
1e480 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 =.$versionParser->normalize($ver
1e4a0 73 69 6f 6e 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 sion);.$name.=.strtolower($name)
1e4c0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 ;..foreach.($this->getPackages()
1e4e0 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 .as.$package).{.if.($name.===.$p
1e500 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 24 76 65 72 73 69 6f 6e 20 3d 3d ackage->getName().&&.$version.==
1e520 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 =.$package->getVersion()).{.retu
1e540 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rn.$package;.}.}.}.....public.fu
1e560 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 nction.findPackages($name,.$vers
1e580 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 ion.=.null).{...$name.=.strtolow
1e5a0 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 65 72 73 er($name);....if.(null.!==.$vers
1e5c0 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 ion).{.$versionParser.=.new.Vers
1e5e0 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e ionParser();.$version.=.$version
1e600 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a Parser->normalize($version);.}..
1e620 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 $packages.=.array();..foreach.($
1e640 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 this->getPackages().as.$package)
1e660 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 .{.if.($package->getName().===.$
1e680 6e 61 6d 65 20 26 26 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 20 7c 7c 20 24 76 name.&&.(null.===.$version.||.$v
1e6a0 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 ersion.===.$package->getVersion(
1e6c0 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a ))).{.$packages[].=.$package;.}.
1e6e0 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 }..return.$packages;.}.....publi
1e700 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 c.function.hasPackage(PackageInt
1e720 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 erface.$package).{.$packageId.=.
1e740 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 $package->getUniqueName();..fore
1e760 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 72 65 ach.($this->getPackages().as.$re
1e780 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 poPackage).{.if.($packageId.===.
1e7a0 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b $repoPackage->getUniqueName()).{
1e7c0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b .return.true;.}.}..return.false;
1e7e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b .}.......public.function.addPack
1e800 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b age(PackageInterface.$package).{
1e820 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b .if.(null.===.$this->packages).{
1e840 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 .$this->initialize();.}.$package
1e860 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 70 ->setRepository($this);.$this->p
1e880 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 20 69 66 20 28 24 70 61 ackages[].=.$package;....if.($pa
1e8a0 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 28 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 74 ckage->getAlias()).{.$alias.=.$t
1e8c0 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 his->createAliasPackage($package
1e8e0 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 );.if.(!$this->hasPackage($alias
1e900 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 29 3b 0a )).{.$this->addPackage($alias);.
1e920 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 }.}.}.....public.function.filter
1e940 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f Packages($callback,.$class.=.'Co
1e960 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 0a 7b 0a 66 6f 72 65 61 mposer\Package\Package').{.forea
1e980 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 ch.($this->getPackages().as.$pac
1e9a0 6b 61 67 65 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f kage).{.if.(false.===.call_user_
1e9c0 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 func($callback,.$package)).{.ret
1e9e0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a urn.false;.}.}..return.true;.}..
1ea00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 6c 69 61 73 50 61 protected.function.createAliasPa
1ea20 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c ckage(PackageInterface.$package,
1ea40 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 20 3d 20 6e .$alias.=.null,.$prettyAlias.=.n
1ea60 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 ull).{.return.new.AliasPackage($
1ea80 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 package,.$alias.?:.$package->get
1eaa0 41 6c 69 61 73 28 29 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 20 3f 3a 20 24 70 61 63 6b 61 67 Alias(),.$prettyAlias.?:.$packag
1eac0 65 2d 3e 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 e->getPrettyAlias());.}.......pu
1eae0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b blic.function.removePackage(Pack
1eb00 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 ageInterface.$package).{.$packag
1eb20 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b eId.=.$package->getUniqueName();
1eb40 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 ..foreach.($this->getPackages().
1eb60 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 as.$key.=>.$repoPackage).{.if.($
1eb80 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 packageId.===.$repoPackage->getU
1eba0 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 niqueName()).{.array_splice($thi
1ebc0 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a s->packages,.$key,.1);..return;.
1ebe0 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 }.}.}.....public.function.getPac
1ec00 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 kages().{.if.(null.===.$this->pa
1ec20 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d ckages).{.$this->initialize();.}
1ec40 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->packages;.}.....
1ec60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 ..public.function.count().{.retu
1ec80 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a rn.count($this->packages);.}....
1eca0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 .protected.function.initialize()
1ecc0 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a .{.$this->packages.=.array();.}.
1ece0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
1ed00 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c poser\Repository;..use.Composer\
1ed20 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b Json\JsonFile;.use.Composer\Pack
1ed40 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 age\AliasPackage;.use.Composer\P
1ed60 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 ackage\Loader\ArrayLoader;.use.C
1ed80 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 omposer\Package\Dumper\ArrayDump
1eda0 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 er;........class.FilesystemRepos
1edc0 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d itory.extends.ArrayRepository.im
1ede0 70 6c 65 6d 65 6e 74 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 plements.WritableRepositoryInter
1ee00 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c face.{.private.$file;.......publ
1ee20 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 ic.function.__construct(JsonFile
1ee40 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 .$repositoryFile).{.$this->file.
1ee60 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 =.$repositoryFile;.}.....protect
1ee80 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e ed.function.initialize().{.paren
1eea0 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 t::initialize();..if.(!$this->fi
1eec0 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 61 63 6b le->exists()).{.return;.}..$pack
1eee0 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 ages.=.$this->file->read();..if.
1ef00 28 21 69 73 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e (!is_array($packages)).{.throw.n
1ef20 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f ew.\UnexpectedValueException('Co
1ef40 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 70 61 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 uld.not.parse.package.list.from.
1ef60 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 20 72 the.'.$this->file->getPath().'.r
1ef80 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 epository');.}..$loader.=.new.Ar
1efa0 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 rayLoader();.foreach.($packages.
1efc0 61 73 20 24 70 61 63 6b 61 67 65 44 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c as.$packageData).{.$package.=.$l
1efe0 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 68 69 73 oader->load($packageData);.$this
1f000 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 ->addPackage($package);.}.}..pub
1f020 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 lic.function.reload().{.$this->p
1f040 61 63 6b 61 67 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a ackages.=.null;.$this->initializ
1f060 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 e();.}.....public.function.write
1f080 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 ().{.$packages.=.array();.$dumpe
1f0a0 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 r.=.new.ArrayDumper();.foreach.(
1f0c0 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 $this->getPackages().as.$package
1f0e0 29 20 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 ).{.if.(!$package.instanceof.Ali
1f100 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 75 6d 70 65 72 2d 3e 64 75 asPackage).{.$data.=.$dumper->du
1f120 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 64 61 74 mp($package);.$packages[].=.$dat
1f140 61 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 70 61 63 6b a;.}.}..$this->file->write($pack
1f160 61 67 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ages);.}.}.<?php............name
1f180 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 space.Composer\Repository;..use.
1f1a0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Composer\Package\PackageInterfac
1f1c0 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 e;.......interface.WritableRepos
1f1e0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 itoryInterface.extends.Repositor
1f200 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 yInterface.{....public.function.
1f220 77 72 69 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 write();.......public.function.a
1f240 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b ddPackage(PackageInterface.$pack
1f260 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f age);.......public.function.remo
1f280 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b vePackage(PackageInterface.$pack
1f2a0 61 67 65 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 age);.....public.function.reload
1f2c0 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ();.}.<?php............namespace
1f2e0 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f .Composer\Repository;..use.Compo
1f300 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ser\IO\IOInterface;.use.Composer
1f320 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a \Package\Version\VersionParser;.
1f340 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 use.Composer\Repository\Pear\Cha
1f360 6e 6e 65 6c 52 65 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 nnelReader;.use.Composer\Package
1f380 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 \CompletePackage;.use.Composer\R
1f3a0 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 49 6e 66 6f 3b 0a 75 73 65 20 epository\Pear\ChannelInfo;.use.
1f3c0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f Composer\Package\Link;.use.Compo
1f3e0 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 ser\Package\LinkConstraint\Versi
1f400 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c onConstraint;.use.Composer\Util\
1f420 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 RemoteFilesystem;.use.Composer\C
1f440 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 52 65 70 6f 73 onfig;...........class.PearRepos
1f460 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a itory.extends.ArrayRepository.{.
1f480 70 72 69 76 61 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 private.$url;.private.$io;.priva
1f4a0 74 65 20 24 72 66 73 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b te.$rfs;.private.$versionParser;
1f4c0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 6e 64 6f 72 41 6c 69 61 73 3b 0a 0a 70 75 62 6c .....private.$vendorAlias;..publ
1f4e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 ic.function.__construct(array.$r
1f500 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 epoConfig,.IOInterface.$io,.Conf
1f520 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 ig.$config,.RemoteFilesystem.$rf
1f540 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 s.=.null).{.if.(!preg_match('{^h
1f560 74 74 70 73 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 ttps?://}',.$repoConfig['url']))
1f580 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f .{.$repoConfig['url'].=.'http://
1f5a0 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e '.$repoConfig['url'];.}..if.(fun
1f5c0 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 20 26 26 20 76 65 ction_exists('filter_var').&&.ve
1f5e0 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e rsion_compare(PHP_VERSION,.'5.3.
1f600 33 27 2c 20 27 3e 3d 27 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 72 65 70 6f 43 6f 3',.'>=').&&.!filter_var($repoCo
1f620 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c nfig['url'],.FILTER_VALIDATE_URL
1f640 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 )).{.throw.new.\UnexpectedValueE
1f660 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 xception('Invalid.url.given.for.
1f680 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 PEAR.repository:.'.$repoConfig['
1f6a0 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 72 url']);.}..$this->url.=.rtrim($r
1f6c0 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 epoConfig['url'],.'/');.$this->i
1f6e0 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 o.=.$io;.$this->rfs.=.$rfs.?:.ne
1f700 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 w.RemoteFilesystem($this->io);.$
1f720 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 this->vendorAlias.=.isset($repoC
1f740 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f onfig['vendor-alias']).?.$repoCo
1f760 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 68 nfig['vendor-alias'].:.null;.$th
1f780 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 is->versionParser.=.new.VersionP
1f7a0 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 arser();.}..protected.function.i
1f7c0 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 nitialize().{.parent::initialize
1f7e0 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 69 74 69 61 6c 69 7a ();..$this->io->write('Initializ
1f800 69 6e 67 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c ing.PEAR.repository.'.$this->url
1f820 29 3b 0a 0a 24 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 28 );..$reader.=.new.ChannelReader(
1f840 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 74 72 79 20 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 20 $this->rfs);.try.{.$channelInfo.
1f860 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 63 =.$reader->read($this->url);.}.c
1f880 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f atch.(\Exception.$e).{.$this->io
1f8a0 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 ->write('<warning>PEAR.repositor
1f8c0 79 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 y.from.'.$this->url.'.could.not.
1f8e0 62 65 20 6c 6f 61 64 65 64 2e 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c be.loaded..'.$e->getMessage().'<
1f900 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 /warning>');..return;.}.$package
1f920 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 s.=.$this->buildComposerPackages
1f940 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 ($channelInfo,.$this->versionPar
1f960 73 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 ser);.foreach.($packages.as.$pac
1f980 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 kage).{.$this->addPackage($packa
1f9a0 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ge);.}.}.........private.functio
1f9c0 6e 20 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c 49 n.buildComposerPackages(ChannelI
1f9e0 6e 66 6f 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 nfo.$channelInfo,.VersionParser.
1fa00 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 $versionParser).{.$result.=.arra
1fa20 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 50 y();.foreach.($channelInfo->getP
1fa40 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 29 ackages().as.$packageDefinition)
1fa60 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e .{.foreach.($packageDefinition->
1fa80 67 65 74 52 65 6c 65 61 73 65 73 28 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 65 getReleases().as.$version.=>.$re
1faa0 6c 65 61 73 65 49 6e 66 6f 29 20 7b 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 leaseInfo).{.try.{.$normalizedVe
1fac0 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a rsion.=.$versionParser->normaliz
1fae0 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 e($version);.}.catch.(\Unexpecte
1fb00 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d dValueException.$e).{.if.($this-
1fb20 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 >io->isVerbose()).{.$this->io->w
1fb40 72 69 74 65 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 44 rite('Could.not.load.'.$packageD
1fb60 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 2e 27 20 27 2e efinition->getPackageName().'.'.
1fb80 24 76 65 72 73 69 6f 6e 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b $version.':.'.$e->getMessage());
1fba0 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 .}.continue;.}..$composerPackage
1fbc0 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 Name.=.$this->buildComposerPacka
1fbe0 67 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 geName($packageDefinition->getCh
1fc00 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d annelName(),.$packageDefinition-
1fc20 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 0a 0a 20 0a 20 24 64 69 73 74 55 72 >getPackageName());......$distUr
1fc40 6c 20 3d 20 22 68 74 74 70 3a 2f 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d l.=."http://{$packageDefinition-
1fc60 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 7d 2f 67 65 74 2f 7b 24 70 61 63 6b 61 67 65 >getChannelName()}/get/{$package
1fc80 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d 2d 7b 24 Definition->getPackageName()}-{$
1fca0 76 65 72 73 69 6f 6e 7d 2e 74 67 7a 22 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 version}.tgz";..$requires.=.arra
1fcc0 79 28 29 3b 0a 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 66 6c y();.$suggests.=.array();.$confl
1fce0 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 icts.=.array();.$replaces.=.arra
1fd00 79 28 29 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e y();......if.($channelInfo->getN
1fd20 61 6d 65 28 29 20 3d 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 ame().==.$packageDefinition->get
1fd40 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 ChannelName()).{.$composerPackag
1fd60 65 41 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 eAlias.=.$this->buildComposerPac
1fd80 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 kageName($channelInfo->getAlias(
1fda0 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 ),.$packageDefinition->getPackag
1fdc0 65 4e 61 6d 65 28 29 29 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 eName());.$aliasConstraint.=.new
1fde0 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c .VersionConstraint('==',.$normal
1fe00 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 izedVersion);.$replaces[].=.new.
1fe20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 Link($composerPackageName,.$comp
1fe40 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 oserPackageAlias,.$aliasConstrai
1fe60 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 nt,.'replaces',.(string).$aliasC
1fe80 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 onstraint);.}....if.(!empty($thi
1fea0 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f s->vendorAlias).&&.($this->vendo
1fec0 72 41 6c 69 61 73 20 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e rAlias.!=.'pear-'.$channelInfo->
1fee0 67 65 74 41 6c 69 61 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e getAlias().||.$channelInfo->getN
1ff00 61 6d 65 28 29 20 21 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 ame().!=.$packageDefinition->get
1ff20 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b ChannelName()).).{.$composerPack
1ff40 61 67 65 41 6c 69 61 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 7d ageAlias.=."{$this->vendorAlias}
1ff60 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 /{$packageDefinition->getPackage
1ff80 4e 61 6d 65 28 29 7d 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 Name()}";.$aliasConstraint.=.new
1ffa0 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c .VersionConstraint('==',.$normal
1ffc0 69 7a 65 64 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 izedVersion);.$replaces[].=.new.
1ffe0 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 Link($composerPackageName,.$comp
20000 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 oserPackageAlias,.$aliasConstrai
20020 6e 74 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 nt,.'replaces',.(string).$aliasC
20040 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 onstraint);.}..foreach.($release
20060 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 52 65 Info->getDependencyInfo()->getRe
20080 71 75 69 72 65 73 28 29 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e quires().as.$dependencyConstrain
200a0 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 t).{.$dependencyPackageName.=.$t
200c0 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 his->buildComposerPackageName($d
200e0 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e ependencyConstraint->getChannelN
20100 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 ame(),.$dependencyConstraint->ge
20120 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 tPackageName());.$constraint.=.$
20140 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 versionParser->parseConstraints(
20160 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 $dependencyConstraint->getConstr
20180 61 69 6e 74 28 29 29 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f aint());.$link.=.new.Link($compo
201a0 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 serPackageName,.$dependencyPacka
201c0 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 geName,.$constraint,.$dependency
201e0 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e Constraint->getType(),.$dependen
20200 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a cyConstraint->getConstraint());.
20220 73 77 69 74 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 switch.($dependencyConstraint->g
20240 65 74 54 79 70 65 28 29 29 20 7b 0a 63 61 73 65 20 27 72 65 71 75 69 72 65 64 27 3a 0a 24 72 65 etType()).{.case.'required':.$re
20260 71 75 69 72 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 63 quires[].=.$link;.break;.case.'c
20280 6f 6e 66 6c 69 63 74 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b onflicts':.$conflicts[].=.$link;
202a0 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 70 6c 61 63 65 73 27 3a 0a 24 72 65 70 6c 61 63 .break;.case.'replaces':.$replac
202c0 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 es[].=.$link;.break;.}.}..foreac
202e0 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e h.($releaseInfo->getDependencyIn
20300 66 6f 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 20 61 73 20 24 67 72 6f 75 70 20 3d fo()->getOptionals().as.$group.=
20320 3e 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 66 6f 72 65 >.$dependencyConstraints).{.fore
20340 61 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 ach.($dependencyConstraints.as.$
20360 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 dependencyConstraint).{.$depende
20380 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d ncyPackageName.=.$this->buildCom
203a0 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 poserPackageName($dependencyCons
203c0 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e traint->getChannelName(),.$depen
203e0 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 dencyConstraint->getPackageName(
20400 29 29 3b 0a 24 73 75 67 67 65 73 74 73 5b 24 67 72 6f 75 70 2e 27 2d 27 2e 24 64 65 70 65 6e 64 ));.$suggests[$group.'-'.$depend
20420 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f encyPackageName].=.$dependencyCo
20440 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a nstraint->getConstraint();.}.}..
20460 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 $package.=.new.CompletePackage($
20480 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 composerPackageName,.$normalized
204a0 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 Version,.$version);.$package->se
204c0 74 54 79 70 65 28 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d tType('pear-library');.$package-
204e0 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 >setDescription($packageDefiniti
20500 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d on->getDescription());.$package-
20520 3e 73 65 74 44 69 73 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e >setDistType('file');.$package->
20540 73 65 74 44 69 73 74 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e setDistUrl($distUrl);.$package->
20560 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 setAutoload(array('classmap'.=>.
20580 61 72 72 61 79 28 27 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 array('')));.$package->setInclud
205a0 65 50 61 74 68 73 28 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 ePaths(array('/'));.$package->se
205c0 74 52 65 71 75 69 72 65 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e tRequires($requires);.$package->
205e0 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 24 70 61 63 6b 61 setConflicts($conflicts);.$packa
20600 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 73 75 67 67 65 73 74 73 29 3b 0a 24 70 61 63 ge->setSuggests($suggests);.$pac
20620 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 6c 61 63 65 73 29 3b 0a 24 72 kage->setReplaces($replaces);.$r
20640 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 esult[].=.$package;.}.}..return.
20660 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 $result;.}..private.function.bui
20680 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 4e 61 ldComposerPackageName($channelNa
206a0 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 27 70 68 70 27 20 3d 3d me,.$packageName).{.if.('php'.==
206c0 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 70 68 70 22 3b 0a =.$channelName).{.return."php";.
206e0 7d 0a 69 66 20 28 27 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a }.if.('ext'.===.$channelName).{.
20700 72 65 74 75 72 6e 20 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a return."ext-{$packageName}";.}..
20720 72 65 74 75 72 6e 20 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 7d 2f 7b 24 70 61 return."pear-{$channelName}/{$pa
20740 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ckageName}";.}.}.<?php..........
20760 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b ..namespace.Composer\Repository;
20780 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 ..use.Composer\IO\IOInterface;.u
207a0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 se.Composer\Config;.........clas
207c0 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c s.RepositoryManager.{.private.$l
207e0 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 61 6c 44 65 ocalRepository;.private.$localDe
20800 76 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 vRepository;.private.$repositori
20820 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 es.=.array();.private.$repositor
20840 79 43 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b yClasses.=.array();.private.$io;
20860 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .private.$config;..public.functi
20880 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
208a0 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 Config.$config).{.$this->io.=.$i
208c0 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a o;.$this->config.=.$config;.}...
208e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 .......public.function.findPacka
20900 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 ge($name,.$version).{.foreach.($
20920 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 this->repositories.as.$repositor
20940 79 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d y).{.if.($package.=.$repository-
20960 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b >findPackage($name,.$version)).{
20980 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a .return.$package;.}.}.}.........
209a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e .public.function.findPackages($n
209c0 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 ame,.$version).{.$packages.=.arr
209e0 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 ay();..foreach.($this->repositor
20a00 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 ies.as.$repository).{.$packages.
20a20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 =.array_merge($packages,.$reposi
20a40 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 tory->findPackages($name,.$versi
20a60 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a on));.}..return.$packages;.}....
20a80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 ...public.function.addRepository
20aa0 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 (RepositoryInterface.$repository
20ac0 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 ).{.$this->repositories[].=.$rep
20ae0 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ository;.}..........public.funct
20b00 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 74 79 70 65 2c 20 24 63 6f 6e ion.createRepository($type,.$con
20b20 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 fig).{.if.(!isset($this->reposit
20b40 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 oryClasses[$type])).{.throw.new.
20b60 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 \InvalidArgumentException('Repos
20b80 69 74 6f 72 79 20 74 79 70 65 20 69 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 3a 20 27 2e itory.type.is.not.registered:.'.
20ba0 24 74 79 70 65 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 $type);.}..$class.=.$this->repos
20bc0 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 itoryClasses[$type];..return.new
20be0 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 .$class($config,.$this->io,.$thi
20c00 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s->config);.}........public.func
20c20 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 24 74 79 70 65 2c 20 24 tion.setRepositoryClass($type,.$
20c40 63 6c 61 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 class).{.$this->repositoryClasse
20c60 73 5b 24 74 79 70 65 5d 20 3d 20 24 63 6c 61 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 s[$type].=.$class;.}.......publi
20c80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 c.function.getRepositories().{.r
20ca0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a eturn.$this->repositories;.}....
20cc0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 ...public.function.setLocalRepos
20ce0 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 itory(RepositoryInterface.$repos
20d00 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 itory).{.$this->localRepository.
20d20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 =.$repository;.}.......public.fu
20d40 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 nction.getLocalRepository().{.re
20d60 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a turn.$this->localRepository;.}..
20d80 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 44 65 76 .....public.function.setLocalDev
20da0 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 Repository(RepositoryInterface.$
20dc0 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 44 65 76 52 65 70 repository).{.$this->localDevRep
20de0 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ository.=.$repository;.}.......p
20e00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 ublic.function.getLocalDevReposi
20e20 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 44 65 76 52 tory().{.return.$this->localDevR
20e40 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 epository;.}.......public.functi
20e60 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 on.getLocalRepositories().{.retu
20e80 72 6e 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 2c rn.array($this->localRepository,
20ea0 20 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d .$this->localDevRepository);.}.}
20ec0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
20ee0 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 oser\Repository\Vcs;..use.Compos
20f00 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e er\Downloader\TransportException
20f20 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 ;.use.Composer\Json\JsonFile;.us
20f40 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 e.Composer\Cache;.use.Composer\I
20f60 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c O\IOInterface;.use.Composer\Util
20f80 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \RemoteFilesystem;.use.Composer\
20fa0 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 44 72 69 Util\GitHub;.....class.GitHubDri
20fc0 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 ver.extends.VcsDriver.{.protecte
20fe0 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 d.$cache;.protected.$owner;.prot
21000 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 ected.$repository;.protected.$ta
21020 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 gs;.protected.$branches;.protect
21040 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 ed.$rootIdentifier;.protected.$h
21060 61 73 49 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d asIssues;.protected.$infoCache.=
21080 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 74 65 20 3d .array();.protected.$isPrivate.=
210a0 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 44 72 69 76 .false;.......protected.$gitDriv
210c0 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 er;.....public.function.initiali
210e0 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 ze().{.preg_match('#^(?:(?:https
21100 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 ?|git)://github\.com/|git@github
21120 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 \.com:)([^/]+)/(.+?)(?:\.git)?$#
21140 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f ',.$this->url,.$match);.$this->o
21160 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 wner.=.$match[1];.$this->reposit
21180 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 ory.=.$match[2];.$this->originUr
211a0 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d l.=.'github.com';.$this->cache.=
211c0 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e .new.Cache($this->io,.$this->con
211e0 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 61 63 68 65 2e 67 69 74 68 75 62 2f fig->get('home').'/cache.github/
21200 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 '.$this->owner.'/'.$this->reposi
21220 74 6f 72 79 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 tory);..$this->fetchRootIdentifi
21240 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 er();.}.....public.function.getR
21260 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 ootIdentifier().{.if.($this->git
21280 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 Driver).{.return.$this->gitDrive
212a0 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 r->getRootIdentifier();.}..retur
212c0 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 n.$this->rootIdentifier;.}.....p
212e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 69 66 20 28 24 74 ublic.function.getUrl().{.if.($t
21300 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e his->gitDriver).{.return.$this->
21320 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 gitDriver->getUrl();.}..return.$
21340 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e this->url;.}.....public.function
21360 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 .getSource($identifier).{.if.($t
21380 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e his->gitDriver).{.return.$this->
213a0 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 gitDriver->getSource($identifier
213c0 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e );.}.$label.=.array_search($iden
213e0 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 tifier,.$this->getTags()).?:.$id
21400 65 6e 74 69 66 69 65 72 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 29 20 entifier;.if.($this->isPrivate).
21420 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 {.....$url.=.$this->generateSshU
21440 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 rl();.}.else.{.$url.=.$this->get
21460 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e Url();.}..return.array('type'.=>
21480 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 .'git',.'url'.=>.$url,.'referenc
214a0 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 e'.=>.$label);.}.....public.func
214c0 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 tion.getDist($identifier).{.if.(
214e0 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 $this->gitDriver).{.return.$this
21500 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 ->gitDriver->getDist($identifier
21520 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e );.}.$label.=.array_search($iden
21540 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 tifier,.$this->getTags()).?:.$id
21560 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 entifier;.$url.=.'https://github
21580 2e 63 6f 6d 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 .com/'.$this->owner.'/'.$this->r
215a0 65 70 6f 73 69 74 6f 72 79 2e 27 2f 61 72 63 68 69 76 65 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e 7a epository.'/archive/'.$label.'.z
215c0 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 ip';..return.array('type'.=>.'zi
215e0 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d p',.'url'.=>.$url,.'reference'.=
21600 3e 20 24 6c 61 62 65 6c 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a >.$label,.'shasum'.=>.'');.}....
21620 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f .public.function.getComposerInfo
21640 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 rmation($identifier).{.if.($this
21660 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 ->gitDriver).{.return.$this->git
21680 44 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 Driver->getComposerInformation($
216a0 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 identifier);.}..if.(preg_match('
216c0 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 {[a-f0-9]{40}}i',.$identifier).&
216e0 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 &.$res.=.$this->cache->read($ide
21700 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 ntifier)).{.$this->infoCache[$id
21720 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 entifier].=.JsonFile::parseJson(
21740 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f $res);.}..if.(!isset($this->info
21760 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 Cache[$identifier])).{.try.{.$re
21780 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 72 61 77 2e 67 69 74 68 75 62 2e 63 6f 6d source.=.'https://raw.github.com
217a0 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
217c0 69 74 6f 72 79 2e 27 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 itory.'/'.urlencode($identifier)
217e0 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 .'/composer.json';.$composer.=.$
21800 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 20 this->getContents($resource);.}.
21820 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a catch.(TransportException.$e).{.
21840 69 66 20 28 34 30 34 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 72 if.(404.!==.$e->getCode()).{.thr
21860 6f 77 20 24 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a ow.$e;.}..$composer.=.false;.}..
21880 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f if.($composer).{.$composer.=.Jso
218a0 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 nFile::parseJson($composer,.$res
218c0 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 ource);..if.(!isset($composer['t
218e0 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 ime'])).{.$resource.=.'https://a
21900 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e pi.github.com/repos/'.$this->own
21920 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d 69 er.'/'.$this->repository.'/commi
21940 74 73 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f ts/'.urlencode($identifier);.$co
21960 6d 6d 69 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 mmit.=.JsonFile::parseJson($this
21980 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 ->getContents($resource),.$resou
219a0 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 6f 6d 6d 69 rce);.$composer['time'].=.$commi
219c0 74 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 65 27 5d t['commit']['committer']['date']
219e0 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 ;.}.if.(!isset($composer['suppor
21a00 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 t']['source'])).{.$label.=.array
21a20 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 _search($identifier,.$this->getT
21a40 61 67 73 28 29 29 20 3f 3a 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 ags()).?:.array_search($identifi
21a60 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 69 64 er,.$this->getBranches()).?:.$id
21a80 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 entifier;.$composer['support']['
21aa0 73 6f 75 72 63 65 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 source'].=.sprintf('https://gith
21ac0 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 ub.com/%s/%s/tree/%s',.$this->ow
21ae0 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c 29 3b ner,.$this->repository,.$label);
21b00 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 .}.if.(!isset($composer['support
21b20 27 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 ']['issues']).&&.$this->hasIssue
21b40 73 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 s).{.$composer['support']['issue
21b60 73 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f s'].=.sprintf('https://github.co
21b80 6d 2f 25 73 2f 25 73 2f 69 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 m/%s/%s/issues',.$this->owner,.$
21ba0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 this->repository);.}.}..if.(preg
21bc0 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 _match('{[a-f0-9]{40}}i',.$ident
21be0 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 ifier)).{.$this->cache->write($i
21c00 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 dentifier,.json_encode($composer
21c20 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 ));.}..$this->infoCache[$identif
21c40 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ier].=.$composer;.}..return.$thi
21c60 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a s->infoCache[$identifier];.}....
21c80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 .public.function.getTags().{.if.
21ca0 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ($this->gitDriver).{.return.$thi
21cc0 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 7d 0a 69 66 20 28 6e s->gitDriver->getTags();.}.if.(n
21ce0 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 ull.===.$this->tags).{.$resource
21d00 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 .=.'https://api.github.com/repos
21d20 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
21d40 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 itory.'/tags';.$tagsData.=.JsonF
21d60 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 ile::parseJson($this->getContent
21d80 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d s($resource),.$resource);.$this-
21da0 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 >tags.=.array();.foreach.($tagsD
21dc0 61 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5b ata.as.$tag).{.$this->tags[$tag[
21de0 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 27 5d 'name']].=.$tag['commit']['sha']
21e00 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a ;.}.}..return.$this->tags;.}....
21e20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b .public.function.getBranches().{
21e40 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 .if.($this->gitDriver).{.return.
21e60 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b $this->gitDriver->getBranches();
21e80 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 .}.if.(null.===.$this->branches)
21ea0 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 .{.$resource.=.'https://api.gith
21ec0 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e ub.com/repos/'.$this->owner.'/'.
21ee0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 69 74 2f 72 65 66 73 2f 68 65 61 $this->repository.'/git/refs/hea
21f00 64 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 ds';.$branchData.=.JsonFile::par
21f20 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 seJson($this->getContents($resou
21f40 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 rce),.$resource);.$this->branche
21f60 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 s.=.array();.foreach.($branchDat
21f80 61 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 a.as.$branch).{.$name.=.substr($
21fa0 62 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 branch['ref'],.11);.$this->branc
21fc0 68 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 62 72 61 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d 5b 27 hes[$name].=.$branch['object']['
21fe0 73 68 61 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 sha'];.}.}..return.$this->branch
22000 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e es;.}.....public.static.function
22020 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c .supports(IOInterface.$io,.$url,
22040 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .$deep.=.false).{.if.(!preg_matc
22060 68 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 h('#^((?:https?|git)://github\.c
22080 6f 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 5c 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b om/|git@github\.com:)([^/]+)/(.+
220a0 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e ?)(?:\.git)?$#',.$url)).{.return
220c0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 .false;.}..if.(!extension_loaded
220e0 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 ('openssl')).{.if.($io->isVerbos
22100 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 47 69 74 48 e()).{.$io->write('Skipping.GitH
22120 75 62 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 ub.driver.for.'.$url.'.because.t
22140 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 he.OpenSSL.PHP.extension.is.miss
22160 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 ing.');.}..return.false;.}..retu
22180 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 rn.true;.}.......protected.funct
221a0 69 6f 6e 20 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 ion.generateSshUrl().{.return.'g
221c0 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 it@github.com:'.$this->owner.'/'
221e0 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a .$this->repository.'.git';.}....
22200 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 .protected.function.getContents(
22220 24 75 72 6c 2c 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 20 3d 20 66 61 6c 73 65 29 $url,.$fetchingRepoData.=.false)
22240 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 .{.try.{.return.parent::getConte
22260 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 nts($url);.}.catch.(TransportExc
22280 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 eption.$e).{.$gitHubUtil.=.new.G
222a0 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 itHub($this->io,.$this->config,.
222c0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c $this->process,.$this->remoteFil
222e0 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 esystem);..switch.($e->getCode()
22300 29 20 7b 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 0a 20 69 66 20 28 21 24 ).{.case.401:.case.404:...if.(!$
22320 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a fetchingRepoData).{.throw.$e;.}.
22340 0a 69 66 20 28 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 .if.($gitHubUtil->authorizeOAuth
22360 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 ($this->originUrl)).{.return.par
22380 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 ent::getContents($url);.}..if.(!
223a0 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 $this->io->isInteractive()).{.re
223c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b turn.$this->attemptCloneFallback
223e0 28 29 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 ();.}..$gitHubUtil->authorizeOAu
22400 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c thInteractively($this->originUrl
22420 2c 20 27 59 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 61 72 65 20 72 ,.'Your.GitHub.credentials.are.r
22440 65 71 75 69 72 65 64 20 74 6f 20 66 65 74 63 68 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 69 74 equired.to.fetch.private.reposit
22460 6f 72 79 20 6d 65 74 61 64 61 74 61 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c ory.metadata.(<info>'.$this->url
22480 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 .'</info>)');..return.parent::ge
224a0 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 0a 63 61 73 65 20 34 30 33 3a 0a 69 66 20 28 tContents($url);..case.403:.if.(
224c0 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 74 68 !$this->io->hasAuthorization($th
224e0 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 26 26 20 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 is->originUrl).&&.$gitHubUtil->a
22500 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 uthorizeOAuth($this->originUrl))
22520 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 .{.return.parent::getContents($u
22540 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 rl);.}..if.(!$this->io->isIntera
22560 63 74 69 76 65 28 29 20 26 26 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a ctive().&&.$fetchingRepoData).{.
22580 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 return.$this->attemptCloneFallba
225a0 63 6b 28 29 3b 0a 7d 0a 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 ck();.}..$rateLimited.=.false;.f
225c0 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 20 61 73 20 24 68 65 61 oreach.($e->getHeaders().as.$hea
225e0 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 58 2d 52 61 74 65 4c der).{.if.(preg_match('{^X-RateL
22600 69 6d 69 74 2d 52 65 6d 61 69 6e 69 6e 67 3a 20 2a 30 24 7d 69 27 2c 20 74 72 69 6d 28 24 68 65 imit-Remaining:.*0$}i',.trim($he
22620 61 64 65 72 29 29 29 20 7b 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 74 72 75 65 3b 0a 7d ader))).{.$rateLimited.=.true;.}
22640 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 .}..if.(!$this->io->hasAuthoriza
22660 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 69 66 20 28 21 24 tion($this->originUrl)).{.if.(!$
22680 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 this->io->isInteractive()).{.$th
226a0 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 is->io->write('<error>GitHub.API
226c0 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 46 61 69 6c 65 64 20 74 6f 20 67 65 74 20 .limit.exhausted..Failed.to.get.
226e0 6d 65 74 61 64 61 74 61 20 66 6f 72 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 metadata.for.the.'.$this->url.'.
22700 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 repository,.try.running.in.inter
22720 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 active.mode.so.that.you.can.ente
22740 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 69 6e 63 r.your.GitHub.credentials.to.inc
22760 72 65 61 73 65 20 74 68 65 20 41 50 49 20 6c 69 6d 69 74 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 rease.the.API.limit</error>');.t
22780 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 hrow.$e;.}..$gitHubUtil->authori
227a0 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 zeOAuthInteractively($this->orig
227c0 69 6e 55 72 6c 2c 20 27 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 45 6e 74 inUrl,.'API.limit.exhausted..Ent
227e0 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 67 65 er.your.GitHub.credentials.to.ge
22800 74 20 61 20 6c 61 72 67 65 72 20 41 50 49 20 6c 69 6d 69 74 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 t.a.larger.API.limit.(<info>'.$t
22820 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 his->url.'</info>)');..return.pa
22840 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 rent::getContents($url);.}..if.(
22860 24 72 61 74 65 4c 69 6d 69 74 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 $rateLimited).{.$this->io->write
22880 28 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 ('<error>GitHub.API.limit.exhaus
228a0 74 65 64 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 68 6f 72 69 7a 65 64 20 ted..You.are.already.authorized.
228c0 73 6f 20 79 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 77 61 69 74 20 61 20 77 68 69 6c 65 so.you.will.have.to.wait.a.while
228e0 20 62 65 66 6f 72 65 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 75 65 73 74 73 3c 2f 65 72 72 .before.doing.more.requests</err
22900 6f 72 3e 27 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 or>');.}..throw.$e;..default:.th
22920 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 row.$e;.}.}.}.......protected.fu
22940 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 24 nction.fetchRootIdentifier().{.$
22960 72 65 70 6f 44 61 74 61 55 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 repoDataUrl.=.'https://api.githu
22980 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 b.com/repos/'.$this->owner.'/'.$
229a0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a this->repository;..$repoData.=.J
229c0 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e sonFile::parseJson($this->getCon
229e0 74 65 6e 74 73 28 24 72 65 70 6f 44 61 74 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 72 65 70 6f tents($repoDataUrl,.true),.$repo
22a00 44 61 74 61 55 72 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 DataUrl);.if.(null.===.$repoData
22a20 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b .&&.null.!==.$this->gitDriver).{
22a40 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 3d 20 21 .return;.}..$this->isPrivate.=.!
22a60 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 70 72 69 76 61 74 65 27 5d 29 3b 0a 69 66 20 empty($repoData['private']);.if.
22a80 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 (isset($repoData['default_branch
22aa0 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 '])).{.$this->rootIdentifier.=.$
22ac0 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c repoData['default_branch'];.}.el
22ae0 73 65 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 seif.(isset($repoData['master_br
22b00 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 anch'])).{.$this->rootIdentifier
22b20 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d .=.$repoData['master_branch'];.}
22b40 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 .else.{.$this->rootIdentifier.=.
22b60 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 20 3d 20 21 'master';.}.$this->hasIssues.=.!
22b80 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 68 61 73 5f 69 73 73 75 65 73 27 5d 29 3b 0a empty($repoData['has_issues']);.
22ba0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 43 6c 6f }..protected.function.attemptClo
22bc0 6e 65 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 neFallback().{.$this->isPrivate.
22be0 3d 20 74 72 75 65 3b 0a 0a 74 72 79 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 67 69 =.true;..try.{.........$this->gi
22c00 74 44 72 69 76 65 72 20 3d 20 6e 65 77 20 47 69 74 44 72 69 76 65 72 28 0a 61 72 72 61 79 28 27 tDriver.=.new.GitDriver(.array('
22c20 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 29 url'.=>.$this->generateSshUrl())
22c40 2c 0a 24 74 68 69 73 2d 3e 69 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 ,.$this->io,.$this->config,.$thi
22c60 73 2d 3e 70 72 6f 63 65 73 73 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 s->process,.$this->remoteFilesys
22c80 74 65 6d 0a 29 3b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c tem.);.$this->gitDriver->initial
22ca0 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d ize();..return;.}.catch.(\Runtim
22cc0 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 eException.$e).{.$this->gitDrive
22ce0 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 r.=.null;..$this->io->write('<er
22d00 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d ror>Failed.to.clone.the.'.$this-
22d20 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 >generateSshUrl().'.repository,.
22d40 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 try.running.in.interactive.mode.
22d60 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 so.that.you.can.enter.your.GitHu
22d80 62 20 63 72 65 64 65 6e 74 69 61 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 b.credentials</error>');.throw.$
22da0 65 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 e;.}.}.}.<?php............namesp
22dc0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 ace.Composer\Repository\Vcs;..us
22de0 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f e.Composer\Json\JsonFile;.use.Co
22e00 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 mposer\IO\IOInterface;.....class
22e20 20 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 .GitBitbucketDriver.extends.VcsD
22e40 72 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 river.implements.VcsDriverInterf
22e60 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 ace.{.protected.$owner;.protecte
22e80 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a d.$repository;.protected.$tags;.
22ea0 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 protected.$branches;.protected.$
22ec0 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 rootIdentifier;.protected.$infoC
22ee0 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ache.=.array();.....public.funct
22f00 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 ion.initialize().{.preg_match('#
22f20 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f ^https://bitbucket\.org/([^/]+)/
22f40 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 (.+?)\.git$#',.$this->url,.$matc
22f60 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 h);.$this->owner.=.$match[1];.$t
22f80 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 his->repository.=.$match[2];.$th
22fa0 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b is->originUrl.=.'bitbucket.org';
22fc0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 .}.....public.function.getRootId
22fe0 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d entifier().{.if.(null.===.$this-
23000 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 >rootIdentifier).{.$resource.=.$
23020 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 this->getScheme()...'://api.bitb
23040 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 ucket.org/1.0/repositories/'.$th
23060 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b is->owner.'/'.$this->repository;
23080 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e .$repoData.=.JsonFile::parseJson
230a0 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 ($this->getContents($resource),.
230c0 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 $resource);.$this->rootIdentifie
230e0 72 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 r.=.!empty($repoData['main_branc
23100 68 27 5d 29 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 20 h']).?.$repoData['main_branch'].
23120 3a 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f :.'master';.}..return.$this->roo
23140 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tIdentifier;.}.....public.functi
23160 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b on.getUrl().{.return.$this->url;
23180 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 .}.....public.function.getSource
231a0 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 ($identifier).{.$label.=.array_s
231c0 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 earch($identifier,.$this->getTag
231e0 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 s()).?:.$identifier;..return.arr
23200 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 ay('type'.=>.'git',.'url'.=>.$th
23220 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 is->getUrl(),.'reference'.=>.$la
23240 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 bel);.}.....public.function.getD
23260 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 ist($identifier).{.$label.=.arra
23280 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 y_search($identifier,.$this->get
232a0 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 75 72 6c 20 3d 20 24 Tags()).?:.$identifier;.$url.=.$
232c0 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 this->getScheme()...'://bitbucke
232e0 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e t.org/'.$this->owner.'/'.$this->
23300 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 6c 61 62 65 6c 2e 27 2e 7a 69 70 27 repository.'/get/'.$label.'.zip'
23320 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c ;..return.array('type'.=>.'zip',
23340 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 .'url'.=>.$url,.'reference'.=>.$
23360 6c 61 62 65 6c 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 label,.'shasum'.=>.'');.}.....pu
23380 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 blic.function.getComposerInforma
233a0 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 tion($identifier).{.if.(!isset($
233c0 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b this->infoCache[$identifier])).{
233e0 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 .$resource.=.$this->getScheme().
23400 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e ..'://bitbucket.org/'.$this->own
23420 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 72 61 77 2f 27 er.'/'.$this->repository.'/raw/'
23440 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 .$identifier.'/composer.json';.$
23460 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 composer.=.$this->getContents($r
23480 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 21 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 esource);.if.(!$composer).{.retu
234a0 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 rn;.}..$composer.=.JsonFile::par
234c0 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 seJson($composer,.$resource);..i
234e0 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a f.(!isset($composer['time'])).{.
23500 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e $resource.=.$this->getScheme()..
23520 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 .'://api.bitbucket.org/1.0/repos
23540 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 itories/'.$this->owner.'/'.$this
23560 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 ->repository.'/changesets/'.$ide
23580 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a ntifier;.$changeset.=.JsonFile::
235a0 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 parseJson($this->getContents($re
235c0 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 source),.$resource);.$composer['
235e0 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d time'].=.$changeset['timestamp']
23600 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 ;.}.$this->infoCache[$identifier
23620 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ].=.$composer;.}..return.$this->
23640 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 infoCache[$identifier];.}.....pu
23660 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 blic.function.getTags().{.if.(nu
23680 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 ll.===.$this->tags).{.$resource.
236a0 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 =.$this->getScheme()...'://api.b
236c0 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e itbucket.org/1.0/repositories/'.
236e0 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f $this->owner.'/'.$this->reposito
23700 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 ry.'/tags';.$tagsData.=.JsonFile
23720 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 ::parseJson($this->getContents($
23740 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 resource),.$resource);.$this->ta
23760 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 gs.=.array();.foreach.($tagsData
23780 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 .as.$tag.=>.$data).{.$this->tags
237a0 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a [$tag].=.$data['raw_node'];.}.}.
237c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 .return.$this->tags;.}.....publi
237e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e c.function.getBranches().{.if.(n
23800 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f ull.===.$this->branches).{.$reso
23820 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f urce.=.$this->getScheme()...'://
23840 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 api.bitbucket.org/1.0/repositori
23860 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 es/'.$this->owner.'/'.$this->rep
23880 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 ository.'/branches';.$branchData
238a0 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 .=.JsonFile::parseJson($this->ge
238c0 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 tContents($resource),.$resource)
238e0 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 ;.$this->branches.=.array();.for
23900 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 each.($branchData.as.$branch.=>.
23920 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 $data).{.$this->branches[$branch
23940 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ].=.$data['raw_node'];.}.}..retu
23960 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->branches;.}.....public
23980 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 .static.function.supports(IOInte
239a0 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a rface.$io,.$url,.$deep.=.false).
239c0 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 {.if.(!preg_match('#^https://bit
239e0 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 bucket\.org/([^/]+)/(.+?)\.git$#
23a00 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 ',.$url)).{.return.false;.}..if.
23a20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b (!extension_loaded('openssl')).{
23a40 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 .if.($io->isVerbose()).{.$io->wr
23a60 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 76 ite('Skipping.Bitbucket.git.driv
23a80 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e er.for.'.$url.'.because.the.Open
23aa0 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b SSL.PHP.extension.is.missing.');
23ac0 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 .}..return.false;.}..return.true
23ae0 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
23b00 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 .Composer\Repository\Vcs;..use.C
23b20 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f omposer\Json\JsonFile;.use.Compo
23b40 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f ser\Util\ProcessExecutor;.use.Co
23b60 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 mposer\Util\Filesystem;.use.Comp
23b80 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 oser\IO\IOInterface;.....class.G
23ba0 69 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f itDriver.extends.VcsDriver.{.pro
23bc0 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 tected.$tags;.protected.$branche
23be0 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 s;.protected.$rootIdentifier;.pr
23c00 6f 74 65 63 74 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 otected.$repoDir;.protected.$inf
23c20 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e oCache.=.array();.....public.fun
23c40 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a ction.initialize().{.if.(static:
23c60 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 :isLocalUrl($this->url)).{.$this
23c80 2d 3e 72 65 70 6f 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f ->repoDir.=.str_replace('file://
23ca0 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 ',.'',.$this->url);.}.else.{.$th
23cc0 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 is->repoDir.=.$this->config->get
23ce0 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 61 63 68 65 2e 67 69 74 2f 27 20 2e 20 70 72 65 67 5f ('home')...'/cache.git/'...preg_
23d00 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 replace('{[^a-z0-9.]}i',.'-',.$t
23d20 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 his->url)...'/';..$fs.=.new.File
23d40 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 system();.$fs->ensureDirectoryEx
23d60 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 3b 0a 0a ists(dirname($this->repoDir));..
23d80 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e if.(!is_writable(dirname($this->
23da0 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 repoDir))).{.throw.new.\RuntimeE
23dc0 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d xception('Can.not.clone.'.$this-
23de0 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 >url.'.to.access.package.informa
23e00 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f tion..The."'.dirname($this->repo
23e20 44 69 72 29 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c Dir).'".directory.is.not.writabl
23e40 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 e.by.the.current.user.');.}....i
23e60 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d f.(is_dir($this->repoDir).&&.0.=
23e80 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 ==.$this->process->execute('git.
23ea0 72 65 6d 6f 74 65 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 remote',.$output,.$this->repoDir
23ec0 29 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 )).{.if.(0.!==.$this->process->e
23ee0 78 65 63 75 74 65 28 27 67 69 74 20 72 65 6d 6f 74 65 20 75 70 64 61 74 65 20 2d 2d 70 72 75 6e xecute('git.remote.update.--prun
23f00 65 20 6f 72 69 67 69 6e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 e.origin',.$output,.$this->repoD
23f20 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e ir)).{.$this->io->write('<error>
23f40 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c Failed.to.update.'.$this->url.',
23f60 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 73 20 72 .package.information.from.this.r
23f80 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e 24 74 68 epository.may.be.outdated.('.$th
23fa0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2e 27 29 is->process->getErrorOutput().')
23fc0 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 </error>');.}.}.else.{...$fs->re
23fe0 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a moveDirectory($this->repoDir);..
24000 0a 20 70 75 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 41 53 53 3d 65 63 68 6f 27 29 3b 0a 24 63 ..putenv('GIT_ASKPASS=echo');.$c
24020 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 6c 6f 6e 65 20 2d 2d 6d 69 ommand.=.sprintf('git.clone.--mi
24040 72 72 6f 72 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 rror.%s.%s',.escapeshellarg($thi
24060 73 2d 3e 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 72 s->url),.escapeshellarg($this->r
24080 65 70 6f 44 69 72 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 epoDir));.if.(0.!==.$this->proce
240a0 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 29 20 ss->execute($command,.$output)).
240c0 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 {.$output.=.$this->process->getE
240e0 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e rrorOutput();..if.(0.!==.$this->
24100 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 2d 2d 76 65 72 73 69 6f 6e 27 process->execute('git.--version'
24120 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ,.$ignoredOutput)).{.throw.new.\
24140 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e RuntimeException('Failed.to.clon
24160 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f e.'.$this->url.',.git.was.not.fo
24180 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 und,.check.that.it.is.installed.
241a0 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 and.in.your.PATH.env.'..."\n\n".
241c0 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 ..$this->process->getErrorOutput
241e0 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ());.}..throw.new.\RuntimeExcept
24200 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 ion('Failed.to.clone.'.$this->ur
24220 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b 61 67 65 73 20 66 72 6f l.',.could.not.read.packages.fro
24240 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 7d 0a m.it'..."\n\n"..$output);.}.}.}.
24260 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 .$this->getTags();.$this->getBra
24280 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 nches();.}.....public.function.g
242a0 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d etRootIdentifier().{.if.(null.==
242c0 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 74 68 69 73 =.$this->rootIdentifier).{.$this
242e0 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 0a 0a 20 ->rootIdentifier.=.'master';....
24300 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 $this->process->execute('git.bra
24320 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d nch.--no-color',.$output,.$this-
24340 3e 72 65 70 6f 44 69 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 >repoDir);.$branches.=.$this->pr
24360 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 ocess->splitLines($output);.if.(
24380 21 69 6e 5f 61 72 72 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 62 72 61 6e 63 68 65 73 29 !in_array('*.master',.$branches)
243a0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 62 72 61 6e 63 ).{.foreach.($branches.as.$branc
243c0 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 h).{.if.($branch.&&.preg_match('
243e0 7b 5e 5c 2a 20 2b 28 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 {^\*.+(\S+)}',.$branch,.$match))
24400 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 6d 61 74 63 .{.$this->rootIdentifier.=.$matc
24420 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 h[1];.break;.}.}.}.}..return.$th
24440 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 is->rootIdentifier;.}.....public
24460 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .function.getUrl().{.return.$thi
24480 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 s->url;.}.....public.function.ge
244a0 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 tSource($identifier).{.$label.=.
244c0 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 28 61 72 72 61 79 array_search($identifier,.(array
244e0 29 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a ).$this->tags).?:.$identifier;..
24500 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 return.array('type'.=>.'git',.'u
24520 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e rl'.=>.$this->getUrl(),.'referen
24540 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ce'.=>.$label);.}.....public.fun
24560 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 ction.getDist($identifier).{.ret
24580 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 urn.null;.}.....public.function.
245a0 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 getComposerInformation($identifi
245c0 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 er).{.if.(!isset($this->infoCach
245e0 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 73 e[$identifier])).{.$resource.=.s
24600 70 72 69 6e 74 66 28 27 25 73 3a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 70 printf('%s:composer.json',.escap
24620 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 3b 0a 24 74 68 69 73 2d 3e eshellarg($identifier));.$this->
24640 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 73 68 process->execute(sprintf('git.sh
24660 6f 77 20 25 73 27 2c 20 24 72 65 73 6f 75 72 63 65 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 ow.%s',.$resource),.$composer,.$
24680 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 this->repoDir);..if.(!trim($comp
246a0 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 oser)).{.return;.}..$composer.=.
246c0 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 JsonFile::parseJson($composer,.$
246e0 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 resource);..if.(!isset($composer
24700 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 ['time'])).{.$this->process->exe
24720 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 2d 31 20 2d 2d 66 6f 72 6d 61 cute(sprintf('git.log.-1.--forma
24740 74 3d 25 25 61 74 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 6e t=%%at.%s',.escapeshellarg($iden
24760 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 tifier)),.$output,.$this->repoDi
24780 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 r);.$date.=.new.\DateTime('@'.tr
247a0 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 im($output));.$composer['time'].
247c0 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a =.$date->format('Y-m-d.H:i:s');.
247e0 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 }.$this->infoCache[$identifier].
24800 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e =.$composer;.}..return.$this->in
24820 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c foCache[$identifier];.}.....publ
24840 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c ic.function.getTags().{.if.(null
24860 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 .===.$this->tags).{.$this->proce
24880 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 ss->execute('git.tag',.$output,.
248a0 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 $this->repoDir);.$output.=.$this
248c0 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a ->process->splitLines($output);.
248e0 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 6f 75 74 70 75 74 20 3f 20 61 72 72 61 79 5f 63 6f $this->tags.=.$output.?.array_co
24900 6d 62 69 6e 65 28 24 6f 75 74 70 75 74 2c 20 24 6f 75 74 70 75 74 29 20 3a 20 61 72 72 61 79 28 mbine($output,.$output).:.array(
24920 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a );.}..return.$this->tags;.}.....
24940 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a public.function.getBranches().{.
24960 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a if.(null.===.$this->branches).{.
24980 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f $branches.=.array();..$this->pro
249a0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 cess->execute('git.branch.--no-c
249c0 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 olor.--no-abbrev.-v',.$output,.$
249e0 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e this->repoDir);.foreach.($this->
24a00 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 process->splitLines($output).as.
24a20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f $branch).{.if.($branch.&&.!preg_
24a40 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 match('{^.*[^/]+/HEAD.}',.$branc
24a60 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f h)).{.if.(preg_match('{^(?:\*.)?
24a80 20 2a 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 .*(\S+).*([a-f0-9]+)..*$}',.$bra
24aa0 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 nch,.$match)).{.$branches[$match
24ac0 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e [1]].=.$match[2];.}.}.}..$this->
24ae0 62 72 61 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 branches.=.$branches;.}..return.
24b00 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 $this->branches;.}.....public.st
24b20 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 atic.function.supports(IOInterfa
24b40 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 ce.$io,.$url,.$deep.=.false).{.i
24b60 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 67 69 74 3a 2f 2f 7c 5c 2e 67 69 74 24 7c f.(preg_match('#(^git://|\.git$|
24b80 67 69 74 28 3f 3a 6f 6c 69 74 65 29 3f 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 74 68 75 62 2e git(?:olite)?@|//git\.|//github.
24ba0 63 6f 6d 2f 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a com/)#i',.$url)).{.return.true;.
24bc0 7d 0a 0a 0a 20 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c }....if.(static::isLocalUrl($url
24be0 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 )).{.if.(!is_dir($url)).{.throw.
24c00 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 44 69 72 65 63 74 6f 72 79 new.\RuntimeException('Directory
24c20 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 2e 24 75 72 6c 29 3b 0a 7d 0a 0a 24 70 72 .does.not.exist:.'.$url);.}..$pr
24c40 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 ocess.=.new.ProcessExecutor();.$
24c60 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c url.=.str_replace('file://',.'',
24c80 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .$url);...if.($process->execute(
24ca0 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 'git.tag',.$output,.$url).===.0)
24cc0 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 .{.return.true;.}.}..if.(!$deep)
24ce0 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 66 61 6c .{.return.false;.}....return.fal
24d00 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 se;.}.}.<?php............namespa
24d20 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 ce.Composer\Repository\Vcs;..use
24d40 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 .Composer\Cache;.use.Composer\Js
24d60 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 on\JsonFile;.use.Composer\Util\P
24d80 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 rocessExecutor;.use.Composer\Uti
24da0 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c l\Filesystem;.use.Composer\Util\
24dc0 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c Svn.as.SvnUtil;.use.Composer\IO\
24de0 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f IOInterface;.use.Composer\Downlo
24e00 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c ader\TransportException;......cl
24e20 61 73 73 20 53 76 6e 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a ass.SvnDriver.extends.VcsDriver.
24e40 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 {.protected.$cache;.protected.$b
24e60 61 73 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 aseUrl;.protected.$tags;.protect
24e80 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 ed.$branches;.protected.$rootIde
24ea0 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 ntifier;.protected.$infoCache.=.
24ec0 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 75 6e 6b 50 61 74 68 20 3d array();..protected.$trunkPath.=
24ee0 20 27 74 72 75 6e 6b 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 50 61 74 .'trunk';.protected.$branchesPat
24f00 68 20 3d 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 50 h.=.'branches';.protected.$tagsP
24f20 61 74 68 20 3d 20 27 74 61 67 73 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 69 6c 3b ath.=.'tags';.....private.$util;
24f40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 .....public.function.initialize(
24f60 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 ).{.$this->url.=.$this->baseUrl.
24f80 3d 20 72 74 72 69 6d 28 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 69 73 =.rtrim(self::normalizeUrl($this
24fa0 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e ->url),.'/');..if.(isset($this->
24fc0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 repoConfig['trunk-path'])).{.$th
24fe0 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 is->trunkPath.=.$this->repoConfi
25000 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 g['trunk-path'];.}.if.(isset($th
25020 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 29 is->repoConfig['branches-path'])
25040 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d ).{.$this->branchesPath.=.$this-
25060 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a >repoConfig['branches-path'];.}.
25080 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 if.(isset($this->repoConfig['tag
250a0 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 3d 20 24 s-path'])).{.$this->tagsPath.=.$
250c0 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 3b 0a 7d this->repoConfig['tags-path'];.}
250e0 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 ..if.(false.!==.($pos.=.strrpos(
25100 24 74 68 69 73 2d 3e 75 72 6c 2c 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 $this->url,.'/'...$this->trunkPa
25120 74 68 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 72 28 th))).{.$this->baseUrl.=.substr(
25140 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e $this->url,.0,.$pos);.}..$this->
25160 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 cache.=.new.Cache($this->io,.$th
25180 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 61 63 68 65 2e is->config->get('home').'/cache.
251a0 73 76 6e 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d svn/'.preg_replace('{[^a-z0-9.]}
251c0 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 68 69 i',.'-',.$this->baseUrl));..$thi
251e0 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 s->getBranches();.$this->getTags
25200 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f ();.}.....public.function.getRoo
25220 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f tIdentifier().{.return.$this->ro
25240 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 otIdentifier.?:.$this->trunkPath
25260 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 ;.}.....public.function.getUrl()
25280 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c .{.return.$this->url;.}.....publ
252a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 ic.function.getSource($identifie
252c0 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e r).{.return.array('type'.=>.'svn
252e0 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 ',.'url'.=>.$this->baseUrl,.'ref
25300 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 erence'.=>.$identifier);.}.....p
25320 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 ublic.function.getDist($identifi
25340 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 er).{.return.null;.}.....public.
25360 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 function.getComposerInformation(
25380 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 $identifier).{.$identifier.=.'/'
253a0 20 2e 20 74 72 69 6d 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b ...trim($identifier,.'/')...'/';
253c0 0a 0a 69 66 20 28 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 ..if.($res.=.$this->cache->read(
253e0 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 $identifier.'.json')).{.$this->i
25400 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 nfoCache[$identifier].=.JsonFile
25420 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 ::parseJson($res);.}..if.(!isset
25440 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 ($this->infoCache[$identifier]))
25460 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f 24 7d .{.preg_match('{^(.+?)(@\d+)?/$}
25480 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d ',.$identifier,.$match);.if.(!em
254a0 70 74 79 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 63 68 pty($match[2])).{.$path.=.$match
254c0 5b 31 5d 3b 0a 24 72 65 76 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a [1];.$rev.=.$match[2];.}.else.{.
254e0 24 70 61 74 68 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 3b 0a $path.=.$identifier;.$rev.=.'';.
25500 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 }..try.{.$resource.=.$path.'comp
25520 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 oser.json';.$output.=.$this->exe
25540 63 75 74 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e cute('svn.cat',.$this->baseUrl..
25560 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f .$resource...$rev);.if.(!trim($o
25580 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 utput)).{.return;.}.}.catch.(\Ru
255a0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 ntimeException.$e).{.throw.new.T
255c0 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 ransportException($e->getMessage
255e0 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 ());.}..$composer.=.JsonFile::pa
25600 72 73 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 rseJson($output,.$this->baseUrl.
25620 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 ..$resource...$rev);..if.(!isset
25640 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d ($composer['time'])).{.$output.=
25660 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 .$this->execute('svn.info',.$thi
25680 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 s->baseUrl...$path...$rev);.fore
256a0 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 ach.($this->process->splitLines(
256c0 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 26 $output).as.$line).{.if.($line.&
256e0 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 &.preg_match('{^Last.Changed.Dat
25700 65 3a 20 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a e:.([^(]+)}',.$line,.$match)).{.
25720 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 29 $date.=.new.\DateTime($match[1])
25740 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 ;.$composer['time'].=.$date->for
25760 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d mat('Y-m-d.H:i:s');.break;.}.}.}
25780 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 ..$this->cache->write($identifie
257a0 72 2e 27 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 r.'.json',.json_encode($composer
257c0 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 ));.$this->infoCache[$identifier
257e0 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ].=.$composer;.}..return.$this->
25800 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 infoCache[$identifier];.}.....pu
25820 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 blic.function.getTags().{.if.(nu
25840 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 ll.===.$this->tags).{.$this->tag
25860 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 s.=.array();..$output.=.$this->e
25880 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 xecute('svn.ls.--verbose',.$this
258a0 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 ->baseUrl...'/'...$this->tagsPat
258c0 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 h);.if.($output).{.foreach.($thi
258e0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 s->process->splitLines($output).
25900 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b as.$line).{.$line.=.trim($line);
25920 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 .if.($line.&&.preg_match('{^\s*(
25940 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 \S+).*?(\S+)\s*$}',.$line,.$matc
25960 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 h)).{.if.(isset($match[1]).&&.is
25980 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 set($match[2]).&&.$match[2].!==.
259a0 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 './').{.$this->tags[rtrim($match
259c0 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 [2],.'/')].=.'/'...$this->tagsPa
259e0 74 68 20 2e 0a 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 40 27 20 2e 20 24 6d 61 th...'/'...$match[2]...'@'...$ma
25a00 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tch[1];.}.}.}.}.}..return.$this-
25a20 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 >tags;.}.....public.function.get
25a40 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d Branches().{.if.(null.===.$this-
25a60 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 >branches).{.$this->branches.=.a
25a80 72 72 61 79 28 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 rray();..$output.=.$this->execut
25aa0 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 e('svn.ls.--verbose',.$this->bas
25ac0 65 55 72 6c 20 2e 20 27 2f 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 eUrl...'/');.if.($output).{.fore
25ae0 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 ach.($this->process->splitLines(
25b00 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 $output).as.$line).{.$line.=.tri
25b20 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 m($line);.if.($line.&&.preg_matc
25b40 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 h('{^\s*(\S+).*?(\S+)\s*$}',.$li
25b60 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b ne,.$match)).{.if.(isset($match[
25b80 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 1]).&&.isset($match[2]).&&.$matc
25ba0 68 5b 32 5d 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 2e 20 27 2f 27 29 h[2].===.$this->trunkPath...'/')
25bc0 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 .{.$this->branches[$this->trunkP
25be0 61 74 68 5d 20 3d 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 2e 20 ath].=.'/'...$this->trunkPath...
25c00 27 2f 40 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 '/@'.$match[1];.$this->rootIdent
25c20 69 66 69 65 72 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 74 ifier.=.$this->branches[$this->t
25c40 72 75 6e 6b 50 61 74 68 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 28 runkPath];.break;.}.}.}.}.unset(
25c60 24 6f 75 74 70 75 74 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 $output);..$output.=.$this->exec
25c80 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 ute('svn.ls.--verbose',.$this->b
25ca0 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 aseUrl...'/'...$this->branchesPa
25cc0 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 th);.if.($output).{.foreach.($th
25ce0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 74 72 69 6d 28 24 6f 75 is->process->splitLines(trim($ou
25d00 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 tput)).as.$line).{.$line.=.trim(
25d20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 $line);.if.($line.&&.preg_match(
25d40 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 '{^\s*(\S+).*?(\S+)\s*$}',.$line
25d60 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d ,.$match)).{.if.(isset($match[1]
25d80 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b ).&&.isset($match[2]).&&.$match[
25da0 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 72 2].!==.'./').{.$this->branches[r
25dc0 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 27 2f 27 20 2e 20 24 74 trim($match[2],.'/')].=.'/'...$t
25de0 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 2e 0a 27 2f 27 20 2e 20 24 6d 61 74 63 68 his->branchesPath...'/'...$match
25e00 5b 32 5d 20 2e 20 27 40 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d [2]...'@'...$match[1];.}.}.}.}.}
25e20 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->branches;.}.....
25e40 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 public.static.function.supports(
25e60 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 IOInterface.$io,.$url,.$deep.=.f
25e80 61 6c 73 65 29 0a 7b 0a 24 75 72 6c 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 alse).{.$url.=.self::normalizeUr
25ea0 6c 28 24 75 72 6c 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 73 76 6e 3a l($url);.if.(preg_match('#(^svn:
25ec0 2f 2f 7c 5e 73 76 6e 5c 2b 73 73 68 3a 2f 2f 7c 73 76 6e 5c 2e 29 23 69 27 2c 20 24 75 72 6c 29 //|^svn\+ssh://|svn\.)#i',.$url)
25ee0 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 64 65 65 70 ).{.return.true;.}....if.(!$deep
25f00 20 26 26 20 21 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b .&&.!static::isLocalUrl($url)).{
25f20 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 .return.false;.}..$processExecut
25f40 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 24 65 78 or.=.new.ProcessExecutor();..$ex
25f60 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 0a it.=.$processExecutor->execute(.
25f80 22 73 76 6e 20 69 6e 66 6f 20 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 7b 24 75 72 "svn.info.--non-interactive.{$ur
25fa0 6c 7d 22 2c 0a 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 0a 29 3b 0a 0a 69 66 20 28 24 65 78 69 l}",.$ignoredOutput.);..if.($exi
25fc0 74 20 3d 3d 3d 20 30 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 t.===.0).{...return.true;.}..if.
25fe0 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 72 6f 63 65 73 73 45 78 65 63 75 (false.!==.stripos($processExecu
26000 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 27 61 75 74 68 6f 72 69 7a tor->getErrorOutput(),.'authoriz
26020 61 74 69 6f 6e 20 66 61 69 6c 65 64 3a 27 29 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 74 72 ation.failed:')).{.....return.tr
26040 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ue;.}..return.false;.}.........p
26060 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 rotected.static.function.normali
26080 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 zeUrl($url).{.$fs.=.new.Filesyst
260a0 65 6d 28 29 3b 0a 69 66 20 28 24 66 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 75 em();.if.($fs->isAbsolutePath($u
260c0 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 66 69 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 rl)).{.return.'file://'...strtr(
260e0 24 75 72 6c 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c $url,.'\\',.'/');.}..return.$url
26100 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ;.}...........protected.function
26120 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 6e .execute($command,.$url).{.if.(n
26140 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 75 74 69 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 74 ull.===.$this->util).{.$this->ut
26160 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 74 69 6c 28 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c il.=.new.SvnUtil($this->baseUrl,
26180 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a .$this->io,.$this->process);.}..
261a0 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 65 78 65 63 75 74 try.{.return.$this->util->execut
261c0 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e e($command,.$url);.}.catch.(\Run
261e0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 timeException.$e).{.if.(0.!==.$t
26200 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 his->process->execute('svn.--ver
26220 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 sion',.$ignoredOutput)).{.throw.
26240 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f new.\RuntimeException('Failed.to
26260 20 6c 6f 61 64 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 73 76 6e 20 77 61 73 20 6e 6f .load.'.$this->url.',.svn.was.no
26280 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c t.found,.check.that.it.is.instal
262a0 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e led.and.in.your.PATH.env.'..."\n
262c0 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 \n"...$this->process->getErrorOu
262e0 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 tput());.}..throw.new.\RuntimeEx
26300 63 65 70 74 69 6f 6e 28 0a 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 ception(.'Repository.'.$this->ur
26320 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 2e 24 65 l.'.could.not.be.processed,.'.$e
26340 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a ->getMessage().);.}.}.}.<?php...
26360 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f .........namespace.Composer\Repo
26380 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 sitory\Vcs;..use.Composer\IO\IOI
263a0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 63 73 44 72 69 76 65 nterface;.....interface.VcsDrive
263c0 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rInterface.{....public.function.
263e0 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 initialize();........public.func
26400 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 tion.getComposerInformation($ide
26420 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ntifier);.......public.function.
26440 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 getRootIdentifier();.......publi
26460 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a c.function.getBranches();.......
26480 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a public.function.getTags();......
264a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 public.function.getDist($identif
264c0 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f ier);......public.function.getSo
264e0 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urce($identifier);.......public.
26500 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 function.getUrl();.........publi
26520 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e c.function.hasComposerFile($iden
26540 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 tifier);..........public.static.
26560 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 function.supports(IOInterface.$i
26580 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 o,.$url,.$deep.=.false);.}.<?php
265a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 ............namespace.Composer\R
265c0 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f epository\Vcs;..use.Composer\Jso
265e0 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 n\JsonFile;.use.Composer\Util\Pr
26600 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c ocessExecutor;.use.Composer\Util
26620 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 \Filesystem;.use.Composer\IO\IOI
26640 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 72 69 76 65 72 20 65 78 74 nterface;.....class.HgDriver.ext
26660 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 ends.VcsDriver.{.protected.$tags
26680 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 ;.protected.$branches;.protected
266a0 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 .$rootIdentifier;.protected.$rep
266c0 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 oDir;.protected.$infoCache.=.arr
266e0 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 ay();.....public.function.initia
26700 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 lize().{.if.(static::isLocalUrl(
26720 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 $this->url)).{.$this->repoDir.=.
26740 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 str_replace('file://',.'',.$this
26760 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 74 68 ->url);.}.else.{.$cacheDir.=.$th
26780 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 61 63 68 is->config->get('home')...'/cach
267a0 65 2e 68 67 27 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 63 61 63 68 65 44 69 e.hg';.$this->repoDir.=.$cacheDi
267c0 72 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d r...'/'...preg_replace('{[^a-z0-
267e0 39 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 9]}i',.'-',.$this->url)...'/';..
26800 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 $fs.=.new.Filesystem();.$fs->ens
26820 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 61 63 68 65 44 69 72 29 3b 0a 0a ureDirectoryExists($cacheDir);..
26840 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e if.(!is_writable(dirname($this->
26860 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 repoDir))).{.throw.new.\RuntimeE
26880 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d xception('Can.not.clone.'.$this-
268a0 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 >url.'.to.access.package.informa
268c0 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 24 63 61 63 68 65 44 69 72 2e 27 22 20 64 69 72 65 63 74 tion..The."'.$cacheDir.'".direct
268e0 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 ory.is.not.writable.by.the.curre
26900 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 nt.user.');.}....if.(is_dir($thi
26920 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 s->repoDir).&&.0.===.$this->proc
26940 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 ess->execute('hg.summary',.$outp
26960 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d ut,.$this->repoDir)).{.if.(0.!==
26980 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 70 75 6c .$this->process->execute('hg.pul
269a0 6c 20 2d 75 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 l.-u',.$output,.$this->repoDir))
269c0 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c .{.$this->io->write('<error>Fail
269e0 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 70 61 63 ed.to.update.'.$this->url.',.pac
26a00 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 73 20 72 65 70 6f 73 kage.information.from.this.repos
26a20 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e 24 74 68 69 73 2d 3e itory.may.be.outdated.('.$this->
26a40 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2e 27 29 3c 2f 65 72 process->getErrorOutput().')</er
26a60 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e 72 65 6d 6f 76 65 ror>');.}.}.else.{...$fs->remove
26a80 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 Directory($this->repoDir);..if.(
26aa0 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 0.!==.$this->process->execute(sp
26ac0 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 rintf('hg.clone.%s.%s',.escapesh
26ae0 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 ellarg($this->url),.escapeshella
26b00 72 67 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 rg($this->repoDir)),.$output,.$c
26b20 61 63 68 65 44 69 72 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f acheDir)).{.$output.=.$this->pro
26b40 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 cess->getErrorOutput();..if.(0.!
26b60 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 2d ==.$this->process->execute('hg.-
26b80 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 -version',.$ignoredOutput)).{.th
26ba0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 row.new.\RuntimeException('Faile
26bc0 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 68 67 20 77 61 d.to.clone.'.$this->url.',.hg.wa
26be0 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e s.not.found,.check.that.it.is.in
26c00 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e stalled.and.in.your.PATH.env.'..
26c20 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 ."\n\n"...$this->process->getErr
26c40 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 orOutput());.}..throw.new.\Runti
26c60 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 meException('Failed.to.clone.'.$
26c80 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b this->url.',.could.not.read.pack
26ca0 61 67 65 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 ages.from.it'..."\n\n"..$output)
26cc0 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 ;.}.}.}..$this->getTags();.$this
26ce0 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ->getBranches();.}.....public.fu
26d00 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 nction.getRootIdentifier().{.if.
26d20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 (null.===.$this->rootIdentifier)
26d40 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e .{.$this->process->execute(sprin
26d60 74 66 28 27 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d 22 27 29 tf('hg.tip.--template."{node}"')
26d80 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 6f 75 74 ,.$output,.$this->repoDir);.$out
26da0 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 put.=.$this->process->splitLines
26dc0 28 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 ($output);.$this->rootIdentifier
26de0 20 3d 20 24 6f 75 74 70 75 74 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .=.$output[0];.}..return.$this->
26e00 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rootIdentifier;.}.....public.fun
26e20 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 ction.getUrl().{.return.$this->u
26e40 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 rl;.}.....public.function.getSou
26e60 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 rce($identifier).{.$label.=.arra
26e80 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 28 61 72 72 61 79 29 20 24 74 y_search($identifier,.(array).$t
26ea0 68 69 73 2d 3e 74 61 67 73 29 20 3f 20 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 his->tags).?.:.$identifier;..ret
26ec0 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 urn.array('type'.=>.'hg',.'url'.
26ee0 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 =>.$this->getUrl(),.'reference'.
26f00 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f =>.$label);.}.....public.functio
26f20 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getDist($identifier).{.return.
26f40 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 null;.}.....public.function.getC
26f60 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a omposerInformation($identifier).
26f80 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 {.if.(!isset($this->infoCache[$i
26fa0 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 dentifier])).{.$this->process->e
26fc0 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 61 74 20 2d 72 20 25 73 20 63 6f 6d xecute(sprintf('hg.cat.-r.%s.com
26fe0 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 64 65 poser.json',.escapeshellarg($ide
27000 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 ntifier)),.$composer,.$this->rep
27020 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a oDir);..if.(!trim($composer)).{.
27040 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a return;.}..$composer.=.JsonFile:
27060 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 64 65 6e 74 69 66 69 65 :parseJson($composer,.$identifie
27080 72 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 r);..if.(!isset($composer['time'
270a0 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 ])).{.$this->process->execute(sp
270c0 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c rintf('hg.log.--template."{date|
270e0 72 66 63 38 32 32 64 61 74 65 7d 22 20 2d 72 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c rfc822date}".-r.%s',.escapeshell
27100 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 arg($identifier)),.$output,.$thi
27120 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 s->repoDir);.$date.=.new.\DateTi
27140 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 me(trim($output));.$composer['ti
27160 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a me'].=.$date->format('Y-m-d.H:i:
27180 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 s');.}.$this->infoCache[$identif
271a0 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ier].=.$composer;.}..return.$thi
271c0 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a s->infoCache[$identifier];.}....
271e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 .public.function.getTags().{.if.
27200 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 20 3d (null.===.$this->tags).{.$tags.=
27220 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 .array();..$this->process->execu
27240 74 65 28 27 68 67 20 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 te('hg.tags',.$output,.$this->re
27260 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d poDir);.foreach.($this->process-
27280 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a >splitLines($output).as.$tag).{.
272a0 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e 5c 73 5d if.($tag.&&.preg_match('(^([^\s]
272c0 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 +)\s+\d+:(.*)$)',.$tag,.$match))
272e0 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b .{.$tags[$match[1]].=.$match[2];
27300 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 70 27 5d 29 3b 0a 0a 24 74 68 69 73 .}.}.unset($tags['tip']);..$this
27320 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ->tags.=.$tags;.}..return.$this-
27340 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 >tags;.}.....public.function.get
27360 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d Branches().{.if.(null.===.$this-
27380 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 >branches).{.$branches.=.array()
273a0 3b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e ;.$bookmarks.=.array();..$this->
273c0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 65 73 27 2c 20 process->execute('hg.branches',.
273e0 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 $output,.$this->repoDir);.foreac
27400 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f h.($this->process->splitLines($o
27420 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 utput).as.$branch).{.if.($branch
27440 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b .&&.preg_match('(^([^\s]+)\s+\d+
27460 3a 28 2e 2a 29 24 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 :(.*)$)',.$branch,.$match)).{.$b
27480 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a ranches[$match[1]].=.$match[2];.
274a0 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 }.}..$this->process->execute('hg
274c0 20 62 6f 6f 6b 6d 61 72 6b 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 .bookmarks',.$output,.$this->rep
274e0 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e oDir);.foreach.($this->process->
27500 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 splitLines($output).as.$branch).
27520 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 {.if.($branch.&&.preg_match('(^(
27540 3f 3a 5b 5c 73 2a 5d 2a 29 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c ?:[\s*]*)([^\s]+)\s+\d+:(.*)$)',
27560 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 5b .$branch,.$match)).{.$bookmarks[
27580 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 24 $match[1]].=.$match[2];.}.}....$
275a0 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 62 6f this->branches.=.array_merge($bo
275c0 6f 6b 6d 61 72 6b 73 2c 20 24 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 okmarks,.$branches);.}..return.$
275e0 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 this->branches;.}.....public.sta
27600 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 tic.function.supports(IOInterfac
27620 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 e.$io,.$url,.$deep.=.false).{.if
27640 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 3a .(preg_match('#(^(?:https?|ssh):
27660 2f 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 3a //(?:[^@]@)?bitbucket.org|https:
27680 2f 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c 29 //(?:.*?)\.kilnhg.com)#i',.$url)
276a0 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 61 74 69 63 ).{.return.true;.}....if.(static
276c0 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 ::isLocalUrl($url)).{.if.(!is_di
276e0 72 28 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 r($url)).{.throw.new.\RuntimeExc
27700 65 70 74 69 6f 6e 28 27 44 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 eption('Directory.does.not.exist
27720 3a 20 27 2e 24 75 72 6c 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f :.'.$url);.}..$process.=.new.Pro
27740 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 cessExecutor();.$url.=.str_repla
27760 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 ce('file://',.'',.$url);...if.($
27780 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 process->execute('hg.summary',.$
277a0 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 output,.$url).===.0).{.return.tr
277c0 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 ue;.}.}..if.(!$deep).{.return.fa
277e0 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 lse;.}..$processExecutor.=.new.P
27800 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 rocessExecutor();.$exit.=.$proce
27820 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 ssExecutor->execute(sprintf('hg.
27840 69 64 65 6e 74 69 66 79 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 identify.%s',.escapeshellarg($ur
27860 6c 29 29 2c 20 24 69 67 6e 6f 72 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d l)),.$ignored);..return.$exit.==
27880 3d 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 =.0;.}.}.<?php............namesp
278a0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 ace.Composer\Repository\Vcs;..us
278c0 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 e.Composer\Downloader\TransportE
278e0 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 xception;.use.Composer\Config;.u
27900 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 se.Composer\IO\IOInterface;.use.
27920 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 Composer\Util\ProcessExecutor;.u
27940 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 se.Composer\Util\RemoteFilesyste
27960 6d 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 72 69 76 65 m;.......abstract.class.VcsDrive
27980 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a r.implements.VcsDriverInterface.
279a0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 72 69 {.protected.$url;.protected.$ori
279c0 67 69 6e 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 ginUrl;.protected.$repoConfig;.p
279e0 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b rotected.$io;.protected.$config;
27a00 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .protected.$process;.protected.$
27a20 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 remoteFilesystem;...........fina
27a40 6c 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 l.public.function.__construct(ar
27a60 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f ray.$repoConfig,.IOInterface.$io
27a80 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f ,.Config.$config,.ProcessExecuto
27aa0 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 r.$process.=.null,.RemoteFilesys
27ac0 74 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a tem.$remoteFilesystem.=.null).{.
27ae0 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b $this->url.=.$repoConfig['url'];
27b00 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b .$this->originUrl.=.$repoConfig[
27b20 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 'url'];.$this->repoConfig.=.$rep
27b40 6f 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d oConfig;.$this->io.=.$io;.$this-
27b60 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 >config.=.$config;.$this->proces
27b80 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 s.=.$process.?:.new.ProcessExecu
27ba0 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 tor;.$this->remoteFilesystem.=.$
27bc0 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 remoteFilesystem.?:.new.RemoteFi
27be0 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lesystem($io);.}.....public.func
27c00 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 tion.hasComposerFile($identifier
27c20 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 67 ).{.try.{.return.(bool).$this->g
27c40 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 etComposerInformation($identifie
27c60 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 r);.}.catch.(TransportException.
27c80 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a $e).{.}..return.false;.}........
27ca0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 68 65 6d 65 28 29 0a .protected.function.getScheme().
27cc0 7b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 {.if.(extension_loaded('openssl'
27ce0 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 )).{.return.'https';.}..return.'
27d00 68 74 74 70 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 http';.}.........protected.funct
27d20 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion.getContents($url).{.return.$
27d40 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 this->remoteFilesystem->getConte
27d60 6e 74 73 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 nts($this->originUrl,.$url,.fals
27d80 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e e);.}..protected.static.function
27da0 20 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c .isLocalUrl($url).{.return.(bool
27dc0 29 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 66 69 6c 65 3a 2f 2f 7c 2f 7c 5b 61 2d 7a 5d ).preg_match('{^(file://|/|[a-z]
27de0 3a 5b 5c 5c 5c 5c 2f 5d 29 7d 69 27 2c 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a :[\\\\/])}i',.$url);.}.}.<?php..
27e00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ..........namespace.Composer\Rep
27e20 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c ository\Vcs;..use.Composer\Json\
27e40 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 JsonFile;.use.Composer\IO\IOInte
27e60 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 rface;.....class.HgBitbucketDriv
27e80 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 er.extends.VcsDriver.{.protected
27ea0 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a .$owner;.protected.$repository;.
27ec0 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e protected.$tags;.protected.$bran
27ee0 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b ches;.protected.$rootIdentifier;
27f00 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b .protected.$infoCache.=.array();
27f20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 .....public.function.initialize(
27f40 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 ).{.preg_match('#^https://bitbuc
27f60 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 ket\.org/([^/]+)/([^/]+)/?$#',.$
27f80 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 this->url,.$match);.$this->owner
27fa0 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 .=.$match[1];.$this->repository.
27fc0 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 =.$match[2];.$this->originUrl.=.
27fe0 27 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 'bitbucket.org';.}.....public.fu
28000 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 nction.getRootIdentifier().{.if.
28020 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 (null.===.$this->rootIdentifier)
28040 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 .{.$resource.=.$this->getScheme(
28060 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 )...'://api.bitbucket.org/1.0/re
28080 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 positories/'.$this->owner.'/'.$t
280a0 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 72 65 70 6f 44 61 his->repository.'/tags';.$repoDa
280c0 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e ta.=.JsonFile::parseJson($this->
280e0 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 getContents($resource),.$resourc
28100 65 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 e);.$this->rootIdentifier.=.$rep
28120 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 0a 72 65 74 oData['tip']['raw_node'];.}..ret
28140 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a urn.$this->rootIdentifier;.}....
28160 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 .public.function.getUrl().{.retu
28180 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rn.$this->url;.}.....public.func
281a0 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 6c tion.getSource($identifier).{.$l
281c0 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c abel.=.array_search($identifier,
281e0 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 .$this->getTags()).?:.$identifie
28200 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c r;..return.array('type'.=>.'hg',
28220 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 .'url'.=>.$this->getUrl(),.'refe
28240 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rence'.=>.$label);.}.....public.
28260 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a function.getDist($identifier).{.
28280 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 $label.=.array_search($identifie
282a0 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 r,.$this->getTags()).?:.$identif
282c0 69 65 72 3b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e ier;.$url.=.$this->getScheme()..
282e0 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 .'://bitbucket.org/'.$this->owne
28300 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e r.'/'.$this->repository.'/get/'.
28320 24 6c 61 62 65 6c 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 $label.'.zip';..return.array('ty
28340 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 pe'.=>.'zip',.'url'.=>.$url,.'re
28360 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 6c 61 62 65 6c 2c 20 27 73 68 61 73 75 6d 27 20 3d 3e 20 ference'.=>.$label,.'shasum'.=>.
28380 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f '');.}.....public.function.getCo
283a0 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b mposerInformation($identifier).{
283c0 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 .if.(!isset($this->infoCache[$id
283e0 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d entifier])).{.$resource.=.$this-
28400 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 >getScheme()...'://bitbucket.org
28420 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
28440 69 74 6f 72 79 2e 27 2f 72 61 77 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 itory.'/raw/'.$identifier.'/comp
28460 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 oser.json';.$composer.=.$this->g
28480 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 21 24 63 6f 6d etContents($resource);.if.(!$com
284a0 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 poser).{.return;.}..$composer.=.
284c0 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 JsonFile::parseJson($composer,.$
284e0 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 resource);..if.(!isset($composer
28500 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e ['time'])).{.$resource.=.$this->
28520 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e getScheme()...'://api.bitbucket.
28540 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 org/1.0/repositories/'.$this->ow
28560 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 61 6e ner.'/'.$this->repository.'/chan
28580 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 65 74 gesets/'.$identifier;.$changeset
285a0 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 .=.JsonFile::parseJson($this->ge
285c0 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 tContents($resource),.$resource)
285e0 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 65 74 ;.$composer['time'].=.$changeset
28600 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 ['timestamp'];.}.$this->infoCach
28620 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 e[$identifier].=.$composer;.}..r
28640 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 eturn.$this->infoCache[$identifi
28660 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 er];.}.....public.function.getTa
28680 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 gs().{.if.(null.===.$this->tags)
286a0 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 .{.$resource.=.$this->getScheme(
286c0 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 )...'://api.bitbucket.org/1.0/re
286e0 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 positories/'.$this->owner.'/'.$t
28700 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 his->repository.'/tags';.$tagsDa
28720 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e ta.=.JsonFile::parseJson($this->
28740 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 getContents($resource),.$resourc
28760 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 e);.$this->tags.=.array();.forea
28780 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 29 20 ch.($tagsData.as.$tag.=>.$data).
287a0 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 {.$this->tags[$tag].=.$data['raw
287c0 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 _node'];.}.}..return.$this->tags
287e0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 ;.}.....public.function.getBranc
28800 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e hes().{.if.(null.===.$this->bran
28820 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 ches).{.$resource.=.$this->getSc
28840 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 heme()...'://api.bitbucket.org/1
28860 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 .0/repositories/'.$this->owner.'
28880 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 73 27 /'.$this->repository.'/branches'
288a0 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a ;.$branchData.=.JsonFile::parseJ
288c0 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 son($this->getContents($resource
288e0 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d ),.$resource);.$this->branches.=
28900 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 .array();.foreach.($branchData.a
28920 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 s.$branch.=>.$data).{.$this->bra
28940 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 nches[$branch].=.$data['raw_node
28960 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b '];.}.}..return.$this->branches;
28980 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 .}.....public.static.function.su
289a0 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 75 72 6c 2c 20 24 64 pports(IOInterface.$io,.$url,.$d
289c0 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 eep.=.false).{.if.(!preg_match('
289e0 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 #^https://bitbucket\.org/([^/]+)
28a00 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 /([^/]+)/?$#',.$url)).{.return.f
28a20 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 alse;.}..if.(!extension_loaded('
28a40 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 openssl')).{.if.($io->isVerbose(
28a60 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 )).{.$io->write('Skipping.Bitbuc
28a80 6b 65 74 20 68 67 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 ket.hg.driver.for.'.$url.'.becau
28aa0 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 se.the.OpenSSL.PHP.extension.is.
28ac0 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a missing.');.}..return.false;.}..
28ae0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.true;.}.}.<?php..........
28b00 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b ..namespace.Composer\Repository;
28b20 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 .........class.InstalledArrayRep
28b40 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 ository.extends.ArrayRepository.
28b60 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e implements.InstalledRepositoryIn
28b80 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 terface.{....public.function.wri
28ba0 74 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c te().{.}.....public.function.rel
28bc0 6f 61 64 28 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d oad().{.}.}.<?php............nam
28be0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 espace.Composer\Repository;..use
28c00 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a .Composer\Package\AliasPackage;.
28c20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 use.Composer\Package\PackageInte
28c40 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 53 74 72 65 61 6d 61 62 6c 65 52 rface;.....interface.StreamableR
28c60 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 epositoryInterface.extends.Repos
28c80 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a itoryInterface.{................
28ca0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 61 6c 50 .....public.function.getMinimalP
28cc0 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ackages();........public.functio
28ce0 6e 20 6c 6f 61 64 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 29 3b 0a 0a 0a 0a 0a n.loadPackage(array.$data);.....
28d00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 41 6c 69 61 73 50 61 63 ....public.function.loadAliasPac
28d20 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 kage(array.$data,.PackageInterfa
28d40 63 65 20 24 61 6c 69 61 73 4f 66 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ce.$aliasOf);.}.<?php...........
28d60 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a .namespace.Composer\Repository;.
28d80 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f .use.Composer\Downloader\Transpo
28da0 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 rtException;.use.Composer\Reposi
28dc0 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 tory\Vcs\VcsDriverInterface;.use
28de0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f .Composer\Package\Version\Versio
28e00 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f nParser;.use.Composer\Package\Lo
28e20 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ader\ArrayLoader;.use.Composer\P
28e40 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 ackage\Loader\LoaderInterface;.u
28e60 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 se.Composer\IO\IOInterface;.use.
28e80 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 63 73 52 65 Composer\Config;.....class.VcsRe
28ea0 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 pository.extends.ArrayRepository
28ec0 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 .{.protected.$url;.protected.$pa
28ee0 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 3b 0a 70 ckageName;.protected.$verbose;.p
28f00 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b rotected.$io;.protected.$config;
28f20 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 .protected.$versionParser;.prote
28f40 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 cted.$type;.protected.$loader;.p
28f60 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 rotected.$repoConfig;..public.fu
28f80 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f nction.__construct(array.$repoCo
28fa0 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 nfig,.IOInterface.$io,.Config.$c
28fc0 6f 6e 66 69 67 2c 20 61 72 72 61 79 20 24 64 72 69 76 65 72 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a onfig,.array.$drivers.=.null).{.
28fe0 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 3d 20 24 64 72 69 76 65 72 73 20 3f 3a 20 61 72 72 $this->drivers.=.$drivers.?:.arr
29000 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 ay(.'github'.=>.'Composer\Reposi
29020 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 44 72 69 76 65 72 27 2c 0a 27 67 69 74 2d 62 69 74 tory\Vcs\GitHubDriver',.'git-bit
29040 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c bucket'.=>.'Composer\Repository\
29060 56 63 73 5c 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 67 69 74 27 20 3d Vcs\GitBitbucketDriver',.'git'.=
29080 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 44 72 >.'Composer\Repository\Vcs\GitDr
290a0 69 76 65 72 27 2c 0a 27 73 76 6e 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 iver',.'svn'.=>.'Composer\Reposi
290c0 74 6f 72 79 5c 56 63 73 5c 53 76 6e 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 75 63 6b tory\Vcs\SvnDriver',.'hg-bitbuck
290e0 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c et'.=>.'Composer\Repository\Vcs\
29100 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 43 6f 6d HgBitbucketDriver',.'hg'.=>.'Com
29120 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 27 2c 0a poser\Repository\Vcs\HgDriver',.
29140 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 );..$this->url.=.$repoConfig['ur
29160 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 l'];.$this->io.=.$io;.$this->typ
29180 65 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f e.=.isset($repoConfig['type']).?
291a0 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 20 3a 20 27 76 63 73 27 3b 0a 24 74 .$repoConfig['type'].:.'vcs';.$t
291c0 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 3b his->verbose.=.$io->isVerbose();
291e0 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d .$this->config.=.$config;.$this-
29200 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 >repoConfig.=.$repoConfig;.}..pu
29220 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 61 64 65 72 28 4c 6f 61 64 65 72 49 6e blic.function.setLoader(LoaderIn
29240 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 terface.$loader).{.$this->loader
29260 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .=.$loader;.}..public.function.g
29280 65 74 44 72 69 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 72 etDriver().{.if.(isset($this->dr
292a0 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 29 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 ivers[$this->type])).{.$class.=.
292c0 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 3b 0a 24 64 72 $this->drivers[$this->type];.$dr
292e0 69 76 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e iver.=.new.$class($this->repoCon
29300 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a fig,.$this->io,.$this->config);.
29320 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 $driver->initialize();..return.$
29340 64 72 69 76 65 72 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 driver;.}..foreach.($this->drive
29360 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 rs.as.$driver).{.if.($driver::su
29380 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b pports($this->io,.$this->url)).{
293a0 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 .$driver.=.new.$driver($this->re
293c0 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 poConfig,.$this->io,.$this->conf
293e0 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 ig);.$driver->initialize();..ret
29400 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 urn.$driver;.}.}..foreach.($this
29420 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 ->drivers.as.$driver).{.if.($dri
29440 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e ver::supports($this->io,.$this->
29460 75 72 6c 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 69 url,.true)).{.$driver.=.new.$dri
29480 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f ver($this->repoConfig,.$this->io
294a0 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 ,.$this->config);.$driver->initi
294c0 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 7d 0a 7d 0a alize();..return.$driver;.}.}.}.
294e0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 .protected.function.initialize()
29500 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 62 6f .{.parent::initialize();..$verbo
29520 73 65 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 3b 0a 0a 24 64 72 69 76 65 72 20 3d 20 se.=.$this->verbose;..$driver.=.
29540 24 74 68 69 73 2d 3e 67 65 74 44 72 69 76 65 72 28 29 3b 0a 69 66 20 28 21 24 64 72 69 76 65 72 $this->getDriver();.if.(!$driver
29560 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
29580 63 65 70 74 69 6f 6e 28 27 4e 6f 20 64 72 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 68 61 6e 64 ception('No.driver.found.to.hand
295a0 6c 65 20 56 43 53 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b le.VCS.repository.'.$this->url);
295c0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 .}..$this->versionParser.=.new.V
295e0 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 ersionParser;.if.(!$this->loader
29600 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 ).{.$this->loader.=.new.ArrayLoa
29620 64 65 72 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 7d 0a 0a 74 72 der($this->versionParser);.}..tr
29640 79 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 2d 3e 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 y.{.if.($driver->hasComposerFile
29660 28 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 29 20 ($driver->getRootIdentifier())).
29680 7b 0a 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e {.$data.=.$driver->getComposerIn
296a0 66 6f 72 6d 61 74 69 6f 6e 28 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 formation($driver->getRootIdenti
296c0 66 69 65 72 28 29 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 21 65 fier());.$this->packageName.=.!e
296e0 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d mpty($data['name']).?.$data['nam
29700 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f e'].:.null;.}.}.catch.(\Exceptio
29720 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 n.$e).{.if.($verbose).{.$this->i
29740 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 70 61 72 73 69 6e 67 20 27 2e 24 64 72 69 o->write('Skipped.parsing.'.$dri
29760 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 2e 27 2c 20 27 2e 24 65 ver->getRootIdentifier().',.'.$e
29780 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 ->getMessage());.}.}..foreach.($
297a0 64 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 20 61 73 20 24 74 61 67 20 3d 3e 20 24 69 64 driver->getTags().as.$tag.=>.$id
297c0 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 entifier).{.$msg.=.'Reading.comp
297e0 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 oser.json.of.<info>'...($this->p
29800 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 ackageName.?:.$this->url)...'</i
29820 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 61 67 20 2e 20 27 3c 2f 63 6f 6d nfo>.(<comment>'...$tag...'</com
29840 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e ment>)';.if.($verbose).{.$this->
29860 69 6f 2d 3e 77 72 69 74 65 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d io->write($msg);.}.else.{.$this-
29880 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a >io->overwrite($msg,.false);.}..
298a0 0a 20 24 74 61 67 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 72 65 6c 65 61 73 65 2d 27 2c ..$tag.=.str_replace('release-',
298c0 20 27 27 2c 20 24 74 61 67 29 3b 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 54 61 67 20 3d 20 24 .'',.$tag);..if.(!$parsedTag.=.$
298e0 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 61 67 28 24 74 61 67 29 29 20 7b 0a 69 66 20 28 24 this->validateTag($tag)).{.if.($
29900 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 verbose).{.$this->io->write('Ski
29920 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 69 6e 76 61 6c 69 64 20 74 61 67 20 6e pped.tag.'.$tag.',.invalid.tag.n
29940 61 6d 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 ame');.}.continue;.}..try.{.if.(
29960 21 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 !$data.=.$driver->getComposerInf
29980 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 ormation($identifier)).{.if.($ve
299a0 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 rbose).{.$this->io->write('Skipp
299c0 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c ed.tag.'.$tag.',.no.composer.fil
299e0 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 e');.}.continue;.}....if.(isset(
29a00 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 $data['version'])).{.$data['vers
29a20 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f ion_normalized'].=.$this->versio
29a40 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f nParser->normalize($data['versio
29a60 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 n']);.}.else.{...$data['version'
29a80 5d 20 3d 20 24 74 61 67 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 ].=.$tag;.$data['version_normali
29aa0 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 54 61 67 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 5b 27 zed'].=.$parsedTag;.}....$data['
29ac0 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 2e 2d 5d 3f version'].=.preg_replace('{[.-]?
29ae0 64 65 76 24 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a dev$}i',.'',.$data['version']);.
29b00 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 70 72 $data['version_normalized'].=.pr
29b20 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5e 64 65 76 2d 7c 5b 2e 2d 5d 3f 64 65 76 24 29 7d 69 eg_replace('{(^dev-|[.-]?dev$)}i
29b40 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 ',.'',.$data['version_normalized
29b60 27 5d 29 3b 0a 0a 0a 20 69 66 20 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 ']);....if.($data['version_norma
29b80 6c 69 7a 65 64 27 5d 20 21 3d 3d 20 24 70 61 72 73 65 64 54 61 67 29 20 7b 0a 69 66 20 28 24 76 lized'].!==.$parsedTag).{.if.($v
29ba0 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 erbose).{.$this->io->write('Skip
29bc0 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 74 61 67 20 28 27 2e 24 70 61 72 73 65 64 ped.tag.'.$tag.',.tag.('.$parsed
29be0 54 61 67 2e 27 29 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 76 65 72 73 69 6f 6e 20 28 27 Tag.').does.not.match.version.('
29c00 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 20 .$data['version_normalized'].').
29c20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a in.composer.json');.}.continue;.
29c40 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 }..if.($verbose).{.$this->io->wr
29c60 69 74 65 28 27 49 6d 70 6f 72 74 69 6e 67 20 74 61 67 20 27 2e 24 74 61 67 2e 27 20 28 27 2e 24 ite('Importing.tag.'.$tag.'.('.$
29c80 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 27 29 3b data['version_normalized'].')');
29ca0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 .}..$this->addPackage($this->loa
29cc0 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 der->load($this->preProcess($dri
29ce0 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 ver,.$data,.$identifier)));.}.ca
29d00 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f tch.(\Exception.$e).{.if.($verbo
29d20 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 se).{.$this->io->write('Skipped.
29d40 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 27 2e 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 tag.'.$tag.',.'.($e.instanceof.T
29d60 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 3f 20 27 6e 6f 20 63 6f 6d 70 6f 73 65 72 ransportException.?.'no.composer
29d80 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 .file.was.found'.:.$e->getMessag
29da0 65 28 29 29 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 76 65 e()));.}.continue;.}.}..if.(!$ve
29dc0 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 27 rbose).{.$this->io->overwrite(''
29de0 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 ,.false);.}..foreach.($driver->g
29e00 65 74 42 72 61 6e 63 68 65 73 28 29 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 69 64 65 6e etBranches().as.$branch.=>.$iden
29e20 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 tifier).{.$msg.=.'Reading.compos
29e40 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 er.json.of.<info>'...($this->pac
29e60 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 kageName.?:.$this->url)...'</inf
29e80 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 62 72 61 6e 63 68 20 2e 20 27 3c 2f 63 6f o>.(<comment>'...$branch...'</co
29ea0 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d mment>)';.if.($verbose).{.$this-
29ec0 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 >io->write($msg);.}.else.{.$this
29ee0 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a ->io->overwrite($msg,.false);.}.
29f00 0a 69 66 20 28 21 24 70 61 72 73 65 64 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c .if.(!$parsedBranch.=.$this->val
29f20 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 24 76 65 72 idateBranch($branch)).{.if.($ver
29f40 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 bose).{.$this->io->write('Skippe
29f60 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 69 6e 76 61 6c 69 64 20 6e 61 d.branch.'.$branch.',.invalid.na
29f80 6d 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 me');.}.continue;.}..try.{.if.(!
29fa0 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f $data.=.$driver->getComposerInfo
29fc0 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 rmation($identifier)).{.if.($ver
29fe0 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 bose).{.$this->io->write('Skippe
2a000 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 d.branch.'.$branch.',.no.compose
2a020 72 20 66 69 6c 65 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 r.file');.}.continue;.}....$data
2a040 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 62 72 61 6e 63 68 3b 0a 24 64 61 74 61 5b 27 76 65 ['version'].=.$branch;.$data['ve
2a060 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 42 72 61 6e rsion_normalized'].=.$parsedBran
2a080 63 68 3b 0a 0a 0a 20 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 ch;....if.('dev-'.===.substr($pa
2a0a0 72 73 65 64 42 72 61 6e 63 68 2c 20 30 2c 20 34 29 20 7c 7c 20 27 39 39 39 39 39 39 39 2d 64 65 rsedBranch,.0,.4).||.'9999999-de
2a0c0 76 27 20 3d 3d 3d 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 20 7b 0a 24 64 61 74 61 5b 27 76 v'.===.$parsedBranch).{.$data['v
2a0e0 65 72 73 69 6f 6e 27 5d 20 3d 20 27 64 65 76 2d 27 20 2e 20 24 64 61 74 61 5b 27 76 65 72 73 69 ersion'].=.'dev-'...$data['versi
2a100 6f 6e 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 on'];.}.else.{.$data['version'].
2a120 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e =.preg_replace('{(\.9{7})+}',.'.
2a140 78 27 2c 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 x',.$parsedBranch);.}..if.($verb
2a160 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6d 70 6f 72 74 69 ose).{.$this->io->write('Importi
2a180 6e 67 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 20 28 27 2e 24 64 61 74 61 5b 27 ng.branch.'.$branch.'.('.$data['
2a1a0 76 65 72 73 69 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 version'].')');.}..$this->addPac
2a1c0 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e kage($this->loader->load($this->
2a1e0 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e preProcess($driver,.$data,.$iden
2a200 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 tifier)));.}.catch.(TransportExc
2a220 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 eption.$e).{.if.($verbose).{.$th
2a240 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e is->io->write('Skipped.branch.'.
2a260 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 $branch.',.no.composer.file.was.
2a280 66 6f 75 6e 64 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 found');.}.continue;.}.catch.(\E
2a2a0 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 xception.$e).{.$this->io->write(
2a2c0 27 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 27 2e 24 'Skipped.branch.'.$branch.',.'.$
2a2e0 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a e->getMessage());.continue;.}.}.
2a300 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 .if.(!$verbose).{.$this->io->ove
2a320 72 77 72 69 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 rwrite('',.false);.}..if.(!$this
2a340 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ->getPackages()).{.throw.new.\Ru
2a360 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 76 61 6c 69 64 20 63 6f 6d 70 6f 73 65 ntimeException('No.valid.compose
2a380 72 2e 6a 73 6f 6e 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 62 72 61 6e 63 68 20 6f r.json.was.found.in.any.branch.o
2a3a0 72 20 74 61 67 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e r.tag.of.'.$this->url.',.could.n
2a3c0 6f 74 20 6c 6f 61 64 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 69 74 2e 27 29 3b 0a 7d 0a ot.load.a.package.from.it.');.}.
2a3e0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 50 72 6f 63 65 73 73 28 56 }..private.function.preProcess(V
2a400 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 72 69 76 65 72 2c 20 61 72 72 61 79 csDriverInterface.$driver,.array
2a420 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 0a 20 24 64 61 74 61 5b 27 .$data,.$identifier).{...$data['
2a440 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 name'].=.$this->packageName.?:.$
2a460 64 61 74 61 5b 27 6e 61 6d 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b data['name'];..if.(!isset($data[
2a480 27 64 69 73 74 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 20 3d 20 24 64 72 69 'dist'])).{.$data['dist'].=.$dri
2a4a0 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 ver->getDist($identifier);.}.if.
2a4c0 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 64 61 74 (!isset($data['source'])).{.$dat
2a4e0 61 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 a['source'].=.$driver->getSource
2a500 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a ($identifier);.}..return.$data;.
2a520 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 42 72 61 6e }..private.function.validateBran
2a540 63 68 28 24 62 72 61 6e 63 68 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ch($branch).{.try.{.return.$this
2a560 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 ->versionParser->normalizeBranch
2a580 28 24 62 72 61 6e 63 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 ($branch);.}.catch.(\Exception.$
2a5a0 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 e).{.}..return.false;.}..private
2a5c0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 61 67 28 24 76 65 72 73 69 6f 6e 29 0a .function.validateTag($version).
2a5e0 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 {.try.{.return.$this->versionPar
2a600 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 ser->normalize($version);.}.catc
2a620 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 h.(\Exception.$e).{.}..return.fa
2a640 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 lse;.}.}.<?php............namesp
2a660 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f ace.Composer\Repository;..use.Co
2a680 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a mposer\Package\CompletePackage;.
2a6a0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 use.Composer\Package\Version\Ver
2a6c0 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 6d 52 65 sionParser;.....class.PlatformRe
2a6e0 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 pository.extends.ArrayRepository
2a700 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 .{.protected.function.initialize
2a720 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 ().{.parent::initialize();..$ver
2a740 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 sionParser.=.new.VersionParser()
2a760 3b 0a 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 48 50 5f 56 45 ;..try.{.$prettyVersion.=.PHP_VE
2a780 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 RSION;.$version.=.$versionParser
2a7a0 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 ->normalize($prettyVersion);.}.c
2a7c0 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 atch.(\UnexpectedValueException.
2a7e0 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c $e).{.$prettyVersion.=.preg_repl
2a800 61 63 65 28 27 23 5e 28 2e 2b 3f 29 28 2d 2e 2b 29 3f 24 23 27 2c 20 27 24 31 27 2c 20 50 48 50 ace('#^(.+?)(-.+)?$#',.'$1',.PHP
2a820 5f 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 _VERSION);.$version.=.$versionPa
2a840 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b rser->normalize($prettyVersion);
2a860 0a 7d 0a 0a 24 70 68 70 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 .}..$php.=.new.CompletePackage('
2a880 70 68 70 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b php',.$version,.$prettyVersion);
2a8a0 0a 24 70 68 70 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 50 48 50 20 69 .$php->setDescription('The.PHP.i
2a8c0 6e 74 65 72 70 72 65 74 65 72 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 nterpreter');.parent::addPackage
2a8e0 28 24 70 68 70 29 3b 0a 0a 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 67 65 74 ($php);..$loadedExtensions.=.get
2a900 5f 6c 6f 61 64 65 64 5f 65 78 74 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 _loaded_extensions();....foreach
2a920 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a .($loadedExtensions.as.$name).{.
2a940 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 73 74 61 6e 64 if.(in_array($name,.array('stand
2a960 61 72 64 27 2c 20 27 43 6f 72 65 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 ard',.'Core'))).{.continue;.}..$
2a980 72 65 66 6c 45 78 74 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 reflExt.=.new.\ReflectionExtensi
2a9a0 6f 6e 28 24 6e 61 6d 65 29 3b 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 on($name);.try.{.$prettyVersion.
2a9c0 3d 20 24 72 65 66 6c 45 78 74 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 76 65 72 73 69 =.$reflExt->getVersion();.$versi
2a9e0 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 on.=.$versionParser->normalize($
2aa00 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 prettyVersion);.}.catch.(\Unexpe
2aa20 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 ctedValueException.$e).{.$pretty
2aa40 56 65 72 73 69 6f 6e 20 3d 20 27 30 27 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 Version.=.'0';.$version.=.$versi
2aa60 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 onParser->normalize($prettyVersi
2aa80 6f 6e 29 3b 0a 7d 0a 0a 24 65 78 74 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 on);.}..$ext.=.new.CompletePacka
2aaa0 67 65 28 27 65 78 74 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 ge('ext-'.$name,.$version,.$pret
2aac0 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 65 78 74 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e tyVersion);.$ext->setDescription
2aae0 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 27 29 3b ('The.'.$name.'.PHP.extension');
2ab00 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 65 78 74 29 3b 0a 7d 0a 0a 0a 20 .parent::addPackage($ext);.}....
2ab20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 ....foreach.($loadedExtensions.a
2ab40 73 20 24 6e 61 6d 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6e 61 6d 65 29 20 7b 0a 63 61 73 65 s.$name).{.switch.($name).{.case
2ab60 20 27 63 75 72 6c 27 3a 0a 24 63 75 72 6c 56 65 72 73 69 6f 6e 20 3d 20 63 75 72 6c 5f 76 65 72 .'curl':.$curlVersion.=.curl_ver
2ab80 73 69 6f 6e 28 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 63 75 72 6c 56 65 sion();.$prettyVersion.=.$curlVe
2aba0 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 rsion['version'];.break;..case.'
2abc0 69 63 6f 6e 76 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 43 4f 4e 56 5f 56 iconv':.$prettyVersion.=.ICONV_V
2abe0 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6c 69 62 78 6d 6c 27 3a 0a 24 ERSION;.break;..case.'libxml':.$
2ac00 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 4d 4c 5f 44 4f 54 54 45 44 5f 56 45 prettyVersion.=.LIBXML_DOTTED_VE
2ac20 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 RSION;.break;..case.'openssl':.$
2ac40 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c prettyVersion.=.preg_replace_cal
2ac60 6c 62 61 63 6b 28 27 7b 5e 28 3f 3a 4f 70 65 6e 53 53 4c 5c 73 2a 29 3f 28 5b 30 2d 39 2e 5d 2b lback('{^(?:OpenSSL\s*)?([0-9.]+
2ac80 29 28 5b 61 2d 7a 5d 3f 29 2e 2a 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 )([a-z]?).*}',.function.($match)
2aca0 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 28 65 6d 70 74 79 28 24 6d 61 .{.return.$match[1]...(empty($ma
2acc0 74 63 68 5b 32 5d 29 20 3f 20 27 27 20 3a 20 27 2e 27 2e 28 6f 72 64 28 24 6d 61 74 63 68 5b 32 tch[2]).?.''.:.'.'.(ord($match[2
2ace0 5d 29 20 2d 20 39 36 29 29 3b 0a 7d 2c 20 4f 50 45 4e 53 53 4c 5f 56 45 52 53 49 4f 4e 5f 54 45 ]).-.96));.},.OPENSSL_VERSION_TE
2ad00 58 54 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 63 72 65 27 3a 0a 24 70 72 65 74 74 XT);.break;..case.'pcre':.$prett
2ad20 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 53 2b 29 yVersion.=.preg_replace('{^(\S+)
2ad40 2e 2a 7d 27 2c 20 27 24 31 27 2c 20 50 43 52 45 5f 56 45 52 53 49 4f 4e 29 3b 0a 62 72 65 61 6b .*}',.'$1',.PCRE_VERSION);.break
2ad60 3b 0a 0a 63 61 73 65 20 27 75 75 69 64 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d ;..case.'uuid':.$prettyVersion.=
2ad80 20 70 68 70 76 65 72 73 69 6f 6e 28 27 75 75 69 64 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 .phpversion('uuid');.break;..cas
2ada0 65 20 27 78 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 53 4c e.'xsl':.$prettyVersion.=.LIBXSL
2adc0 54 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c T_DOTTED_VERSION;.break;..defaul
2ade0 74 3a 0a 0a 20 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 76 65 72 73 69 t:...continue.2;.}..try.{.$versi
2ae00 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 on.=.$versionParser->normalize($
2ae20 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 prettyVersion);.}.catch.(\Unexpe
2ae40 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 ctedValueException.$e).{.continu
2ae60 65 3b 0a 7d 0a 0a 24 6c 69 62 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 e;.}..$lib.=.new.CompletePackage
2ae80 28 27 6c 69 62 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 ('lib-'.$name,.$version,.$pretty
2aea0 56 65 72 73 69 6f 6e 29 3b 0a 24 6c 69 62 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 Version);.$lib->setDescription('
2aec0 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 6c 69 62 72 61 72 79 27 29 3b 0a 70 61 72 The.'.$name.'.PHP.library');.par
2aee0 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 6c 69 62 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 ent::addPackage($lib);.}.}.}.<?p
2af00 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
2af20 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c \Repository;.......class.Install
2af40 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 46 edFilesystemRepository.extends.F
2af60 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 ilesystemRepository.implements.I
2af80 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a nstalledRepositoryInterface.{.}.
2afa0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
2afc0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ser\Repository;..use.Composer\Pa
2afe0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c ckage\PackageInterface;.......cl
2b000 61 73 73 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e ass.CompositeRepository.implemen
2b020 74 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 70 72 69 ts.RepositoryInterface.{.....pri
2b040 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 vate.$repositories;......public.
2b060 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f function.__construct(array.$repo
2b080 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 sitories).{.$this->repositories.
2b0a0 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 =.array();.foreach.($repositorie
2b0c0 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f s.as.$repo).{.$this->addReposito
2b0e0 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ry($repo);.}.}.......public.func
2b100 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 tion.getRepositories().{.return.
2b120 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 $this->repositories;.}.....publi
2b140 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 c.function.hasPackage(PackageInt
2b160 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 erface.$package).{.foreach.($thi
2b180 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 s->repositories.as.$repository).
2b1a0 7b 0a 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 {..if.($repository->hasPackage($
2b1c0 70 61 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 package)).{.return.true;.}.}..re
2b1e0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f turn.false;.}.....public.functio
2b200 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b n.findPackage($name,.$version).{
2b220 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 .foreach.($this->repositories.as
2b240 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 .$repository).{..$package.=.$rep
2b260 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 ository->findPackage($name,.$ver
2b280 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a sion);.if.(null.!==.$package).{.
2b2a0 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c return.$package;.}.}..return.nul
2b2c0 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 l;.}.....public.function.findPac
2b2e0 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a kages($name,.$version.=.null).{.
2b300 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 $packages.=.array();.foreach.($t
2b320 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 his->repositories.as.$repository
2b340 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e ).{..$packages[].=.$repository->
2b360 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d findPackages($name,.$version);.}
2b380 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 ..return.call_user_func_array('a
2b3a0 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 rray_merge',.$packages);.}.....p
2b3c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 ublic.function.filterPackages($c
2b3e0 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b allback,.$class.=.'Composer\Pack
2b400 61 67 65 5c 50 61 63 6b 61 67 65 27 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e age\Package').{.foreach.($this->
2b420 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 repositories.as.$repository).{.i
2b440 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6c 74 65 72 f.(false.===.$repository->filter
2b460 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 29 29 20 7b 0a 72 Packages($callback,.$class)).{.r
2b480 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d eturn.false;.}.}..return.true;.}
2b4a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 .....public.function.getPackages
2b4c0 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 ().{.$packages.=.array();.foreac
2b4e0 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 h.($this->repositories.as.$repos
2b500 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 itory).{..$packages[].=.$reposit
2b520 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 ory->getPackages();.}..return.ca
2b540 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 ll_user_func_array('array_merge'
2b560 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ,.$packages);.}.....public.funct
2b580 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 ion.removePackage(PackageInterfa
2b5a0 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 ce.$package).{.foreach.($this->r
2b5c0 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 epositories.as.$repository).{..$
2b5e0 72 65 70 6f 73 69 74 6f 72 79 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 repository->removePackage($packa
2b600 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 ge);.}.}.....public.function.cou
2b620 6e 74 28 29 0a 7b 0a 24 74 6f 74 61 6c 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 nt().{.$total.=.0;.foreach.($thi
2b640 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 s->repositories.as.$repository).
2b660 7b 0a 0a 24 74 6f 74 61 6c 20 2b 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 63 6f 75 6e 74 28 {..$total.+=.$repository->count(
2b680 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 74 61 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c );.}..return.$total;.}......publ
2b6a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 ic.function.addRepository(Reposi
2b6c0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 69 66 20 toryInterface.$repository).{.if.
2b6e0 28 24 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c 66 29 20 7b 0a ($repository.instanceof.self).{.
2b700 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 70 6f 73 69 74 foreach.($repository->getReposit
2b720 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 ories().as.$repo).{.$this->addRe
2b740 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 pository($repo);.}.}.else.{.$thi
2b760 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b s->repositories[].=.$repository;
2b780 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
2b7a0 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 e.Composer\Repository;.........i
2b7c0 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 nterface.InstalledRepositoryInte
2b7e0 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 rface.extends.WritableRepository
2b800 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e Interface.{.}.<?php............n
2b820 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 amespace.Composer\Repository;..u
2b840 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 se.Composer\Package\Loader\Array
2b860 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 Loader;.use.Composer\Package\Pac
2b880 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b kageInterface;.use.Composer\Pack
2b8a0 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 age\AliasPackage;.use.Composer\P
2b8c0 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 ackage\Version\VersionParser;.us
2b8e0 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f e.Composer\DependencyResolver\Po
2b900 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a ol;.use.Composer\Json\JsonFile;.
2b920 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 use.Composer\Cache;.use.Composer
2b940 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 \Config;.use.Composer\IO\IOInter
2b960 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 face;.use.Composer\Util\RemoteFi
2b980 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f lesystem;.....class.ComposerRepo
2b9a0 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 sitory.extends.ArrayRepository.i
2b9c0 6d 70 6c 65 6d 65 6e 74 73 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e mplements.NotifiableRepositoryIn
2b9e0 74 65 72 66 61 63 65 2c 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 terface,.StreamableRepositoryInt
2ba00 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 erface.{.protected.$config;.prot
2ba20 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a ected.$options;.protected.$url;.
2ba40 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 protected.$baseUrl;.protected.$i
2ba60 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 o;.protected.$cache;.protected.$
2ba80 6e 6f 74 69 66 79 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 50 72 6f 76 69 64 65 notifyUrl;.protected.$hasProvide
2baa0 72 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 4c rs.=.false;.protected.$providerL
2bac0 69 73 74 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 isting;.protected.$providers.=.a
2bae0 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 42 79 55 69 rray();.protected.$providersByUi
2bb00 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a d.=.array();.protected.$loader;.
2bb20 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 70 72 69 76 61 74 65 20 protected.$rootAliases;.private.
2bb40 24 72 61 77 44 61 74 61 3b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 $rawData;.private.$minimalPackag
2bb60 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 66 61 6c 73 es;.private.$degradedMode.=.fals
2bb80 65 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 44 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 66 75 e;.private.$rootData;..public.fu
2bba0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f nction.__construct(array.$repoCo
2bbc0 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 nfig,.IOInterface.$io,.Config.$c
2bbe0 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2e onfig).{.if.(!preg_match('{^[\w.
2bc00 5d 2b 5c 3f 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 ]+\??://}',.$repoConfig['url']))
2bc20 20 7b 0a 0a 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a .{...$repoConfig['url'].=.'http:
2bc40 2f 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 24 72 65 70 6f 43 //'.$repoConfig['url'];.}.$repoC
2bc60 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 onfig['url'].=.rtrim($repoConfig
2bc80 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 27 68 74 74 70 73 3f 27 20 3d 3d 3d ['url'],.'/');..if.('https?'.===
2bca0 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 30 2c 20 36 .substr($repoConfig['url'],.0,.6
2bcc0 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 28 65 78 74 65 6e )).{.$repoConfig['url'].=.(exten
2bce0 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 sion_loaded('openssl').?.'https'
2bd00 20 3a 20 27 68 74 74 70 27 29 20 2e 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b .:.'http')...substr($repoConfig[
2bd20 27 75 72 6c 27 5d 2c 20 36 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 'url'],.6);.}..if.(function_exis
2bd40 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 ts('filter_var').&&.version_comp
2bd60 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3e 3d 27 29 20 are(PHP_VERSION,.'5.3.3',.'>=').
2bd80 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 &&.!filter_var($repoConfig['url'
2bda0 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 29 20 7b 0a 74 68 72 6f 77 ],.FILTER_VALIDATE_URL)).{.throw
2bdc0 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 .new.\UnexpectedValueException('
2bde0 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 43 6f 6d 70 6f 73 65 72 20 72 Invalid.url.given.for.Composer.r
2be00 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 epository:.'.$repoConfig['url'])
2be20 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 ;.}..if.(!isset($repoConfig['opt
2be40 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 ions'])).{.$repoConfig['options'
2be60 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 ].=.array();.}..$this->config.=.
2be80 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 72 65 70 6f 43 $config;.$this->options.=.$repoC
2bea0 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 onfig['options'];.$this->url.=.$
2bec0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 repoConfig['url'];.$this->baseUr
2bee0 6c 20 3d 20 72 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 2e 2a 29 28 3f l.=.rtrim(preg_replace('{^(.*)(?
2bf00 3a 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 29 3f 28 3f 3a 5b 3f 23 5d 2e 2a 29 3f 24 7d 27 2c :/packages.json)?(?:[?#].*)?$}',
2bf20 20 27 24 31 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d .'$1',.$this->url),.'/');.$this-
2bf40 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 >io.=.$io;.$this->cache.=.new.Ca
2bf60 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f che($io,.$config->get('home').'/
2bf80 63 61 63 68 65 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e cache/'.preg_replace('{[^a-z0-9.
2bfa0 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 3b 0a 24 74 68 69 73 2d 3e ]}i',.'-',.$this->url));.$this->
2bfc0 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 7d 0a 0a 0a loader.=.new.ArrayLoader();.}...
2bfe0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 ..public.function.notifyInstall(
2c000 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 PackageInterface.$package).{.if.
2c020 28 21 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 7c 7c 20 21 24 74 68 69 73 2d 3e 63 6f (!$this->notifyUrl.||.!$this->co
2c040 6e 66 69 67 2d 3e 67 65 74 28 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 29 29 20 nfig->get('notify-on-install')).
2c060 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 {.return;.}....$url.=.str_replac
2c080 65 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 e('%package%',.$package->getPret
2c0a0 74 79 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 29 3b 0a 0a 24 70 tyName(),.$this->notifyUrl);..$p
2c0c0 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 arams.=.array(.'version'.=>.$pac
2c0e0 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 27 76 65 72 73 69 kage->getPrettyVersion(),.'versi
2c100 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 on_normalized'.=>.$package->getV
2c120 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 24 6f 70 74 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 ersion(),.);.$opts.=.array('http
2c140 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a '.=>.array(.'method'.=>.'POST',.
2c160 27 68 65 61 64 65 72 27 20 3d 3e 20 27 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 61 70 70 6c 69 'header'.=>.'Content-type:.appli
2c180 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 27 2c 0a 27 cation/x-www-form-urlencoded',.'
2c1a0 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 68 74 74 70 5f 62 75 69 6c 64 5f 71 75 65 72 79 28 24 70 61 content'.=>.http_build_query($pa
2c1c0 72 61 6d 73 2c 20 27 27 2c 20 27 26 27 29 2c 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 2c 0a rams,.'',.'&'),.'timeout'.=>.3,.
2c1e0 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f ).);..$context.=.stream_context_
2c200 63 72 65 61 74 65 28 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 create($opts);.@file_get_content
2c220 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 29 3b 0a 7d 0a 0a 70 75 62 s($url,.false,.$context);.}..pub
2c240 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 61 72 72 61 lic.function.setRootAliases(arra
2c260 79 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 y.$rootAliases).{.$this->rootAli
2c280 61 73 65 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ases.=.$rootAliases;.}.....publi
2c2a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 29 0a c.function.getMinimalPackages().
2c2c0 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 {.if.(isset($this->minimalPackag
2c2e0 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b es)).{.return.$this->minimalPack
2c300 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 61 77 ages;.}..if.(null.===.$this->raw
2c320 44 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e Data).{.$this->rawData.=.$this->
2c340 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e loadDataFromServer();.}..$this->
2c360 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 65 72 73 minimalPackages.=.array();.$vers
2c380 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a ionParser.=.new.VersionParser;..
2c3a0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 61 73 20 24 70 61 63 6b foreach.($this->rawData.as.$pack
2c3c0 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 age).{.$version.=.!empty($packag
2c3e0 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 20 3f 20 24 70 61 63 6b e['version_normalized']).?.$pack
2c400 61 67 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3a 20 24 76 65 72 age['version_normalized'].:.$ver
2c420 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 61 63 6b 61 67 65 5b 27 sionParser->normalize($package['
2c440 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 version']);.$data.=.array(.'name
2c460 27 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d '.=>.strtolower($package['name']
2c480 29 2c 0a 27 72 65 70 6f 27 20 3d 3e 20 24 74 68 69 73 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e ),.'repo'.=>.$this,.'version'.=>
2c4a0 20 24 76 65 72 73 69 6f 6e 2c 0a 27 72 61 77 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b .$version,.'raw'.=>.$package,.);
2c4c0 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 .if.(!empty($package['replace'])
2c4e0 29 20 7b 0a 24 64 61 74 61 5b 27 72 65 70 6c 61 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b ).{.$data['replace'].=.$package[
2c500 27 72 65 70 6c 61 63 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 'replace'];.}.if.(!empty($packag
2c520 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 27 e['provide'])).{.$data['provide'
2c540 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 3b 0a 7d 0a 0a 0a 20 69 66 ].=.$package['provide'];.}....if
2c560 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 .($aliasNormalized.=.$this->load
2c580 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a er->getBranchAlias($package)).{.
2c5a0 24 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b $data['alias'].=.preg_replace('{
2c5c0 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 (\.9{7})+}',.'.x',.$aliasNormali
2c5e0 7a 65 64 29 3b 0a 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 zed);.$data['alias_normalized'].
2c600 3d 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 69 =.$aliasNormalized;.}..$this->mi
2c620 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 72 65 74 75 nimalPackages[].=.$data;.}..retu
2c640 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a rn.$this->minimalPackages;.}....
2c660 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 .public.function.filterPackages(
2c680 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 $callback,.$class.=.'Composer\Pa
2c6a0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ckage\Package').{.if.(null.===.$
2c6c0 74 68 69 73 2d 3e 72 61 77 44 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 this->rawData).{.$this->rawData.
2c6e0 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 7d =.$this->loadDataFromServer();.}
2c700 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 61 73 20 24 70 61 ..foreach.($this->rawData.as.$pa
2c720 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 ckage).{.if.(false.===.call_user
2c740 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 _func($callback,.$package.=.$thi
2c760 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 63 6c 61 73 s->createPackage($package,.$clas
2c780 73 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b s))).{.return.false;.}.if.($pack
2c7a0 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 28 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d age->getAlias()).{.if.(false.===
2c7c0 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 68 69 73 .call_user_func($callback,.$this
2c7e0 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 29 ->createAliasPackage($package)))
2c800 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 .{.return.false;.}.}.}..return.t
2c820 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 rue;.}.....public.function.loadP
2c840 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d ackage(array.$data).{.$package.=
2c860 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 64 61 74 61 5b 27 72 61 77 .$this->createPackage($data['raw
2c880 27 5d 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b '],.'Composer\Package\Package');
2c8a0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b .$package->setRepository($this);
2c8c0 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ..return.$package;.}.....public.
2c8e0 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 function.loadAliasPackage(array.
2c900 24 64 61 74 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 $data,.PackageInterface.$aliasOf
2c920 29 0a 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 ).{.$aliasPackage.=.$this->creat
2c940 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 4f 66 2c 20 24 64 61 74 61 5b 27 76 eAliasPackage($aliasOf,.$data['v
2c960 65 72 73 69 6f 6e 27 5d 2c 20 24 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 ersion'],.$data['alias']);.$alia
2c980 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a sPackage->setRepository($this);.
2c9a0 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 .return.$aliasPackage;.}..public
2c9c0 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 .function.hasProviders().{.$this
2c9e0 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 ->loadRootServerFile();..return.
2ca00 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 $this->hasProviders;.}..public.f
2ca20 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 0a 7b 0a 66 6f 72 65 unction.resetPackageIds().{.fore
2ca40 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 61 73 20 24 70 ach.($this->providersByUid.as.$p
2ca60 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f ackage).{.if.($package.instanceo
2ca80 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 f.AliasPackage).{.$package->getA
2caa0 6c 69 61 73 4f 66 28 29 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d liasOf()->setId(-1);.}.$package-
2cac0 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >setId(-1);.}.}..public.function
2cae0 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6e 61 6d 65 29 .whatProvides(Pool.$pool,.$name)
2cb00 0a 7b 0a 0a 20 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 27 20 7c 7c 20 69 6e 5f 61 .{...if.($name.===.'php'.||.in_a
2cb20 72 72 61 79 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 34 29 2c 20 61 72 72 61 79 28 rray(substr($name,.0,.4),.array(
2cb40 27 65 78 74 2d 27 2c 20 27 6c 69 62 2d 27 29 2c 20 74 72 75 65 29 20 7c 7c 20 24 6e 61 6d 65 20 'ext-',.'lib-'),.true).||.$name.
2cb60 3d 3d 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 ===.'__root__').{.return.array()
2cb80 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b ;.}..if.(isset($this->providers[
2cba0 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 $name])).{.return.$this->provide
2cbc0 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 rs[$name];.}..if.(null.===.$this
2cbe0 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 ->providerListing).{.$this->load
2cc00 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 ProviderListings($this->loadRoot
2cc20 53 65 72 76 65 72 46 69 6c 65 28 29 29 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 27 70 2f 27 2e 24 6e ServerFile());.}..$url.=.'p/'.$n
2cc40 61 6d 65 2e 27 2e 6a 73 6f 6e 27 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 ame.'.json';....if.(!isset($this
2cc60 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 75 72 6c 5d 29 29 20 7b 0a 72 65 74 75 ->providerListing[$url])).{.retu
2cc80 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d rn.array();.}..if.($this->cache-
2cca0 3e 73 68 61 32 35 36 28 24 75 72 6c 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 >sha256($url).===.$this->provide
2ccc0 72 4c 69 73 74 69 6e 67 5b 24 75 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 70 61 63 rListing[$url]['sha256']).{.$pac
2cce0 6b 61 67 65 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 kages.=.json_decode($this->cache
2cd00 2d 3e 72 65 61 64 28 24 75 72 6c 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 ->read($url),.true);.}.else.{.$p
2cd20 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c ackages.=.$this->fetchFile($url,
2cd40 20 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 75 .null,.$this->providerListing[$u
2cd60 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 rl]['sha256']);.}..$this->provid
2cd80 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ers[$name].=.array();.foreach.($
2cda0 70 61 63 6b 61 67 65 73 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 76 65 72 73 69 6f 6e packages['packages'].as.$version
2cdc0 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 s).{.foreach.($versions.as.$vers
2cde0 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 ion).{...if.(isset($this->provid
2ce00 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 ersByUid[$version['uid']])).{...
2ce20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d if.(!isset($this->providers[$nam
2ce40 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 24 74 e][$version['uid']])).{...if.($t
2ce60 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 his->providersByUid[$version['ui
2ce80 64 27 5d 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a d']].instanceof.AliasPackage).{.
2cea0 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e $this->providers[$name][$version
2cec0 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 ['uid']].=.$this->providersByUid
2cee0 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b [$version['uid']]->getAliasOf();
2cf00 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f .$this->providers[$name][$versio
2cf20 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 n['uid'].'-alias'].=.$this->prov
2cf40 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 20 65 idersByUid[$version['uid']];.}.e
2cf60 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 lse.{.$this->providers[$name][$v
2cf80 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 ersion['uid']].=.$this->provider
2cfa0 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 0a 0a 20 69 66 20 sByUid[$version['uid']];.}...if.
2cfc0 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 (isset($this->providersByUid[$ve
2cfe0 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d rsion['uid'].'-root'])).{.$this-
2d000 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 >providers[$name][$version['uid'
2d020 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 ].'-root'].=.$this->providersByU
2d040 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 3b 0a 7d 0a 7d id[$version['uid'].'-root'];.}.}
2d060 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 .}.else.{.if.(!$pool->isPackageA
2d080 63 63 65 70 74 61 62 6c 65 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e cceptable(strtolower($version['n
2d0a0 61 6d 65 27 5d 29 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 ame']),.VersionParser::parseStab
2d0c0 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 29 20 7b 0a 63 ility($version['version']))).{.c
2d0e0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e ontinue;.}....$package.=.$this->
2d100 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 76 65 72 73 69 6f 6e 2c 20 27 43 6f 6d 70 6f 73 65 createPackage($version,.'Compose
2d120 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 r\Package\Package');.$package->s
2d140 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f etRepository($this);..$this->pro
2d160 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d viders[$name][$version['uid']].=
2d180 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 .$package;.$this->providersByUid
2d1a0 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 69 [$version['uid']].=.$package;..i
2d1c0 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 28 29 29 20 7b 0a 24 61 6c 69 61 f.($package->getAlias()).{.$alia
2d1e0 73 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 s.=.$this->createAliasPackage($p
2d200 61 63 6b 61 67 65 29 3b 0a 24 61 6c 69 61 73 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 ackage);.$alias->setRepository($
2d220 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b this);..$this->providers[$name][
2d240 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 61 6c 69 $version['uid'].'-alias'].=.$ali
2d260 61 73 3b 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 as;...$this->providersByUid[$ver
2d280 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 sion['uid']].=.$alias;.}....unse
2d2a0 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 t($rootAliasData);..if.(isset($t
2d2c0 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 his->rootAliases[$name][$package
2d2e0 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 ->getVersion()])).{.$rootAliasDa
2d300 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 ta.=.$this->rootAliases[$name][$
2d320 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 20 65 6c 73 65 69 66 package->getVersion()];.}.elseif
2d340 20 28 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e .(($aliasNormalized.=.$package->
2d360 67 65 74 41 6c 69 61 73 28 29 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 6f 74 getAlias()).&&.isset($this->root
2d380 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 5d Aliases[$name][$aliasNormalized]
2d3a0 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f )).{.$rootAliasData.=.$this->roo
2d3c0 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 tAliases[$name][$aliasNormalized
2d3e0 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 ];.}..if.(isset($rootAliasData))
2d400 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 .{.$alias.=.$this->createAliasPa
2d420 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 ckage($package,.$rootAliasData['
2d440 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 alias_normalized'],.$rootAliasDa
2d460 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 2d 3e 73 65 74 52 65 70 6f 73 69 74 ta['alias']);.$alias->setReposit
2d480 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e ory($this);..$this->providers[$n
2d4a0 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 ame][$version['uid'].'-root'].=.
2d4c0 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 $alias;.$this->providersByUid[$v
2d4e0 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b ersion['uid'].'-root'].=.$alias;
2d500 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 .}.}.}.}..return.$this->provider
2d520 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 s[$name];.}.....protected.functi
2d540 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 on.initialize().{.parent::initia
2d560 6c 69 7a 65 28 29 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 lize();..$repoData.=.$this->load
2d580 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 DataFromServer();..foreach.($rep
2d5a0 6f 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 oData.as.$package).{.$this->addP
2d5c0 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 ackage($this->createPackage($pac
2d5e0 6b 61 67 65 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 kage,.'Composer\Package\Complete
2d600 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 Package'));.}.}..protected.funct
2d620 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 0a 7b 0a 69 66 20 28 6e ion.loadRootServerFile().{.if.(n
2d640 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 29 20 7b 0a 72 65 74 75 72 ull.!==.$this->rootData).{.retur
2d660 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e n.$this->rootData;.}..if.(!exten
2d680 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 27 68 74 74 70 73 sion_loaded('openssl').&&.'https
2d6a0 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 35 29 29 20 '.===.substr($this->url,.0,.5)).
2d6c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
2d6e0 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e ou.must.enable.the.openssl.exten
2d700 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 70 2e 69 6e 69 20 74 6f 20 6c 6f 61 64 20 69 6e 66 sion.in.your.php.ini.to.load.inf
2d720 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a ormation.from.'.$this->url);.}..
2d740 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d $jsonUrlParts.=.parse_url($this-
2d760 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b >url);..if.(isset($jsonUrlParts[
2d780 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6a 73 'path']).&&.false.!==.strpos($js
2d7a0 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 2c 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a onUrlParts['path'],.'/packages.j
2d7c0 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a son')).{.$jsonUrl.=.$this->url;.
2d7e0 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e }.else.{.$jsonUrl.=.$this->url..
2d800 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 .'/packages.json';.}..$data.=.$t
2d820 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 6a 73 6f 6e 55 72 6c 2c 20 27 70 61 63 6b 61 67 his->fetchFile($jsonUrl,.'packag
2d840 65 73 2e 6a 73 6f 6e 27 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f es.json');..if.(!empty($data['no
2d860 74 69 66 79 27 5d 29 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 64 61 74 61 5b 27 6e 6f tify'])).{.if.('/'.===.$data['no
2d880 74 69 66 79 27 5d 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 tify'][0]).{.$this->notifyUrl.=.
2d8a0 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e 2f 5d 2b 29 2e preg_replace('{(https?://[^/]+).
2d8c0 2a 7d 69 27 2c 20 27 24 31 27 20 2e 20 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 2c 20 24 74 *}i',.'$1'...$data['notify'],.$t
2d8e0 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 his->url);.}.else.{.$this->notif
2d900 79 55 72 6c 20 3d 20 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 yUrl.=.$data['notify'];.}.}..if.
2d920 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 20 7c 7c 20 21 (!empty($data['providers']).||.!
2d940 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 empty($data['providers-includes'
2d960 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 ])).{.$this->hasProviders.=.true
2d980 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 20 3d 20 24 64 ;.}..return.$this->rootData.=.$d
2d9a0 61 74 61 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 44 ata;.}..protected.function.loadD
2d9c0 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d ataFromServer().{.$data.=.$this-
2d9e0 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 >loadRootServerFile();..return.$
2da00 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 this->loadIncludes($data);.}..pr
2da20 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 otected.function.loadProviderLis
2da40 74 69 6e 67 73 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 tings($data).{.if.(isset($data['
2da60 70 72 6f 76 69 64 65 72 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 providers'])).{.if.(!is_array($t
2da80 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e his->providerListing)).{.$this->
2daa0 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 74 68 providerListing.=.array();.}.$th
2dac0 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 is->providerListing.=.array_merg
2dae0 65 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 2c 20 24 64 61 74 61 5b e($this->providerListing,.$data[
2db00 27 70 72 6f 76 69 64 65 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 'providers']);.}..if.(isset($dat
2db20 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 a['providers-includes'])).{.fore
2db40 61 63 68 20 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d ach.($data['providers-includes']
2db60 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 .as.$include.=>.$metadata).{.if.
2db80 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 69 6e 63 6c 75 64 65 29 20 ($this->cache->sha256($include).
2dba0 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c ===.$metadata['sha256']).{.$incl
2dbc0 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 udedData.=.json_decode($this->ca
2dbe0 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c che->read($include),.true);.}.el
2dc00 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 se.{.$includedData.=.$this->fetc
2dc20 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 2c 20 6e 75 6c 6c 2c 20 24 6d 65 74 61 64 61 74 61 5b hFile($include,.null,.$metadata[
2dc40 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 'sha256']);.}..$this->loadProvid
2dc60 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 0a 7d erListings($includedData);.}.}.}
2dc80 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 63 6c 75 64 65 ..protected.function.loadInclude
2dca0 73 28 24 64 61 74 61 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a s($data).{.$packages.=.array();.
2dcc0 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 ...if.(!isset($data['packages'])
2dce0 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b .&&.!isset($data['includes'])).{
2dd00 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 .foreach.($data.as.$pkg).{.forea
2dd20 63 68 20 28 24 70 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 6d 65 74 61 64 61 74 ch.($pkg['versions'].as.$metadat
2dd40 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a a).{.$packages[].=.$metadata;.}.
2dd60 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 }..return.$packages;.}..if.(isse
2dd80 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 t($data['packages'])).{.foreach.
2dda0 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d ($data['packages'].as.$package.=
2ddc0 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e >.$versions).{.foreach.($version
2dde0 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 s.as.$version.=>.$metadata).{.$p
2de00 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 ackages[].=.$metadata;.}.}.}..if
2de20 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f .(isset($data['includes'])).{.fo
2de40 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 20 61 73 20 24 69 6e 63 reach.($data['includes'].as.$inc
2de60 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e lude.=>.$metadata).{.if.($this->
2de80 63 61 63 68 65 2d 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 cache->sha1($include).===.$metad
2dea0 61 74 61 5b 27 73 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a ata['sha1']).{.$includedData.=.j
2dec0 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 son_decode($this->cache->read($i
2dee0 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 nclude),.true);.}.else.{.$includ
2df00 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 edData.=.$this->fetchFile($inclu
2df20 64 65 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 de);.}.$packages.=.array_merge($
2df40 70 61 63 6b 61 67 65 73 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 69 packages,.$this->loadIncludes($i
2df60 6e 63 6c 75 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b ncludedData));.}.}..return.$pack
2df80 61 67 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 ages;.}..protected.function.crea
2dfa0 74 65 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 63 6c 61 73 73 29 0a 7b tePackage(array.$data,.$class).{
2dfc0 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 .try.{.return.$this->loader->loa
2dfe0 64 28 24 64 61 74 61 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c d($data,.'Composer\Package\Compl
2e000 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f etePackage');.}.catch.(\Exceptio
2e020 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 n.$e).{.throw.new.\RuntimeExcept
2e040 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 70 61 63 6b 61 67 65 20 27 2e 28 69 ion('Could.not.load.package.'.(i
2e060 73 73 65 74 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d sset($data['name']).?.$data['nam
2e080 65 27 5d 20 3a 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 29 2e 27 20 69 6e 20 27 e'].:.json_encode($data)).'.in.'
2e0a0 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e .$this->url.':.['.get_class($e).
2e0c0 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d '].'.$e->getMessage(),.0,.$e);.}
2e0e0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 46 69 6c 65 .}..protected.function.fetchFile
2e100 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 61 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c 2c 20 24 73 ($filename,.$cacheKey.=.null,.$s
2e120 68 61 32 35 36 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 63 61 63 68 65 4b 65 79 29 20 ha256.=.null).{.if.(!$cacheKey).
2e140 7b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 66 69 6c 65 6e 61 6d 65 3b 0a 24 66 69 6c 65 6e 61 {.$cacheKey.=.$filename;.$filena
2e160 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2e 27 2f 27 2e 24 66 69 6c 65 6e 61 6d me.=.$this->baseUrl.'/'.$filenam
2e180 65 3b 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 e;.}..$retries.=.3;.while.($retr
2e1a0 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 ies--).{.try.{.$json.=.new.JsonF
2e1c0 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 ile($filename,.new.RemoteFilesys
2e1e0 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 3b tem($this->io,.$this->options));
2e200 0a 24 64 61 74 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 65 6e 63 6f 64 65 64 .$data.=.$json->read();.$encoded
2e220 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 69 66 20 28 24 73 68 61 32 .=.json_encode($data);.if.($sha2
2e240 35 36 20 26 26 20 24 73 68 61 32 35 36 20 21 3d 3d 20 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 56.&&.$sha256.!==.hash('sha256',
2e260 20 24 65 6e 63 6f 64 65 64 29 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 .$encoded)).{.if.($retries).{.us
2e280 6c 65 65 70 28 31 30 30 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 leep(100);..continue;.}....$this
2e2a0 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 54 68 65 20 63 6f 6e 74 65 6e ->io->write('<warning>The.conten
2e2c0 74 73 20 6f 66 20 27 2e 24 66 69 6c 65 6e 61 6d 65 2e 27 20 64 6f 20 6e 6f 74 20 6d 61 74 63 68 ts.of.'.$filename.'.do.not.match
2e2e0 20 69 74 73 20 73 69 67 6e 61 74 75 72 65 2c 20 74 68 69 73 20 69 73 20 6d 6f 73 74 20 6c 69 6b .its.signature,.this.is.most.lik
2e300 65 6c 79 20 64 75 65 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 67 6c 69 74 63 68 20 62 75 ely.due.to.a.temporary.glitch.bu
2e320 74 20 63 6f 75 6c 64 20 69 6e 64 69 63 61 74 65 20 61 20 6d 61 6e 2d 69 6e 2d 74 68 65 2d 6d 69 t.could.indicate.a.man-in-the-mi
2e340 64 64 6c 65 20 61 74 74 61 63 6b 2e 20 54 72 79 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 ddle.attack..Try.running.compose
2e360 72 20 61 67 61 69 6e 20 61 6e 64 20 70 6c 65 61 73 65 20 72 65 70 6f 72 74 20 69 74 20 69 66 20 r.again.and.please.report.it.if.
2e380 69 74 20 73 74 69 6c 6c 20 70 65 72 73 69 73 74 73 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a it.still.persists.</warning>');.
2e3a0 7d 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 63 61 63 68 65 4b 65 79 2c }.$this->cache->write($cacheKey,
2e3c0 20 24 65 6e 63 6f 64 65 64 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 .$encoded);..break;.}.catch.(\Ex
2e3e0 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 72 65 74 72 69 65 73 29 20 7b 0a 69 ception.$e).{.if.(!$retries).{.i
2e400 66 20 28 24 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 f.($contents.=.$this->cache->rea
2e420 64 28 24 63 61 63 68 65 4b 65 79 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 67 72 d($cacheKey)).{.if.(!$this->degr
2e440 61 64 65 64 4d 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 adedMode).{.$this->io->write('<w
2e460 61 72 6e 69 6e 67 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 arning>'.$e->getMessage().'</war
2e480 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e ning>');.$this->io->write('<warn
2e4a0 69 6e 67 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 ing>'.$this->url.'.could.not.be.
2e4c0 66 75 6c 6c 79 20 6c 6f 61 64 65 64 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f fully.loaded,.package.informatio
2e4e0 6e 20 77 61 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20 63 61 63 68 n.was.loaded.from.the.local.cach
2e500 65 20 61 6e 64 20 6d 61 79 20 62 65 20 6f 75 74 20 6f 66 20 64 61 74 65 3c 2f 77 61 72 6e 69 6e e.and.may.be.out.of.date</warnin
2e520 67 3e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 74 72 g>');.}.$this->degradedMode.=.tr
2e540 75 65 3b 0a 24 64 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 ue;.$data.=.JsonFile::parseJson(
2e560 24 63 6f 6e 74 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 65 74 52 6f 6f 74 $contents,.$this->cache->getRoot
2e580 28 29 2e 24 63 61 63 68 65 4b 65 79 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 ().$cacheKey);..break;.}..throw.
2e5a0 24 65 3b 0a 7d 0a 0a 75 73 6c 65 65 70 28 31 30 30 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 $e;.}..usleep(100);.}.}..return.
2e5c0 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 $data;.}.}.<?php............name
2e5e0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a space.Composer\Repository\Pear;.
2e600 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 0a 7b 0a 70 72 69 ......class.DependencyInfo.{.pri
2e620 76 61 74 65 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 61 vate.$requires;.private.$optiona
2e640 6c 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ls;......public.function.__const
2e660 72 75 63 74 28 24 72 65 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 0a 7b 0a 24 74 ruct($requires,.$optionals).{.$t
2e680 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 24 74 68 69 73 his->requires.=.$requires;.$this
2e6a0 2d 3e 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a ->optionals.=.$optionals;.}.....
2e6c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a public.function.getRequires().{.
2e6e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 return.$this->requires;.}.....pu
2e700 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 0a 7b 0a 72 blic.function.getOptionals().{.r
2e720 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 eturn.$this->optionals;.}.}.<?ph
2e740 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
2e760 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 Repository\Pear;.......class.Pac
2e780 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 kageDependencyParser.{.......pub
2e7a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f lic.function.buildDependencyInfo
2e7c0 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 ($depArray).{.if.(!is_array($dep
2e7e0 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 Array)).{.return.new.DependencyI
2e800 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 69 66 20 28 21 24 74 nfo(array(),.array());.}.if.(!$t
2e820 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e his->isHash($depArray)).{.return
2e840 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 2d 3e 62 75 69 6c 64 .new.DependencyInfo($this->build
2e860 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 2c 20 61 72 72 Dependency10Info($depArray),.arr
2e880 61 79 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 ay());.}..return.$this->buildDep
2e8a0 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b 0a 7d 0a 0a 0a 0a 0a endency20Info($depArray);.}.....
2e8c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 .........private.function.buildD
2e8e0 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 73 74 61 ependency10Info($depArray).{.sta
2e900 74 69 63 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 tic.$dep10toOperatorMap.=.array(
2e920 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 65 71 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 67 65 27 20 'has'=>'==',.'eq'.=>.'==',.'ge'.
2e940 3d 3e 20 27 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 6c 65 27 20 3d 3e 20 27 3c =>.'>=',.'gt'.=>.'>',.'le'.=>.'<
2e960 3d 27 2c 20 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 3d 3e 20 27 21 3d 27 29 3b =',.'lt'.=>.'<',.'not'.=>.'!=');
2e980 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 ..$result.=.array();..foreach.($
2e9a0 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 69 66 20 28 65 6d 70 74 depArray.as.$depItem).{.if.(empt
2e9c0 79 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 61 72 72 61 79 5f 6b 65 79 y($depItem['rel']).||.!array_key
2e9e0 5f 65 78 69 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 2c 20 24 64 65 70 31 30 74 _exists($depItem['rel'],.$dep10t
2ea00 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a oOperatorMap)).{...continue;.}..
2ea20 24 64 65 70 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 $depType.=.!empty($depItem['opti
2ea40 6f 6e 61 6c 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 6f 70 onal']).&&.'yes'.==.$depItem['op
2ea60 74 69 6f 6e 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a 20 27 72 65 71 75 69 72 65 tional'].?.'optional'.:.'require
2ea80 64 27 3b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d d';.$depType.=.'not'.==.$depItem
2eaa0 5b 27 72 65 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a 20 24 64 65 70 54 79 70 65 ['rel'].?.'conflicts'.:.$depType
2eac0 3b 0a 0a 24 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d ;..$depVersion.=.!empty($depItem
2eae0 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 ['version']).?.$this->parseVersi
2eb00 6f 6e 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3a 20 27 2a 27 3b 0a 0a on($depItem['version']).:.'*';..
2eb20 0a 20 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 27 68 61 73 27 ..$depVersionConstraint.=.('has'
2eb40 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 27 6e 6f 74 27 20 3d 3d 20 .==.$depItem['rel'].||.'not'.==.
2eb60 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 20 3d 3d 20 24 64 65 70 56 $depItem['rel']).&&.'*'.==.$depV
2eb80 65 72 73 69 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d ersion.?.'*'.:.$dep10toOperatorM
2eba0 61 70 5b 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 64 65 70 56 65 72 73 69 6f ap[$depItem['rel']]...$depVersio
2ebc0 6e 3b 0a 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 79 70 65 27 5d 29 20 7b 0a n;..switch.($depItem['type']).{.
2ebe0 63 61 73 65 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 70 case.'php':.$depChannelName.=.'p
2ec00 68 70 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b hp';.$depPackageName.=.'';.break
2ec20 3b 0a 63 61 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 ;.case.'pkg':.$depChannelName.=.
2ec40 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 20 3f 20 24 64 !empty($depItem['channel']).?.$d
2ec60 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 61 72 2e 70 68 70 2e 6e 65 epItem['channel'].:.'pear.php.ne
2ec80 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 t';.$depPackageName.=.$depItem['
2eca0 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 27 3a 0a 24 64 65 70 43 name'];.break;.case.'ext':.$depC
2ecc0 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e hannelName.=.'ext';.$depPackageN
2ece0 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 ame.=.$depItem['name'];.break;.c
2ed00 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a 24 64 65 70 43 68 61 6e 6e ase.'os':.case.'sapi':.$depChann
2ed20 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 elName.=.'';.$depPackageName.=.'
2ed40 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 ';.break;.default:.$depChannelNa
2ed60 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 me.=.'';.$depPackageName.=.'';.b
2ed80 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 reak;.}..if.(''.!=.$depChannelNa
2eda0 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 me).{.$result[].=.new.Dependency
2edc0 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f Constraint(.$depType,.$depVersio
2ede0 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 nConstraint,.$depChannelName,.$d
2ee00 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 epPackageName.);.}.}..return.$re
2ee20 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 sult;.}........private.function.
2ee40 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 buildDependency20Info($depArray)
2ee60 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 73 .{.$result.=.array();.$optionals
2ee80 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 3d 20 .=.array();.$defaultOptionals.=.
2eea0 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 array();.foreach.($depArray.as.$
2eec0 64 65 70 54 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 20 7b 0a 69 66 20 28 depType.=>.$depTypeGroup).{.if.(
2eee0 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 63 6f 6e 74 !is_array($depTypeGroup)).{.cont
2ef00 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 3d 3d 20 24 64 65 70 54 79 inue;.}.if.('required'.==.$depTy
2ef20 70 65 20 7c 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a pe.||.'optional'.==.$depType).{.
2ef40 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 foreach.($depTypeGroup.as.$depIt
2ef60 65 6d 54 79 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 77 69 74 63 68 20 28 24 64 emType.=>.$depItem).{.switch.($d
2ef80 65 70 49 74 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 72 65 73 75 6c epItemType).{.case.'php':.$resul
2efa0 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a t[].=.new.DependencyConstraint(.
2efc0 24 64 65 70 54 79 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 $depType,.$this->parse20VersionC
2efe0 6f 6e 73 74 72 61 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 68 70 27 2c 0a 27 27 0a 29 onstraint($depItem),.'php',.''.)
2f000 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d ;.break;.case.'package':.$deps.=
2f020 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e .$this->buildDepPackageConstrain
2f040 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 ts($depItem,.$depType);.$result.
2f060 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 =.array_merge($result,.$deps);.b
2f080 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a 0a 24 64 65 70 73 20 3d 20 reak;.case.'extension':.$deps.=.
2f0a0 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 $this->buildDepExtensionConstrai
2f0c0 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 nts($depItem,.$depType);.$result
2f0e0 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a .=.array_merge($result,.$deps);.
2f100 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 break;.case.'subpackage':.$deps.
2f120 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 =.$this->buildDepPackageConstrai
2f140 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 24 64 65 66 61 nts($depItem,.'replaces');.$defa
2f160 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 ultOptionals.+=.$deps;.break;.ca
2f180 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 27 3a 0a 62 se.'os':.case.'pearinstaller':.b
2f1a0 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 reak;.default:.break;.}.}.}.else
2f1c0 69 66 20 28 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 69 66 20 28 24 if.('group'.==.$depType).{.if.($
2f1e0 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 24 this->isHash($depTypeGroup)).{.$
2f200 64 65 70 54 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f depTypeGroup.=.array($depTypeGro
2f220 75 70 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 up);.}..foreach.($depTypeGroup.a
2f240 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d 65 20 3d 20 24 64 65 70 49 s.$depItem).{.$groupName.=.$depI
2f260 74 65 6d 5b 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 21 69 73 73 tem['attribs']['name'];.if.(!iss
2f280 65 74 28 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 29 29 20 7b 0a 24 6f et($optionals[$groupName])).{.$o
2f2a0 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a ptionals[$groupName].=.array();.
2f2c0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 }..if.(isset($depItem['subpackag
2f2e0 65 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 2b e'])).{.$optionals[$groupName].+
2f300 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 =.$this->buildDepPackageConstrai
2f320 6e 74 73 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 2c 20 27 72 65 70 nts($depItem['subpackage'],.'rep
2f340 6c 61 63 65 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 20 2b 3d 20 24 74 68 laces');.}.else.{.$result.+=.$th
2f360 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 is->buildDepPackageConstraints($
2f380 64 65 70 49 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 74 69 6f 6e 61 6c 27 29 3b depItem['package'],.'optional');
2f3a0 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 .}.}.}.}..if.(count($defaultOpti
2f3c0 6f 6e 61 6c 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 27 2a 27 5d 20 3d 20 onals).>.0).{.$optionals['*'].=.
2f3e0 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 $defaultOptionals;.}..return.new
2f400 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6f 70 74 69 6f 6e .DependencyInfo($result,.$option
2f420 61 6c 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e als);.}.........private.function
2f440 20 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 .buildDepExtensionConstraints($d
2f460 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 epItem,.$depType).{.if.($this->i
2f480 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 sHash($depItem)).{.$depItem.=.ar
2f4a0 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 ray($depItem);.}..$result.=.arra
2f4c0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 y();.foreach.($depItem.as.$subDe
2f4e0 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 pItem).{.$depChannelName.=.'ext'
2f500 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b ;.$depPackageName.=.$subDepItem[
2f520 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 'name'];.$depVersionConstraint.=
2f540 20 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 .$this->parse20VersionConstraint
2f560 28 24 73 75 62 44 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 ($subDepItem);..$result[].=.new.
2f580 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a DependencyConstraint(.$depType,.
2f5a0 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e $depVersionConstraint,.$depChann
2f5c0 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 elName,.$depPackageName.);.}..re
2f5e0 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 turn.$result;.}.........private.
2f600 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 function.buildDepPackageConstrai
2f620 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 nts($depItem,.$depType).{.if.($t
2f640 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 his->isHash($depItem)).{.$depIte
2f660 6d 20 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 m.=.array($depItem);.}..$result.
2f680 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 =.array();.foreach.($depItem.as.
2f6a0 24 73 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d $subDepItem).{.$depChannelName.=
2f6c0 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 3b 0a 24 64 65 70 50 61 63 .$subDepItem['channel'];.$depPac
2f6e0 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a kageName.=.$subDepItem['name'];.
2f700 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 $depVersionConstraint.=.$this->p
2f720 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 arse20VersionConstraint($subDepI
2f740 74 65 6d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 6f 6e tem);.if.(isset($subDepItem['con
2f760 66 6c 69 63 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 63 6f 6e 66 6c 69 63 flicts'])).{.$depType.=.'conflic
2f780 74 73 27 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e ts';.}..$result[].=.new.Dependen
2f7a0 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 cyConstraint(.$depType,.$depVers
2f7c0 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a ionConstraint,.$depChannelName,.
2f7e0 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 $depPackageName.);.}..return.$re
2f800 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 sult;.}........private.function.
2f820 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 61 72 72 61 79 20 24 parse20VersionConstraint(array.$
2f840 64 61 74 61 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d data).{.static.$dep20toOperatorM
2f860 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 6d 69 6e 27 20 3d 3e ap.=.array('has'=>'==',.'min'.=>
2f880 20 27 3e 3d 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 65 78 63 6c 75 64 65 27 20 .'>=',.'max'.=>.'<=',.'exclude'.
2f8a0 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a =>.'!=');..$versions.=.array();.
2f8c0 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 64 $values.=.array_intersect_key($d
2f8e0 61 74 61 2c 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 3b 0a 69 66 20 28 30 ata,.$dep20toOperatorMap);.if.(0
2f900 20 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 27 .==.count($values)).{.return.'*'
2f920 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 20 26 26 ;.}.if.(isset($values['min']).&&
2f940 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 .isset($values['exclude']).&&.$d
2f960 61 74 61 5b 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 ata['min'].==.$data['exclude']).
2f980 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 {.$versions[].=.'>'...$this->par
2f9a0 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 3b 0a 7d 20 65 6c 73 seVersion($values['min']);.}.els
2f9c0 65 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 20 26 26 20 69 73 eif.(isset($values['max']).&&.is
2f9e0 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 set($values['exclude']).&&.$data
2fa00 5b 27 6d 61 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 ['max'].==.$data['exclude']).{.$
2fa20 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 versions[].=.'<'...$this->parseV
2fa40 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b ersion($values['max']);.}.else.{
2fa60 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 6f 70 20 3d 3e 20 24 76 65 72 .foreach.($values.as.$op.=>.$ver
2fa80 73 69 6f 6e 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 64 65 27 20 3d 3d 20 24 6f 70 20 26 26 20 sion).{.if.('exclude'.==.$op.&&.
2faa0 69 73 5f 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 is_array($version)).{.foreach.($
2fac0 76 65 72 73 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f 6e 50 61 72 74 29 20 7b 0a 24 76 65 72 73 version.as.$versionPart).{.$vers
2fae0 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 ions[].=.$dep20toOperatorMap[$op
2fb00 5d 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e ]...$this->parseVersion($version
2fb20 50 61 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 Part);.}.}.else.{.$versions[].=.
2fb40 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 $dep20toOperatorMap[$op]...$this
2fb60 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 7d 0a ->parseVersion($version);.}.}.}.
2fb80 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b .return.implode(',',.$versions);
2fba0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 .}........private.function.parse
2fbc0 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 Version($version).{.if.(preg_mat
2fbe0 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 ch('{^v?(\d{1,3})(\.\d+)?(\.\d+)
2fc00 3f 28 5c 2e 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 ?(\.\d+)?}i',.$version,.$matches
2fc20 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 )).{.$version.=.$matches[1]..(!e
2fc40 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 mpty($matches[2]).?.$matches[2].
2fc60 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 :.'.0')..(!empty($matches[3]).?.
2fc80 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 $matches[3].:.'.0')..(!empty($ma
2fca0 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b tches[4]).?.$matches[4].:.'.0');
2fcc0 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c ..return.$version;.}..return.nul
2fce0 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 l;.}........private.function.isH
2fd00 61 73 68 28 61 72 72 61 79 20 24 61 72 72 61 79 29 0a 7b 0a 72 65 74 75 72 6e 20 21 61 72 72 61 ash(array.$array).{.return.!arra
2fd20 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 72 72 61 79 29 20 26 26 20 21 61 72 72 61 y_key_exists(1,.$array).&&.!arra
2fd40 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 y_key_exists(0,.$array);.}.}.<?p
2fd60 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
2fd80 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 \Repository\Pear;.......class.Ch
2fda0 61 6e 6e 65 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 annelInfo.{.private.$name;.priva
2fdc0 74 65 20 24 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 0a te.$alias;.private.$packages;...
2fde0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
2fe00 24 6e 61 6d 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a $name,.$alias,.array.$packages).
2fe20 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 6c {.$this->name.=.$name;.$this->al
2fe40 69 61 73 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 ias.=.$alias;.$this->packages.=.
2fe60 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $packages;.}.......public.functi
2fe80 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d on.getName().{.return.$this->nam
2fea0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c e;.}.......public.function.getAl
2fec0 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 3b 0a 7d 0a 0a ias().{.return.$this->alias;.}..
2fee0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 .....public.function.getPackages
2ff00 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d ().{.return.$this->packages;.}.}
2ff20 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
2ff40 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f oser\Repository\Pear;..use.Compo
2ff60 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a ser\Util\RemoteFilesystem;......
2ff80 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 ...class.ChannelReader.extends.B
2ffa0 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 aseChannelReader.{..private.$rea
2ffc0 64 65 72 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 derMap;..public.function.__const
2ffe0 72 75 63 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 70 61 ruct(RemoteFilesystem.$rfs).{.pa
30000 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 72 65 73 74 31 rent::__construct($rfs);..$rest1
30020 30 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 0reader.=.new.ChannelRest10Reade
30040 72 28 24 72 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 r($rfs);.$rest11reader.=.new.Cha
30060 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e nnelRest11Reader($rfs);..$this->
30080 72 65 61 64 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 27 52 45 53 54 31 2e 33 27 20 3d 3e 20 readerMap.=.array(.'REST1.3'.=>.
300a0 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 32 27 20 3d 3e 20 24 72 65 73 $rest11reader,.'REST1.2'.=>.$res
300c0 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 31 27 20 3d 3e 20 24 72 65 73 74 31 31 72 t11reader,.'REST1.1'.=>.$rest11r
300e0 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 3e 20 24 72 65 73 74 31 30 72 65 61 64 65 eader,.'REST1.0'.=>.$rest10reade
30100 72 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 r,.);.}........public.function.r
30120 65 61 64 28 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 ead($url).{.$xml.=.$this->reques
30140 74 58 6d 6c 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e 65 6c 2e 78 6d 6c 22 29 3b 0a 0a 24 63 68 tXml($url,."/channel.xml");..$ch
30160 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 61 6d 65 3b annelName.=.(string).$xml->name;
30180 0a 24 63 68 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c .$channelSummary.=.(string).$xml
301a0 2d 3e 73 75 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 20 3d 20 28 73 74 72 69 ->summary;.$channelAlias.=.(stri
301c0 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 64 61 6c 69 61 73 3b 0a 0a 24 73 75 70 70 ng).$xml->suggestedalias;..$supp
301e0 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 ortedVersions.=.array_keys($this
30200 2d 3e 72 65 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 ->readerMap);.$selectedRestVersi
30220 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 78 on.=.$this->selectRestVersion($x
30240 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 21 24 73 ml,.$supportedVersions);.if.(!$s
30260 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 electedRestVersion).{.throw.new.
30280 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \UnexpectedValueException(sprint
302a0 66 28 27 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 73 f('PEAR.repository.%s.does.not.s
302c0 75 70 70 6f 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 70 72 6f 74 6f 63 6f 6c 73 2e 27 2c 20 24 upports.any.of.%s.protocols.',.$
302e0 75 72 6c 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 url,.implode(',.',.$supportedVer
30300 73 69 6f 6e 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 72 65 sions)));.}..$reader.=.$this->re
30320 61 64 65 72 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 76 65 aderMap[$selectedRestVersion['ve
30340 72 73 69 6f 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 20 3d 20 rsion']];.$packageDefinitions.=.
30360 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 $reader->read($selectedRestVersi
30380 6f 6e 5b 27 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 43 68 61 6e on['baseUrl']);..return.new.Chan
303a0 6e 65 6c 49 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 63 68 61 6e 6e 65 6c 41 6c nelInfo($channelName,.$channelAl
303c0 69 61 73 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a ias,.$packageDefinitions);.}....
303e0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 52 65 73 74 .....private.function.selectRest
30400 56 65 72 73 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 Version($channelXml,.$supportedV
30420 65 72 73 69 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 72 65 67 69 73 74 65 72 ersions).{.$channelXml->register
30440 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 48 41 4e 4e XPathNamespace('ns',.self::CHANN
30460 45 4c 5f 4e 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 EL_NS);..foreach.($supportedVers
30480 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 78 70 61 74 68 54 65 73 74 20 3d ions.as.$version).{.$xpathTest.=
304a0 20 22 6e 73 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 69 6d 61 72 79 2f 6e 73 3a 72 65 73 74 2f ."ns:servers/ns:primary/ns:rest/
304c0 6e 73 3a 62 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 7b 24 76 65 72 73 69 6f 6e 7d 27 5d 22 3b ns:baseurl[@type='{$version}']";
304e0 0a 24 74 65 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 78 70 61 74 .$testResult.=.$channelXml->xpat
30500 68 28 24 78 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 65 73 74 52 65 h($xpathTest);.if.(count($testRe
30520 73 75 6c 74 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 76 65 72 73 69 sult).>.0).{.return.array('versi
30540 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 62 61 73 65 55 72 6c 27 20 3d 3e 20 28 73 on'.=>.$version,.'baseUrl'.=>.(s
30560 74 72 69 6e 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 tring).$testResult[0]);.}.}..ret
30580 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e urn.null;.}.}.<?php............n
305a0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 amespace.Composer\Repository\Pea
305c0 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 49 6e 66 6f 0a 7b 0a 70 72 69 r;.......class.PackageInfo.{.pri
305e0 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b vate.$channelName;.private.$pack
30600 61 67 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 69 63 65 6e 73 65 3b 0a 70 72 69 76 61 ageName;.private.$license;.priva
30620 74 65 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 64 te.$shortDescription;.private.$d
30640 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 65 61 73 65 73 3b 0a 0a escription;.private.$releases;..
30660 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
30680 75 63 74 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 uct($channelName,.$packageName,.
306a0 24 6c 69 63 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 $license,.$shortDescription,.$de
306c0 73 63 72 69 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 scription,.$releases).{.$this->c
306e0 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 hannelName.=.$channelName;.$this
30700 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 74 ->packageName.=.$packageName;.$t
30720 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 24 74 68 69 73 2d 3e his->license.=.$license;.$this->
30740 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 shortDescription.=.$shortDescrip
30760 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 tion;.$this->description.=.$desc
30780 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 20 3d 20 24 72 65 6c 65 ription;.$this->releases.=.$rele
307a0 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 ases;.}.....public.function.getC
307c0 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 hannelName().{.return.$this->cha
307e0 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 nnelName;.}.....public.function.
30800 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getPackageName().{.return.$this-
30820 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >packageName;.}.....public.funct
30840 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ion.getDescription().{.return.$t
30860 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 his->description;.}.....public.f
30880 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a unction.getShortDescription().{.
308a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a return.$this->shortDescription;.
308c0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 }.....public.function.getLicense
308e0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a ().{.return.$this->license;.}...
30900 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 73 28 29 0a ..public.function.getReleases().
30920 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f {.return.$this->releases;.}.}.<?
30940 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
30960 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 r\Repository\Pear;.......class.D
30980 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 ependencyConstraint.{.private.$t
309a0 79 70 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 69 76 61 74 ype;.private.$constraint;.privat
309c0 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 e.$channelName;.private.$package
309e0 4e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 Name;........public.function.__c
30a00 6f 6e 73 74 72 75 63 74 28 24 74 79 70 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 63 68 onstruct($type,.$constraint,.$ch
30a20 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 annelName,.$packageName).{.$this
30a40 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e ->type.=.$type;.$this->constrain
30a60 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e t.=.$constraint;.$this->channelN
30a80 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 ame.=.$channelName;.$this->packa
30aa0 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 geName.=.$packageName;.}..public
30ac0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 .function.getChannelName().{.ret
30ae0 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 urn.$this->channelName;.}..publi
30b00 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 c.function.getConstraint().{.ret
30b20 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 urn.$this->constraint;.}..public
30b40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 .function.getPackageName().{.ret
30b60 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 urn.$this->packageName;.}..publi
30b80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 c.function.getType().{.return.$t
30ba0 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a his->type;.}.}.<?php............
30bc0 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 namespace.Composer\Repository\Pe
30be0 61 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 ar;...........class.ChannelRest1
30c00 31 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 1Reader.extends.BaseChannelReade
30c20 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 3b 0a 0a r.{.private.$dependencyReader;..
30c40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 public.function.__construct($rfs
30c60 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a ).{.parent::__construct($rfs);..
30c80 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 $this->dependencyReader.=.new.Pa
30ca0 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ckageDependencyParser();.}......
30cc0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 73 65 55 72 6c ...public.function.read($baseUrl
30ce0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 ).{.return.$this->readChannelPac
30d00 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 kages($baseUrl);.}.........priva
30d20 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 73 28 te.function.readChannelPackages(
30d40 24 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a $baseUrl).{.$result.=.array();..
30d60 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 $xml.=.$this->requestXml($baseUr
30d80 6c 2c 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d 6c 22 29 3b 0a 24 78 6d 6c 2d 3e 72 l,."/c/categories.xml");.$xml->r
30da0 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 egisterXPathNamespace('ns',.self
30dc0 3a 3a 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ::ALL_CATEGORIES_NS);.foreach.($
30de0 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 63 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 xml->xpath('ns:c').as.$node).{.$
30e00 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 categoryName.=.(string).$node;.$
30e20 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 43 61 categoryPackages.=.$this->readCa
30e40 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f tegoryPackages($baseUrl,.$catego
30e60 72 79 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 ryName);.$result.=.array_merge($
30e80 72 65 73 75 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 72 result,.$categoryPackages);.}..r
30ea0 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 eturn.$result;.}..........privat
30ec0 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 e.function.readCategoryPackages(
30ee0 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 $baseUrl,.$categoryName).{.$resu
30f00 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 61 74 65 67 6f 72 79 50 61 74 68 20 3d 20 27 lt.=.array();..$categoryPath.=.'
30f20 2f 63 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 2e 27 2f /c/'.urlencode($categoryName).'/
30f40 70 61 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d packagesinfo.xml';.$xml.=.$this-
30f60 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 50 >requestXml($baseUrl,.$categoryP
30f80 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 ath);.$xml->registerXPathNamespa
30fa0 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 ce('ns',.self::CATEGORY_PACKAGES
30fc0 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 _INFO_NS);.foreach.($xml->xpath(
30fe0 27 6e 73 3a 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 'ns:pi').as.$node).{.$packageInf
31000 6f 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 6e 6f 64 65 29 3b 0a o.=.$this->parsePackage($node);.
31020 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 $result[].=.$packageInfo;.}..ret
31040 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 urn.$result;.}........private.fu
31060 6e 63 74 69 6f 6e 20 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 49 6e 66 6f nction.parsePackage($packageInfo
31080 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e ).{.$packageInfo->registerXPathN
310a0 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 amespace('ns',.self::CATEGORY_PA
310c0 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 CKAGES_INFO_NS);.$channelName.=.
310e0 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 63 3b 0a 24 70 61 (string).$packageInfo->p->c;.$pa
31100 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 ckageName.=.(string).$packageInf
31120 6f 2d 3e 70 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 o->p->n;.$license.=.(string).$pa
31140 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 ckageInfo->p->l;.$shortDescripti
31160 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 73 on.=.(string).$packageInfo->p->s
31180 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 ;.$description.=.(string).$packa
311a0 67 65 49 6e 66 6f 2d 3e 70 2d 3e 64 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 61 geInfo->p->d;..$dependencies.=.a
311c0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 rray();.foreach.($packageInfo->x
311e0 70 61 74 68 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 64 65 70 path('ns:deps').as.$node).{.$dep
31200 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d endencyVersion.=.(string).$node-
31220 3e 76 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 >v;.$dependencyArray.=.unseriali
31240 7a 65 28 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 64 29 3b 0a 0a 24 64 65 70 65 6e 64 65 ze((string).$node->d);..$depende
31260 6e 63 79 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 ncyInfo.=.$this->dependencyReade
31280 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e r->buildDependencyInfo($dependen
312a0 63 79 41 72 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 64 65 70 65 6e 64 cyArray);..$dependencies[$depend
312c0 65 6e 63 79 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a encyVersion].=.$dependencyInfo;.
312e0 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 6c 65 61 73 65 }..$releases.=.array();.$release
31300 73 49 6e 66 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a sInfo.=.$packageInfo->xpath('ns:
31320 61 2f 6e 73 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 29 20 7b 0a 66 a/ns:r');.if.($releasesInfo).{.f
31340 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 61 73 20 24 6e 6f 64 65 29 20 oreach.($releasesInfo.as.$node).
31360 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f {.$releaseVersion.=.(string).$no
31380 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 de->v;.$releaseStability.=.(stri
313a0 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c 65 61 73 65 73 5b 24 72 65 6c 65 61 73 65 ng).$node->s;.$releases[$release
313c0 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c Version].=.new.ReleaseInfo(.$rel
313e0 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 65 74 28 24 64 65 70 65 6e 64 65 6e 63 69 easeStability,.isset($dependenci
31400 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 29 20 3f 20 24 64 65 70 65 6e 64 65 6e es[$releaseVersion]).?.$dependen
31420 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3a 20 6e 65 77 20 44 65 70 65 cies[$releaseVersion].:.new.Depe
31440 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 0a 29 3b 0a ndencyInfo(array(),.array()).);.
31460 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 }.}..return.new.PackageInfo(.$ch
31480 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 annelName,.$packageName,.$licens
314a0 65 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 e,.$shortDescription,.$descripti
314c0 6f 6e 2c 0a 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a on,.$releases.);.}.}.<?php......
314e0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 ......namespace.Composer\Reposit
31500 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6c 65 61 73 65 49 6e 66 ory\Pear;.......class.ReleaseInf
31520 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 o.{.private.$stability;.private.
31540 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $dependencyInfo;......public.fun
31560 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 61 62 69 6c 69 74 79 2c 20 24 64 ction.__construct($stability,.$d
31580 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 ependencyInfo).{.$this->stabilit
315a0 79 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 y.=.$stability;.$this->dependenc
315c0 79 49 6e 66 6f 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 yInfo.=.$dependencyInfo;.}.....p
315e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f ublic.function.getDependencyInfo
31600 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 ().{.return.$this->dependencyInf
31620 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 o;.}.....public.function.getStab
31640 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 ility().{.return.$this->stabilit
31660 79 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 y;.}.}.<?php............namespac
31680 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 e.Composer\Repository\Pear;..use
316a0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b .Composer\Util\RemoteFilesystem;
316c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 43 68 61 6e .........abstract.class.BaseChan
316e0 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 43 48 41 4e 4e 45 4c 5f 4e 53 20 nelReader.{....const.CHANNEL_NS.
31700 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 63 68 61 6e 6e 65 6c 2d 31 =.'http://pear.php.net/channel-1
31720 2e 30 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 20 3d 20 27 .0';.const.ALL_CATEGORIES_NS.=.'
31740 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c http://pear.php.net/dtd/rest.all
31760 63 61 74 65 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 20 43 41 54 45 47 4f 52 59 5f 50 41 43 4b categories';.const.CATEGORY_PACK
31780 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e AGES_INFO_NS.=.'http://pear.php.
317a0 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 63 61 74 65 67 6f 72 79 70 61 63 6b 61 67 65 69 6e 66 6f net/dtd/rest.categorypackageinfo
317c0 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 ';.const.ALL_PACKAGES_NS.=.'http
317e0 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 70 61 63 6b ://pear.php.net/dtd/rest.allpack
31800 61 67 65 73 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 20 3d 20 27 ages';.const.ALL_RELEASES_NS.=.'
31820 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c http://pear.php.net/dtd/rest.all
31840 72 65 6c 65 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 releases';.const.PACKAGE_INFO_NS
31860 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 .=.'http://pear.php.net/dtd/rest
31880 2e 70 61 63 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 70 72 6f 74 .package';...private.$rfs;..prot
318a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 ected.function.__construct(Remot
318c0 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d eFilesystem.$rfs).{.$this->rfs.=
318e0 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 .$rfs;.}.........protected.funct
31900 69 6f 6e 20 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 ion.requestContent($origin,.$pat
31920 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 h).{.$url.=.rtrim($origin,.'/').
31940 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b 0a 24 63 6f 6e 74 ..'/'...ltrim($path,.'/');.$cont
31960 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f ent.=.$this->rfs->getContents($o
31980 72 69 67 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 rigin,.$url,.false);.if.(!$conte
319a0 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 nt).{.throw.new.\UnexpectedValue
319c0 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 Exception('The.PEAR.channel.at.'
319e0 20 2e 20 24 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f 74 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a ...$url...'.did.not.respond.');.
31a00 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 }..return.$content;.}.........pr
31a20 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 58 6d 6c 28 24 6f 72 69 otected.function.requestXml($ori
31a40 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 6d 6c 20 3d 20 73 69 6d 70 6c 65 78 6d 6c gin,.$path).{...$xml.=.simplexml
31a60 5f 6c 6f 61 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 _load_string($this->requestConte
31a80 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 2c 20 22 53 69 6d 70 6c 65 58 4d 4c 45 6c nt($origin,.$path),."SimpleXMLEl
31aa0 65 6d 65 6e 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 52 52 4f 52 29 3b 0a 0a 69 66 20 28 66 61 ement",.LIBXML_NOERROR);..if.(fa
31ac0 6c 73 65 20 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 lse.==.$xml).{.$url.=.rtrim($ori
31ae0 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 gin,.'/')...'/'...ltrim($path,.'
31b00 2f 27 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 /');.throw.new.\UnexpectedValueE
31b20 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e xception(sprintf('The.PEAR.chann
31b40 65 6c 20 61 74 20 27 20 2e 20 24 6f 72 69 67 69 6e 20 2e 20 27 20 69 73 20 62 72 6f 6b 65 6e 2e el.at.'...$origin...'.is.broken.
31b60 20 28 49 6e 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 69 6c 65 20 60 25 73 60 29 27 2c 20 24 70 .(Invalid.XML.at.file.`%s`)',.$p
31b80 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 78 6d 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ath));.}..return.$xml;.}.}.<?php
31ba0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 ............namespace.Composer\R
31bc0 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f epository\Pear;..use.Composer\Do
31be0 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a wnloader\TransportException;....
31c00 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 .........class.ChannelRest10Read
31c20 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 er.extends.BaseChannelReader.{.p
31c40 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 3b 0a 0a 70 75 62 6c 69 rivate.$dependencyReader;..publi
31c60 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 c.function.__construct($rfs).{.p
31c80 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 arent::__construct($rfs);..$this
31ca0 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 ->dependencyReader.=.new.Package
31cc0 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 DependencyParser();.}.........pu
31ce0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 blic.function.read($baseUrl).{.r
31d00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 eturn.$this->readPackages($baseU
31d20 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 rl);.}.........private.function.
31d40 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 readPackages($baseUrl).{.$result
31d60 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 70 61 63 6b .=.array();..$xmlPath.=.'/p/pack
31d80 61 67 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 ages.xml';.$xml.=.$this->request
31da0 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 Xml($baseUrl,.$xmlPath);.$xml->r
31dc0 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 egisterXPathNamespace('ns',.self
31de0 3a 3a 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d ::ALL_PACKAGES_NS);.foreach.($xm
31e00 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 l->xpath('ns:p').as.$node).{.$pa
31e20 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 70 61 63 ckageName.=.(string).$node;.$pac
31e40 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 kageInfo.=.$this->readPackage($b
31e60 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d aseUrl,.$packageName);.$result[]
31e80 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 .=.$packageInfo;.}..return.$resu
31ea0 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 lt;.}..........private.function.
31ec0 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 readPackage($baseUrl,.$packageNa
31ee0 6d 65 29 0a 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 27 20 2e 20 73 74 72 74 6f 6c 6f me).{.$xmlPath.=.'/p/'...strtolo
31f00 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 69 6e 66 6f 2e 78 6d 6c 27 3b wer($packageName)...'/info.xml';
31f20 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 .$xml.=.$this->requestXml($baseU
31f40 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 rl,.$xmlPath);.$xml->registerXPa
31f60 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 50 41 43 4b 41 47 45 5f thNamespace('ns',.self::PACKAGE_
31f80 49 4e 46 4f 5f 4e 53 29 3b 0a 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e INFO_NS);..$channelName.=.(strin
31fa0 67 29 20 24 78 6d 6c 2d 3e 63 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 g).$xml->c;.$packageName.=.(stri
31fc0 6e 67 29 20 24 78 6d 6c 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 ng).$xml->n;.$license.=.(string)
31fe0 20 24 78 6d 6c 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 .$xml->l;.$shortDescription.=.(s
32000 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 tring).$xml->s;.$description.=.(
32020 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 64 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 string).$xml->d;..return.new.Pac
32040 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 kageInfo(.$channelName,.$package
32060 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f Name,.$license,.$shortDescriptio
32080 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b n,.$description,.$this->readPack
320a0 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 ageReleases($baseUrl,.$packageNa
320c0 6d 65 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 me).);.}..........private.functi
320e0 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c on.readPackageReleases($baseUrl,
32100 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 .$packageName).{.$result.=.array
32120 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 ();..try.{.$xmlPath.=.'/r/'...st
32140 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 61 6c 6c 72 65 rtolower($packageName)...'/allre
32160 6c 65 61 73 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 leases.xml';.$xml.=.$this->reque
32180 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d stXml($baseUrl,.$xmlPath);.$xml-
321a0 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 >registerXPathNamespace('ns',.se
321c0 6c 66 3a 3a 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 lf::ALL_RELEASES_NS);.foreach.($
321e0 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 72 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 xml->xpath('ns:r').as.$node).{.$
32200 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d releaseVersion.=.(string).$node-
32220 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 >v;.$releaseStability.=.(string)
32240 20 24 6e 6f 64 65 2d 3e 73 3b 0a 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 5b 24 72 65 6c 65 61 .$node->s;..try.{.$result[$relea
32260 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 seVersion].=.new.ReleaseInfo(.$r
32280 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b eleaseStability,.$this->readPack
322a0 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c ageReleaseDependencies($baseUrl,
322c0 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 29 0a .$packageName,.$releaseVersion).
322e0 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 );.}.catch.(TransportException.$
32300 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 exception).{.if.($exception->get
32320 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f Code().!=.404).{.throw.$exceptio
32340 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 n;.}.}.}.}.catch.(TransportExcep
32360 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f tion.$exception).{.if.($exceptio
32380 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 n->getCode().!=.404).{.throw.$ex
323a0 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a ception;.}.}..return.$result;.}.
323c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 ..........private.function.readP
323e0 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 ackageReleaseDependencies($baseU
32400 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 64 rl,.$packageName,.$version).{.$d
32420 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 ependencyReader.=.new.PackageDep
32440 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a 0a 24 64 65 70 74 68 50 61 74 68 20 3d 20 27 endencyParser();..$depthPath.=.'
32460 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 /r/'...strtolower($packageName).
32480 2e 20 27 2f 64 65 70 73 2e 27 20 2e 20 24 76 65 72 73 69 6f 6e 20 2e 20 27 2e 74 78 74 27 3b 0a ..'/deps.'...$version...'.txt';.
324a0 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 $content.=.$this->requestContent
324c0 28 24 62 61 73 65 55 72 6c 2c 20 24 64 65 70 74 68 50 61 74 68 29 3b 0a 24 64 65 70 65 6e 64 65 ($baseUrl,.$depthPath);.$depende
324e0 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 24 63 6f 6e 74 65 6e 74 29 ncyArray.=.unserialize($content)
32500 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 ;.$result.=.$dependencyReader->b
32520 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 uildDependencyInfo($dependencyAr
32540 72 61 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ray);..return.$result;.}.}.<?php
32560 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 ............namespace.Composer\R
32580 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 epository;..use.Composer\Package
325a0 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 \PackageInterface;........interf
325c0 61 63 65 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 ace.RepositoryInterface.extends.
325e0 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 \Countable.{........public.funct
32600 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ion.hasPackage(PackageInterface.
32620 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $package);..........public.funct
32640 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 ion.findPackage($name,.$version)
32660 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 ;..........public.function.findP
32680 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 3b ackages($name,.$version.=.null);
326a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 ..............public.function.fi
326c0 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d lterPackages($callback,.$class.=
326e0 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 0a 0a .'Composer\Package\Package');...
32700 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 ....public.function.getPackages(
32720 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 );.}.<?php............namespace.
32740 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 Composer\Repository;..use.Compos
32760 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 0a er\Package\Loader\ArrayLoader;..
32780 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 .....class.PackageRepository.ext
327a0 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 ends.ArrayRepository.{.private.$
327c0 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f config;.......public.function.__
327e0 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 construct(array.$config).{.$this
32800 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a ->config.=.$config['package'];..
32820 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 68 69 73 2d 3e 63 6f 6e ..if.(!is_numeric(key($this->con
32840 66 69 67 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 24 fig))).{.$this->config.=.array($
32860 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 this->config);.}.}.....protected
32880 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a .function.initialize().{.parent:
328a0 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 :initialize();..$loader.=.new.Ar
328c0 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e rayLoader();.foreach.($this->con
328e0 66 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c fig.as.$package).{.$package.=.$l
32900 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 61 64 oader->load($package);.$this->ad
32920 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a dPackage($package);.}.}.}.<?php.
32940 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ...........namespace.Composer\Re
32960 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c pository;..use.Composer\Package\
32980 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 PackageInterface;.....interface.
329a0 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 NotifiableRepositoryInterface.ex
329c0 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a tends.RepositoryInterface.{.....
329e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 50 .public.function.notifyInstall(P
32a00 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 ackageInterface.$package);.}.<?p
32a20 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
32a40 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6c 65 74 65 50 61 \Package;.......class.CompletePa
32a60 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 ckage.extends.Package.implements
32a80 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 .CompletePackageInterface.{.prot
32aa0 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ected.$repositories;.protected.$
32ac0 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6b 65 license.=.array();.protected.$ke
32ae0 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 73 3b 0a 70 72 6f 74 ywords;.protected.$authors;.prot
32b00 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 ected.$description;.protected.$h
32b20 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 73 20 3d 20 61 72 omepage;.protected.$scripts.=.ar
32b40 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 ray();.protected.$support.=.arra
32b60 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 63 72 69 y();.....public.function.setScri
32b80 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 70 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 pts(array.$scripts).{.$this->scr
32ba0 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ipts.=.$scripts;.}.....public.fu
32bc0 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.getScripts().{.return.$th
32be0 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 is->scripts;.}.......public.func
32c00 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 tion.setRepositories($repositori
32c20 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 es).{.$this->repositories.=.$rep
32c40 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ositories;.}.....public.function
32c60 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .getRepositories().{.return.$thi
32c80 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->repositories;.}.......public.
32ca0 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 20 24 6c 69 63 65 6e function.setLicense(array.$licen
32cc0 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b se).{.$this->license.=.$license;
32ce0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 .}.....public.function.getLicens
32d00 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a e().{.return.$this->license;.}..
32d20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4b 65 79 77 6f 72 64 73 .....public.function.setKeywords
32d40 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6b 65 79 77 6f (array.$keywords).{.$this->keywo
32d60 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rds.=.$keywords;.}.....public.fu
32d80 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getKeywords().{.return.$t
32da0 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->keywords;.}.......public.fu
32dc0 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 79 20 24 61 75 74 68 6f 72 73 nction.setAuthors(array.$authors
32de0 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 61 75 74 68 6f 72 73 3b 0a 7d ).{.$this->authors.=.$authors;.}
32e00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 .....public.function.getAuthors(
32e20 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->authors;.}....
32e40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f ...public.function.setDescriptio
32e60 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 n($description).{.$this->descrip
32e80 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.=.$description;.}.....publi
32ea0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 c.function.getDescription().{.re
32ec0 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a turn.$this->description;.}......
32ee0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 6d 65 70 61 67 65 28 24 68 6f .public.function.setHomepage($ho
32f00 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 20 3d 20 24 68 6f 6d mepage).{.$this->homepage.=.$hom
32f20 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 epage;.}.....public.function.get
32f40 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 6d 65 70 Homepage().{.return.$this->homep
32f60 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 age;.}.......public.function.set
32f80 53 75 70 70 6f 72 74 28 61 72 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d Support(array.$support).{.$this-
32fa0 3e 73 75 70 70 6f 72 74 20 3d 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 >support.=.$support;.}.....publi
32fc0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getSupport().{.return
32fe0 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$this->support;.}.}.<?php......
33000 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
33020 5c 44 75 6d 70 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 \Dumper;..use.Composer\Package\B
33040 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 asePackage;.use.Composer\Package
33060 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \PackageInterface;.use.Composer\
33080 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 Package\CompletePackageInterface
330a0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 ;.use.Composer\Package\RootPacka
330c0 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d geInterface;......class.ArrayDum
330e0 70 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 per.{.public.function.dump(Packa
33100 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 geInterface.$package).{.$keys.=.
33120 61 72 72 61 79 28 0a 27 62 69 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 74 79 70 array(.'binaries'.=>.'bin',.'typ
33140 65 27 2c 0a 27 65 78 74 72 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 e',.'extra',.'installationSource
33160 27 20 3d 3e 20 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 61 75 74 '.=>.'installation-source',.'aut
33180 6f 6c 6f 61 64 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 69 6e 63 6c 75 oload',.'includePaths'.=>.'inclu
331a0 64 65 2d 70 61 74 68 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 de-path',.);..$data.=.array();.$
331c0 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 data['name'].=.$package->getPret
331e0 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 61 tyName();.$data['version'].=.$pa
33200 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 64 61 74 61 ckage->getPrettyVersion();.$data
33220 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 63 6b 61 67 ['version_normalized'].=.$packag
33240 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e e->getVersion();..if.($package->
33260 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 61 72 67 65 74 2d getTargetDir()).{.$data['target-
33280 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 dir'].=.$package->getTargetDir()
332a0 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 ;.}..if.($package->getSourceType
332c0 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 ()).{.$data['source']['type'].=.
332e0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 61 $package->getSourceType();.$data
33300 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ['source']['url'].=.$package->ge
33320 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 tSourceUrl();.$data['source']['r
33340 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 eference'].=.$package->getSource
33360 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 Reference();.}..if.($package->ge
33380 74 44 69 73 74 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 74 79 tDistType()).{.$data['dist']['ty
333a0 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a pe'].=.$package->getDistType();.
333c0 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d $data['dist']['url'].=.$package-
333e0 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 72 65 >getDistUrl();.$data['dist']['re
33400 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 ference'].=.$package->getDistRef
33420 65 72 65 6e 63 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 erence();.$data['dist']['shasum'
33440 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 ].=.$package->getDistSha1Checksu
33460 6d 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 m();.}..foreach.(BasePackage::$s
33480 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f upportedLinkTypes.as.$type.=>.$o
334a0 70 74 73 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 pts).{.if.($links.=.$package->{'
334c0 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 7d 28 29 get'.ucfirst($opts['method'])}()
334e0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a ).{.foreach.($links.as.$link).{.
33500 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d $data[$type][$link->getTarget()]
33520 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b .=.$link->getPrettyConstraint();
33540 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 67 65 .}.}.}..if.($packages.=.$package
33560 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 ->getSuggests()).{.$data['sugges
33580 74 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 t'].=.$packages;.}..if.($package
335a0 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d ->getReleaseDate()).{.$data['tim
335c0 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 e'].=.$package->getReleaseDate()
335e0 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 ->format('Y-m-d.H:i:s');.}..$dat
33600 61 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 a.=.$this->dumpValues($package,.
33620 24 6b 65 79 73 2c 20 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 $keys,.$data);..if.($package.ins
33640 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 tanceof.CompletePackageInterface
33660 29 20 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c ).{.$keys.=.array(.'scripts',.'l
33680 69 63 65 6e 73 65 27 2c 0a 27 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e icense',.'authors',.'description
336a0 27 2c 0a 27 68 6f 6d 65 70 61 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f ',.'homepage',.'keywords',.'repo
336c0 73 69 74 6f 72 69 65 73 27 2c 0a 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 sitories',.'support',.);..$data.
336e0 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b =.$this->dumpValues($package,.$k
33700 65 79 73 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 eys,.$data);.}..if.($package.ins
33720 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a tanceof.RootPackageInterface).{.
33740 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 $minimumStability.=.$package->ge
33760 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 6d 69 6e 69 6d 75 tMinimumStability();.if.($minimu
33780 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a 24 64 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 mStability).{.$data['minimum-sta
337a0 62 69 6c 69 74 79 27 5d 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a bility'].=.$minimumStability;.}.
337c0 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 }..return.$data;.}..private.func
337e0 74 69 6f 6e 20 64 75 6d 70 56 61 6c 75 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 tion.dumpValues(PackageInterface
33800 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 6b 65 79 73 2c 20 61 72 72 61 79 20 24 64 .$package,.array.$keys,.array.$d
33820 61 74 61 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6b 65 79 73 20 61 73 20 24 6d 65 74 68 6f 64 ata).{.foreach.($keys.as.$method
33840 20 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 6d 65 74 68 .=>.$key).{.if.(is_numeric($meth
33860 6f 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6b 65 79 3b 0a 7d 0a 0a 24 67 65 74 74 65 od)).{.$method.=.$key;.}..$gette
33880 72 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6d 65 74 68 6f 64 29 3b 0a 24 76 61 6c r.=.'get'.ucfirst($method);.$val
338a0 75 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 74 74 65 72 28 29 3b 0a 0a 69 66 20 28 6e ue.=.$package->$getter();..if.(n
338c0 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 21 28 69 73 5f 61 72 72 61 79 28 24 76 61 ull.!==.$value.&&.!(is_array($va
338e0 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 29 20 7b 0a lue).&&.0.===.count($value))).{.
33900 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 $data[$key].=.$value;.}.}..retur
33920 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 n.$data;.}.}.<?php............na
33940 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b mespace.Composer\Package\Loader;
33960 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 .....class.InvalidPackageExcepti
33980 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 on.extends.\Exception.{.private.
339a0 24 65 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 $errors;.private.$data;..public.
339c0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 65 72 72 6f function.__construct(array.$erro
339e0 72 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 rs,.array.$data).{.$this->errors
33a00 20 3d 20 24 65 72 72 6f 72 73 3b 0a 24 74 68 69 73 2d 3e 64 61 74 61 20 3d 20 24 64 61 74 61 3b .=.$errors;.$this->data.=.$data;
33a20 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 22 49 6e 76 61 6c 69 64 20 70 61 .parent::__construct("Invalid.pa
33a40 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3a 20 5c 6e 22 2e 69 6d 70 6c 6f 64 65 28 22 ckage.information:.\n".implode("
33a60 5c 6e 22 2c 20 24 65 72 72 6f 72 73 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 \n",.$errors));.}..public.functi
33a80 6f 6e 20 67 65 74 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 61 74 on.getData().{.return.$this->dat
33aa0 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 a;.}..public.function.getErrors(
33ac0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 3c 3f ).{.return.$this->errors;.}.}.<?
33ae0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
33b00 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c r\Package\Loader;..use.Composer\
33b20 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4c 6f 61 Json\JsonFile;.....class.JsonLoa
33b40 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 der.{.private.$loader;..public.f
33b60 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 unction.__construct(LoaderInterf
33b80 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 ace.$loader).{.$this->loader.=.$
33ba0 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c loader;.}......public.function.l
33bc0 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 6a 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f oad($json).{.if.($json.instanceo
33be0 66 20 4a 73 6f 6e 46 69 6c 65 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 6a 73 6f 6e 2d 3e 72 f.JsonFile).{.$config.=.$json->r
33c00 65 61 64 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6a 73 ead();.}.elseif.(file_exists($js
33c20 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 on)).{.$config.=.JsonFile::parse
33c40 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 29 2c 20 24 Json(file_get_contents($json),.$
33c60 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6a 73 6f 6e json);.}.elseif.(is_string($json
33c80 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 )).{.$config.=.JsonFile::parseJs
33ca0 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 on($json);.}..return.$this->load
33cc0 65 72 2d 3e 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a er->load($config);.}.}.<?php....
33ce0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ........namespace.Composer\Packa
33d00 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 6f 61 64 65 ge\Loader;.......interface.Loade
33d20 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rInterface.{........public.funct
33d40 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6c 61 73 73 20 ion.load(array.$package,.$class.
33d60 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b =.'Composer\Package\CompletePack
33d80 61 67 65 27 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 age');.}.<?php............namesp
33da0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 ace.Composer\Package\Loader;..us
33dc0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Package;.use.Composer
33de0 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a \Package\Version\VersionParser;.
33e00 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 .....class.ArrayLoader.implement
33e20 73 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 s.LoaderInterface.{.protected.$v
33e40 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f ersionParser;..public.function._
33e60 5f 63 6f 6e 73 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 _construct(VersionParser.$parser
33e80 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a 24 70 61 72 73 .=.null).{.if.(!$parser).{.$pars
33ea0 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d er.=.new.VersionParser;.}.$this-
33ec0 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 7d 0a 0a 70 75 62 >versionParser.=.$parser;.}..pub
33ee0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c lic.function.load(array.$config,
33f00 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 .$class.=.'Composer\Package\Comp
33f20 6c 65 74 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 letePackage').{.if.(!isset($conf
33f40 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 ig['name'])).{.throw.new.\Unexpe
33f60 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 70 61 63 6b ctedValueException('Unknown.pack
33f80 61 67 65 20 68 61 73 20 6e 6f 20 6e 61 6d 65 20 64 65 66 69 6e 65 64 20 28 27 2e 6a 73 6f 6e 5f age.has.no.name.defined.('.json_
33fa0 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 29 2e 27 29 2e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 encode($config).').');.}.if.(!is
33fc0 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 set($config['version'])).{.throw
33fe0 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 .new.\UnexpectedValueException('
34000 50 61 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 20 68 61 73 20 Package.'.$config['name'].'.has.
34020 6e 6f 20 76 65 72 73 69 6f 6e 20 64 65 66 69 6e 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 no.version.defined.');.}....if.(
34040 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 isset($config['version_normalize
34060 64 27 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 d'])).{.$version.=.$config['vers
34080 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 ion_normalized'];.}.else.{.$vers
340a0 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d ion.=.$this->versionParser->norm
340c0 61 6c 69 7a 65 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 24 70 61 alize($config['version']);.}.$pa
340e0 63 6b 61 67 65 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 ckage.=.new.$class($config['name
34100 27 5d 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d '],.$version,.$config['version']
34120 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 65 74 28 24 63 6f 6e 66 );.$package->setType(isset($conf
34140 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 ig['type']).?.strtolower($config
34160 5b 27 74 79 70 65 27 5d 29 20 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a 0a 69 66 20 28 69 73 73 ['type']).:.'library');..if.(iss
34180 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 70 61 et($config['target-dir'])).{.$pa
341a0 63 6b 61 67 65 2d 3e 73 65 74 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 ckage->setTargetDir($config['tar
341c0 67 65 74 2d 64 69 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 get-dir']);.}..if.(isset($config
341e0 5b 27 65 78 74 72 61 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 ['extra']).&&.is_array($config['
34200 65 78 74 72 61 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 45 78 74 72 61 28 24 extra'])).{.$package->setExtra($
34220 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 config['extra']);.}..if.(isset($
34240 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 config['bin'])).{.if.(!is_array(
34260 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e $config['bin'])).{.throw.new.\Un
34280 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 expectedValueException('Package.
342a0 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 69 6e 20 6b 65 79 20 73 '.$config['name'].'\'s.bin.key.s
342c0 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 63 6f hould.be.an.array,.'.gettype($co
342e0 6e 66 69 67 5b 27 62 69 6e 27 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b 0a 7d 0a 66 6f 72 65 61 nfig['bin']).'.given.');.}.forea
34300 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 62 ch.($config['bin'].as.$key.=>.$b
34320 69 6e 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 79 5d 3d 20 6c 74 72 69 in).{.$config['bin'][$key]=.ltri
34340 6d 28 24 62 69 6e 2c 20 27 2f 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 42 69 6e m($bin,.'/');.}.$package->setBin
34360 61 72 69 65 73 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 aries($config['bin']);.}..if.(is
34380 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 set($config['installation-source
343a0 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e '])).{.$package->setInstallation
343c0 53 6f 75 72 63 65 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 Source($config['installation-sou
343e0 72 63 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f rce']);.}..if.(isset($config['so
34400 75 72 63 65 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 urce'])).{.if.(!isset($config['s
34420 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 29 20 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 ource']['type']).||.!isset($conf
34440 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ig['source']['url'])).{.throw.ne
34460 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\UnexpectedValueException(spri
34480 6e 74 66 28 0a 22 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 20 73 68 6f 75 6c 64 20 62 65 20 73 ntf(."package.source.should.be.s
344a0 70 65 63 69 66 69 65 64 20 61 73 20 7b 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 pecified.as.{\"type\":....,.\"ur
344c0 6c 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f l\":....},\n%s.given",.json_enco
344e0 64 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 de($config['source']).));.}.$pac
34500 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 kage->setSourceType($config['sou
34520 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 rce']['type']);.$package->setSou
34540 72 63 65 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 rceUrl($config['source']['url'])
34560 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 ;.$package->setSourceReference($
34580 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a config['source']['reference']);.
345a0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 29 20 7b }..if.(isset($config['dist'])).{
345c0 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 .if.(!isset($config['dist']['typ
345e0 65 27 5d 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 e']).||.!isset($config['dist']['
34600 75 72 6c 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 url'])).{.throw.new.\UnexpectedV
34620 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 70 61 63 6b 61 67 65 20 alueException(sprintf(."package.
34640 64 69 73 74 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 22 2e 0a 22 dist.should.be.specified.as.".."
34660 7b 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 {\"type\":....,.\"url\":....,.\"
34680 72 65 66 65 72 65 6e 63 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a 20 2e 2e reference\":....,.\"shasum\":...
346a0 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e .},\n%s.given",.json_encode($con
346c0 66 69 67 5b 27 64 69 73 74 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 fig['dist']).));.}.$package->set
346e0 44 69 73 74 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d DistType($config['dist']['type']
34700 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 63 6f 6e 66 69 67 5b );.$package->setDistUrl($config[
34720 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 'dist']['url']);.$package->setDi
34740 73 74 52 65 66 65 72 65 6e 63 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 stReference(isset($config['dist'
34760 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 ]['reference']).?.$config['dist'
34780 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 24 70 61 63 6b 61 67 65 ]['reference'].:.null);.$package
347a0 2d 3e 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 69 73 73 65 74 28 24 63 6f 6e ->setDistSha1Checksum(isset($con
347c0 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 fig['dist']['shasum']).?.$config
347e0 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 69 ['dist']['shasum'].:.null);.}..i
34800 66 20 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 f.($aliasNormalized.=.$this->get
34820 42 72 61 6e 63 68 41 6c 69 61 73 28 24 63 6f 6e 66 69 67 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 BranchAlias($config)).{.$package
34840 2d 3e 73 65 74 41 6c 69 61 73 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 3b 0a 24 70 ->setAlias($aliasNormalized);.$p
34860 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 70 72 65 67 5f 72 65 70 6c ackage->setPrettyAlias(preg_repl
34880 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e ace('{(\.9{7})+}',.'.x',.$aliasN
348a0 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 ormalized));.}..foreach.(Package
348c0 5c 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 \BasePackage::$supportedLinkType
348e0 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 s.as.$type.=>.$opts).{.if.(isset
34900 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 ($config[$type])).{.$method.=.'s
34920 65 74 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 et'.ucfirst($opts['method']);.$p
34940 61 63 6b 61 67 65 2d 3e 7b 24 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f ackage->{$method}(.$this->versio
34960 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 nParser->parseLinks(.$package->g
34980 65 74 4e 61 6d 65 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 etName(),.$package->getPrettyVer
349a0 73 69 6f 6e 28 29 2c 0a 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 0a 24 63 sion(),.$opts['description'],.$c
349c0 6f 6e 66 69 67 5b 24 74 79 70 65 5d 0a 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 onfig[$type].).);.}.}..if.(isset
349e0 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 ($config['suggest']).&&.is_array
34a00 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 ($config['suggest'])).{.foreach.
34a20 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d ($config['suggest'].as.$target.=
34a40 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 >.$reason).{.if.('self.version'.
34a60 3d 3d 3d 20 74 72 69 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 75 ===.trim($reason)).{.$config['su
34a80 67 67 65 73 74 27 5d 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ggest'][$target].=.$package->get
34aa0 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 PrettyVersion();.}.}.$package->s
34ac0 65 74 53 75 67 67 65 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a etSuggests($config['suggest']);.
34ae0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d }..if.(isset($config['autoload']
34b00 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 )).{.$package->setAutoload($conf
34b20 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 ig['autoload']);.}..if.(isset($c
34b40 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 onfig['include-path'])).{.$packa
34b60 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 ge->setIncludePaths($config['inc
34b80 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e lude-path']);.}..if.(!empty($con
34ba0 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 fig['time'])).{.try.{.$date.=.ne
34bc0 77 20 5c 44 61 74 65 54 69 6d 65 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 2c 20 6e 65 77 w.\DateTime($config['time'],.new
34be0 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 .\DateTimeZone('UTC'));.$package
34c00 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 64 61 74 65 29 3b 0a 7d 20 63 61 74 63 68 ->setReleaseDate($date);.}.catch
34c20 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 .(\Exception.$e).{.}.}..if.($pac
34c40 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 kage.instanceof.Package\Complete
34c60 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 PackageInterface).{.if.(isset($c
34c80 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 onfig['scripts']).&&.is_array($c
34ca0 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 onfig['scripts'])).{.foreach.($c
34cc0 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c onfig['scripts'].as.$event.=>.$l
34ce0 69 73 74 65 6e 65 72 73 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 isteners).{.$config['scripts'][$
34d00 65 76 65 6e 74 5d 3d 20 28 61 72 72 61 79 29 20 24 6c 69 73 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 event]=.(array).$listeners;.}.$p
34d20 61 63 6b 61 67 65 2d 3e 73 65 74 53 63 72 69 70 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 ackage->setScripts($config['scri
34d40 70 74 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 pts']);.}..if.(!empty($config['d
34d60 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 escription']).&&.is_string($conf
34d80 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e ig['description'])).{.$package->
34da0 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 setDescription($config['descript
34dc0 69 6f 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 ion']);.}..if.(!empty($config['h
34de0 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b omepage']).&&.is_string($config[
34e00 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 'homepage'])).{.$package->setHom
34e20 65 70 61 67 65 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 epage($config['homepage']);.}..i
34e40 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 f.(!empty($config['keywords']).&
34e60 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 &.is_array($config['keywords']))
34e80 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4b 65 79 77 6f 72 64 73 28 24 63 6f 6e 66 69 67 .{.$package->setKeywords($config
34ea0 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f ['keywords']);.}..if.(!empty($co
34ec0 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 nfig['license'])).{.$package->se
34ee0 74 4c 69 63 65 6e 73 65 28 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e tLicense(is_array($config['licen
34f00 73 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 se']).?.$config['license'].:.arr
34f20 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 ay($config['license']));.}..if.(
34f40 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 20 26 26 20 69 73 !empty($config['authors']).&&.is
34f60 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 _array($config['authors'])).{.$p
34f80 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 ackage->setAuthors($config['auth
34fa0 6f 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 ors']);.}..if.(isset($config['su
34fc0 70 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 pport'])).{.$package->setSupport
34fe0 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ($config['support']);.}.}..retur
35000 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 n.$package;.}........public.func
35020 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 61 72 72 61 79 20 24 63 6f 6e 66 69 tion.getBranchAlias(array.$confi
35040 67 29 0a 7b 0a 69 66 20 28 27 64 65 76 2d 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 66 g).{.if.('dev-'.!==.substr($conf
35060 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 30 2c 20 34 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 ig['version'],.0,.4).||.!isset($
35080 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 config['extra']['branch-alias'])
350a0 0a 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 .||.!is_array($config['extra']['
350c0 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 0a 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 branch-alias']).).{.return;.}..f
350e0 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 oreach.($config['extra']['branch
35100 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 -alias'].as.$sourceBranch.=>.$ta
35120 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 rgetBranch).{...if.('-dev'.!==.s
35140 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 ubstr($targetBranch,.-4)).{.cont
35160 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 inue;.}....$validatedTargetBranc
35180 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c h.=.$this->versionParser->normal
351a0 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 izeBranch(substr($targetBranch,.
351c0 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 0,.-4));.if.('-dev'.!==.substr($
351e0 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f validatedTargetBranch,.-4)).{.co
35200 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e ntinue;.}....if.(strtolower($con
35220 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 21 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 fig['version']).!==.strtolower($
35240 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 sourceBranch)).{.continue;.}..re
35260 74 75 72 6e 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 3b 0a 7d 0a 7d turn.$validatedTargetBranch;.}.}
35280 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
352a0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 mposer\Package\Loader;..use.Comp
352c0 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 oser\Package;.use.Composer\Packa
352e0 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ge\BasePackage;.use.Composer\Pac
35300 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a kage\Version\VersionParser;.....
35320 63 6c 61 73 73 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c class.ValidatingArrayLoader.impl
35340 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 ements.LoaderInterface.{.private
35360 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 .$loader;.private.$versionParser
35380 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 45 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 ;.private.$ignoreErrors;.private
353a0 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e .$errors.=.array();.private.$con
353c0 66 69 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 fig;..public.function.__construc
353e0 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 2c 20 24 69 67 6e 6f t(LoaderInterface.$loader,.$igno
35400 72 65 45 72 72 6f 72 73 20 3d 20 74 72 75 65 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 reErrors.=.true,.VersionParser.$
35420 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d parser.=.null).{.$this->loader.=
35440 20 24 6c 6f 61 64 65 72 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 45 72 72 6f 72 73 20 3d 20 .$loader;.$this->ignoreErrors.=.
35460 24 69 67 6e 6f 72 65 45 72 72 6f 72 73 3b 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a 24 $ignoreErrors;.if.(!$parser).{.$
35480 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a parser.=.new.VersionParser();.}.
354a0 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a $this->versionParser.=.$parser;.
354c0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 }..public.function.load(array.$c
354e0 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 onfig,.$class.=.'Composer\Packag
35500 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e e\CompletePackage').{.$this->con
35520 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 fig.=.$config;..$this->validateR
35540 65 67 65 78 28 27 6e 61 6d 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a egex('name',.'[A-Za-z0-9][A-Za-z
35560 30 2d 39 5f 2e 2d 5d 2a 2f 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 0-9_.-]*/[A-Za-z0-9][A-Za-z0-9_.
35580 2d 5d 2a 27 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e -]*',.true);..if.(!empty($this->
355a0 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 config['version'])).{.try.{.$thi
355c0 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 74 68 69 s->versionParser->normalize($thi
355e0 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 s->config['version']);.}.catch.(
35600 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f \Exception.$e).{.unset($this->co
35620 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b nfig['version']);.$this->errors[
35640 5d 20 3d 20 27 76 65 72 73 69 6f 6e 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e ].=.'version.:.invalid.value.('.
35660 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 3a 20 27 2e 24 $this->config['version'].'):.'.$
35680 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c e->getMessage();.}.}..$this->val
356a0 69 64 61 74 65 52 65 67 65 78 28 27 74 79 70 65 27 2c 20 27 5b 61 2d 7a 30 2d 39 2d 5d 2b 27 29 idateRegex('type',.'[a-z0-9-]+')
356c0 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 61 72 67 65 74 2d ;.$this->validateString('target-
356e0 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 65 78 74 dir');.$this->validateArray('ext
35700 72 61 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 ra');.$this->validateFlatArray('
35720 62 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 63 72 bin');.$this->validateArray('scr
35740 69 70 74 73 27 29 3b 20 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 ipts');...$this->validateString(
35760 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 'description');.$this->validateU
35780 72 6c 28 27 68 6f 6d 65 70 61 67 65 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 rl('homepage');.$this->validateF
357a0 6c 61 74 41 72 72 61 79 28 27 6b 65 79 77 6f 72 64 73 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 latArray('keywords',.'[A-Za-z0-9
357c0 20 2d 5d 2b 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 .-]+');..if.(isset($this->config
357e0 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 ['license'])).{.if.(is_string($t
35800 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 his->config['license'])).{.$this
35820 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a ->validateRegex('license',.'[A-Z
35840 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 a-z0-9+..()-]+');.}.else.{.$this
35860 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 ->validateFlatArray('license',.'
35880 5b 41 2d 5a 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 [A-Za-z0-9+..()-]+');.}.}..$this
358a0 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 69 6d 65 27 29 3b 0a 69 66 20 28 21 65 ->validateString('time');.if.(!e
358c0 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 mpty($this->config['time'])).{.t
358e0 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 68 69 73 ry.{.$date.=.new.\DateTime($this
35900 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 ->config['time']);.}.catch.(\Exc
35920 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 eption.$e).{.$this->errors[].=.'
35940 74 69 6d 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 time.:.invalid.value.('.$this->c
35960 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 onfig['time'].'):.'.$e->getMessa
35980 67 65 28 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 ge();.unset($this->config['time'
359a0 5d 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 ]);.}.}..$this->validateArray('a
359c0 75 74 68 6f 72 73 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 uthors');.if.(!empty($this->conf
359e0 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ig['authors'])).{.foreach.($this
35a00 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 ->config['authors'].as.$key.=>.$
35a20 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 75 74 68 6f 72 29 author).{.if.(!is_array($author)
35a40 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 ).{.$this->errors[].=.'authors.'
35a60 2e 24 6b 65 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e .$key.'.:.should.be.an.array,.'.
35a80 67 65 74 74 79 70 65 28 24 61 75 74 68 6f 72 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 gettype($author).'.given';.unset
35aa0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 ($this->config['authors'][$key])
35ac0 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b ;.continue;.}.if.(isset($author[
35ae0 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 'homepage']).&&.!$this->filterUr
35b00 6c 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d l($author['homepage'])).{.$this-
35b20 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 68 6f >errors[].=.'authors.'.$key.'.ho
35b40 6d 65 70 61 67 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 mepage.:.invalid.value,.must.be.
35b60 61 20 76 61 6c 69 64 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 a.valid.http/https.URL';.unset($
35b80 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 68 this->config['authors'][$key]['h
35ba0 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b omepage']);.}.if.(isset($author[
35bc0 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 61 75 74 68 6f 72 'email']).&&.!filter_var($author
35be0 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c ['email'],.FILTER_VALIDATE_EMAIL
35c00 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e )).{.$this->errors[].=.'authors.
35c20 27 2e 24 6b 65 79 2e 27 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 '.$key.'.email.:.invalid.value,.
35c40 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a must.be.a.valid.email.address';.
35c60 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 unset($this->config['authors'][$
35c80 6b 65 79 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 key]['email']);.}.if.(isset($aut
35ca0 68 6f 72 5b 27 6e 61 6d 65 27 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 hor['name']).&&.!is_string($auth
35cc0 6f 72 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d or['name'])).{.$this->errors[].=
35ce0 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 6e 61 6d 65 20 3a 20 69 6e 76 61 6c 69 .'authors.'.$key.'.name.:.invali
35d00 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 d.value,.must.be.a.string';.unse
35d20 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d t($this->config['authors'][$key]
35d40 5b 27 6e 61 6d 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 ['name']);.}.if.(isset($author['
35d60 72 6f 6c 65 27 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b 27 72 role']).&&.!is_string($author['r
35d80 6f 6c 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 ole'])).{.$this->errors[].=.'aut
35da0 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 72 6f 6c 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c hors.'.$key.'.role.:.invalid.val
35dc0 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 ue,.must.be.a.string';.unset($th
35de0 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 72 6f 6c is->config['authors'][$key]['rol
35e00 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b e']);.}.if.(empty($this->config[
35e20 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 'authors'][$key])).{.unset($this
35e40 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a ->config['authors'][$key]);.}.}.
35e60 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 if.(empty($this->config['authors
35e80 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 '])).{.unset($this->config['auth
35ea0 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 ors']);.}.}..$this->validateArra
35ec0 79 28 27 73 75 70 70 6f 72 74 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e y('support');.if.(!empty($this->
35ee0 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 config['support'])).{.if.(isset(
35f00 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 $this->config['support']['email'
35f20 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b ]).&&.!filter_var($this->config[
35f40 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 'support']['email'],.FILTER_VALI
35f60 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d DATE_EMAIL)).{.$this->errors[].=
35f80 20 27 73 75 70 70 6f 72 74 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c .'support.email.:.invalid.value,
35fa0 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b .must.be.a.valid.email.address';
35fc0 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b .unset($this->config['support'][
35fe0 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 'email']);.}..if.(isset($this->c
36000 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 0a 26 26 20 28 21 66 69 onfig['support']['irc']).&&.(!fi
36020 6c 74 65 72 5f 76 61 72 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 lter_var($this->config['support'
36040 5d 5b 27 69 72 63 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 20 7c ]['irc'],.FILTER_VALIDATE_URL).|
36060 7c 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 69 72 63 3a 2f 2f 7d 69 75 27 2c 20 24 74 68 |.!preg_match('{^irc://}iu',.$th
36080 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 29 0a 29 is->config['support']['irc'])).)
360a0 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 69 72 .{.$this->errors[].=.'support.ir
360c0 63 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 27 3b 0a 75 6e c.:.invalid.value,.must.be.';.un
360e0 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 set($this->config['support']['ir
36100 63 27 5d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 c']);.}..foreach.(array('issues'
36120 2c 20 27 66 6f 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 29 20 61 73 20 ,.'forum',.'wiki',.'source').as.
36140 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b $key).{.if.(isset($this->config[
36160 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 'support'][$key]).&&.!$this->fil
36180 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b terUrl($this->config['support'][
361a0 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 70 $key])).{.$this->errors[].=.'sup
361c0 70 6f 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d port.'.$key.'.:.invalid.value,.m
361e0 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a ust.be.a.valid.http/https.URL';.
36200 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 unset($this->config['support'][$
36220 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 key]);.}.}.if.(empty($this->conf
36240 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 ig['support'])).{.unset($this->c
36260 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 onfig['support']);.}.}..foreach.
36280 28 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 (array_keys(BasePackage::$suppor
362a0 74 65 64 4c 69 6e 6b 54 79 70 65 73 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 tedLinkTypes).as.$linkType).{.if
362c0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d .(isset($this->config[$linkType]
362e0 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e )).{.foreach.($this->config[$lin
36300 6b 54 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e kType].as.$package.=>.$constrain
36320 74 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 t).{.if.(!is_string($constraint)
36340 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e ).{.$this->errors[].=.$linkType.
36360 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 '.'.$package.'.:.invalid.value,.
36380 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 76 65 must.be.a.string.containing.a.ve
363a0 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e rsion.constraint';.unset($this->
363c0 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 20 config[$linkType][$package]);.}.
363e0 65 6c 73 65 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 21 3d 3d 20 24 63 6f 6e 73 elseif.('self.version'.!==.$cons
36400 74 72 61 69 6e 74 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 traint).{.try.{.$this->versionPa
36420 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 rser->parseConstraints($constrai
36440 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 nt);.}.catch.(\Exception.$e).{.$
36460 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 this->errors[].=.$linkType.'.'.$
36480 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 package.'.:.invalid.version.cons
364a0 74 72 61 69 6e 74 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a traint.('.$e->getMessage().')';.
364c0 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 unset($this->config[$linkType][$
364e0 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c package]);.}.}.}.}.}..$this->val
36500 69 64 61 74 65 41 72 72 61 79 28 27 73 75 67 67 65 73 74 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 idateArray('suggest');.if.(!empt
36520 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 y($this->config['suggest'])).{.f
36540 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d oreach.($this->config['suggest']
36560 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 7b 0a .as.$package.=>.$description).{.
36580 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 29 20 7b 0a if.(!is_string($description)).{.
365a0 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 67 67 65 73 74 2e 27 2e 24 70 61 $this->errors[].=.'suggest.'.$pa
365c0 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 ckage.'.:.invalid.value,.must.be
365e0 20 61 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 77 68 79 20 74 68 65 20 70 61 63 .a.string.describing.why.the.pac
36600 6b 61 67 65 20 69 73 20 73 75 67 67 65 73 74 65 64 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d kage.is.suggested';.unset($this-
36620 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d >config['suggest'][$package]);.}
36640 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 6d 69 6e .}.}..$this->validateString('min
36660 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 imum-stability');.if.(!empty($th
36680 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 is->config['minimum-stability'])
366a0 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 ).{.if.(!isset(BasePackage::$sta
366c0 62 69 6c 69 74 69 65 73 5b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d bilities[$this->config['minimum-
366e0 73 74 61 62 69 6c 69 74 79 27 5d 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d stability']])).{.$this->errors[]
36700 20 3d 20 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 3a 20 69 6e 76 61 6c 69 64 20 .=.'minimum-stability.:.invalid.
36720 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f 64 65 28 value,.must.be.one.of.'.implode(
36740 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 ',.',.array_keys(BasePackage::$s
36760 74 61 62 69 6c 69 74 69 65 73 29 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 tabilities));.unset($this->confi
36780 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a g['minimum-stability']);.}.}....
367a0 0a 20 0a 0a 0a 20 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 ........$this->validateFlatArray
367c0 28 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 ('include-path');....if.(isset($
367e0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c this->config['extra']['branch-al
36800 69 61 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 ias'])).{.if.(!is_array($this->c
36820 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 onfig['extra']['branch-alias']))
36840 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e .{.$this->errors[].=.'extra.bran
36860 63 68 2d 61 6c 69 61 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 76 ch-alias.:.must.be.an.array.of.v
36880 65 72 73 69 6f 6e 73 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f ersions.=>.aliases';.}.else.{.fo
368a0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 reach.($this->config['extra']['b
368c0 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d ranch-alias'].as.$sourceBranch.=
368e0 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 >.$targetBranch).{...if.('-dev'.
36900 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b !==.substr($targetBranch,.-4)).{
36920 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 .$this->errors[].=.'extra.branch
36940 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 -alias.'.$sourceBranch.'.:.the.t
36960 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 arget.branch.('.$targetBranch.')
36980 20 6d 75 73 74 20 65 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d .must.end.in.-dev';.unset($this-
369a0 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d >config['extra']['branch-alias']
369c0 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a [$sourceBranch]);..continue;.}..
369e0 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 ..$validatedTargetBranch.=.$this
36a00 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 ->versionParser->normalizeBranch
36a20 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a (substr($targetBranch,.0,.-4));.
36a40 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 if.('-dev'.!==.substr($validated
36a60 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f TargetBranch,.-4)).{.$this->erro
36a80 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f rs[].=.'extra.branch-alias.'.$so
36aa0 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 urceBranch.'.:.the.target.branch
36ac0 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 62 65 20 61 20 70 .('.$targetBranch.').must.be.a.p
36ae0 61 72 73 65 61 62 6c 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 2e 30 2d 64 65 76 27 3b 0a 75 arseable.number.like.2.0-dev';.u
36b00 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 nset($this->config['extra']['bra
36b20 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 7d 0a 7d nch-alias'][$sourceBranch]);.}.}
36b40 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 26 26 20 21 24 74 68 69 .}.}..if.($this->errors.&&.!$thi
36b60 73 2d 3e 69 67 6e 6f 72 65 45 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 s->ignoreErrors).{.throw.new.Inv
36b80 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 65 72 72 6f alidPackageException($this->erro
36ba0 72 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 rs,.$config);.}..$package.=.$thi
36bc0 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 s->loader->load($this->config,.$
36be0 63 6c 61 73 73 29 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b class);.$this->errors.=.array();
36c00 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 .$this->config.=.null;..return.$
36c20 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c package;.}..private.function.val
36c40 69 64 61 74 65 52 65 67 65 78 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 2c 20 24 6d idateRegex($property,.$regex,.$m
36c60 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e andatory.=.false).{.if.(!$this->
36c80 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 validateString($property,.$manda
36ca0 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 tory)).{.return.false;.}..if.(!p
36cc0 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 74 68 reg_match('{^'.$regex.'$}u',.$th
36ce0 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d is->config[$property])).{.$this-
36d00 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 >errors[].=.$property.'.:.invali
36d20 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 75 6e d.value,.must.match.'.$regex;.un
36d40 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a set($this->config[$property]);..
36d60 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a return.false;.}..return.true;.}.
36d80 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 .private.function.validateString
36da0 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a ($property,.$mandatory.=.false).
36dc0 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 {.if.(isset($this->config[$prope
36de0 72 74 79 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 rty]).&&.!is_string($this->confi
36e00 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d g[$property])).{.$this->errors[]
36e20 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 .=.$property.'.:.should.be.a.str
36e40 69 6e 67 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 ing,.'.gettype($this->config[$pr
36e60 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e operty]).'.given';.unset($this->
36e80 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 config[$property]);..return.fals
36ea0 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 e;.}..if.(!isset($this->config[$
36ec0 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 property]).||.trim($this->config
36ee0 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 3d 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 [$property]).===.'').{.if.($mand
36f00 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 atory).{.$this->errors[].=.$prop
36f20 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 27 3b 0a 7d 0a 75 6e 73 erty.'.:.must.be.present';.}.uns
36f40 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 et($this->config[$property]);..r
36f60 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a eturn.false;.}..return.true;.}..
36f80 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 private.function.validateArray($
36fa0 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a property,.$mandatory.=.false).{.
36fc0 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 if.(isset($this->config[$propert
36fe0 79 5d 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 y]).&&.!is_array($this->config[$
37000 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 property])).{.$this->errors[].=.
37020 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 $property.'.:.should.be.an.array
37040 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 ,.'.gettype($this->config[$prope
37060 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e rty]).'.given';.unset($this->con
37080 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a fig[$property]);..return.false;.
370a0 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f }..if.(!isset($this->config[$pro
370c0 70 65 72 74 79 5d 29 20 7c 7c 20 21 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b perty]).||.!count($this->config[
370e0 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b $property])).{.if.($mandatory).{
37100 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a .$this->errors[].=.$property.'.:
37120 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 20 61 6e 64 20 63 6f 6e 74 61 69 6e 20 61 74 20 .must.be.present.and.contain.at.
37140 6c 65 61 73 74 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 least.one.element';.}.unset($thi
37160 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 s->config[$property]);..return.f
37180 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 alse;.}..return.true;.}..private
371a0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 24 70 72 6f .function.validateFlatArray($pro
371c0 70 65 72 74 79 2c 20 24 72 65 67 65 78 20 3d 20 6e 75 6c 6c 2c 20 24 6d 61 6e 64 61 74 6f 72 79 perty,.$regex.=.null,.$mandatory
371e0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 .=.false).{.if.(!$this->validate
37200 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a Array($property,.$mandatory)).{.
37220 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 73 73 20 3d 20 74 72 75 65 3b 0a 66 return.false;.}..$pass.=.true;.f
37240 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d oreach.($this->config[$property]
37260 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 .as.$key.=>.$value).{.if.(!is_st
37280 72 69 6e 67 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c ring($value).&&.!is_numeric($val
372a0 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 ue)).{.$this->errors[].=.$proper
372c0 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 ty.'.'.$key.'.:.must.be.a.string
372e0 20 6f 72 20 69 6e 74 2c 20 27 2e 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 2e 27 20 67 69 76 .or.int,.'.gettype($value).'.giv
37300 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 en';.unset($this->config[$proper
37320 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 63 6f 6e 74 ty][$key]);.$pass.=.false;..cont
37340 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 67 65 78 20 26 26 20 21 70 72 65 67 5f 6d 61 74 inue;.}..if.($regex.&&.!preg_mat
37360 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 76 61 6c 75 65 29 29 20 7b ch('{^'.$regex.'$}u',.$value)).{
37380 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 .$this->errors[].=.$property.'.'
373a0 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 6d 61 .$key.'.:.invalid.value,.must.ma
373c0 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 tch.'.$regex;.unset($this->confi
373e0 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c g[$property][$key]);.$pass.=.fal
37400 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 se;.}.}..return.$pass;.}..privat
37420 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 55 72 6c 28 24 70 72 6f 70 65 72 74 79 e.function.validateUrl($property
37440 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 ,.$mandatory.=.false).{.if.(!$th
37460 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d is->validateString($property,.$m
37480 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 andatory)).{.return.false;.}..if
374a0 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 .(!$this->filterUrl($this->confi
374c0 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d g[$property])).{.$this->errors[]
374e0 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 .=.$property.'.:.invalid.value,.
37500 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b must.be.a.valid.http/https.URL';
37520 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 .unset($this->config[$property])
37540 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 ;..return.false;.}.}..private.fu
37560 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 55 72 6c 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 nction.filterUrl($value).{.retur
37580 6e 20 66 69 6c 74 65 72 5f 76 61 72 28 24 76 61 6c 75 65 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 n.filter_var($value,.FILTER_VALI
375a0 44 41 54 45 5f 55 52 4c 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 DATE_URL).&&.preg_match('{^https
375c0 3f 3a 2f 2f 7d 69 75 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ?://}iu',.$value);.}.}.<?php....
375e0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ........namespace.Composer\Packa
37600 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ge\Loader;..use.Composer\Package
37620 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 \BasePackage;.use.Composer\Confi
37640 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d g;.use.Composer\Factory;.use.Com
37660 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 poser\Package\Version\VersionPar
37680 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 ser;.use.Composer\Repository\Rep
376a0 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 ositoryManager;.use.Composer\Uti
376c0 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 l\ProcessExecutor;.........class
376e0 20 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 .RootPackageLoader.extends.Array
37700 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 Loader.{.private.$manager;.priva
37720 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 te.$config;.private.$process;..p
37740 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 70 6f 73 ublic.function.__construct(Repos
37760 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 2c 20 43 6f 6e 66 69 67 20 24 63 itoryManager.$manager,.Config.$c
37780 6f 6e 66 69 67 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e onfig,.VersionParser.$parser.=.n
377a0 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 ull,.ProcessExecutor.$process.=.
377c0 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 null).{.$this->manager.=.$manage
377e0 72 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 r;.$this->config.=.$config;.$thi
37800 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f s->process.=.$process.?:.new.Pro
37820 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 cessExecutor();.parent::__constr
37840 75 63 74 28 24 70 61 72 73 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e uct($parser);.}..public.function
37860 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 .load(array.$config,.$class.=.'C
37880 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 27 29 0a 7b 0a omposer\Package\RootPackage').{.
378a0 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 if.(!isset($config['name'])).{.$
378c0 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 3b 0a 7d 0a 69 config['name'].=.'__root__';.}.i
378e0 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b f.(!isset($config['version'])).{
37900 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 ...if.(getenv('COMPOSER_ROOT_VER
37920 53 49 4f 4e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d SION')).{.$version.=.getenv('COM
37940 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 POSER_ROOT_VERSION');.}.else.{.$
37960 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 56 65 72 73 69 6f 6e 28 24 63 version.=.$this->guessVersion($c
37980 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 onfig);.}..if.(!$version).{.$ver
379a0 73 69 6f 6e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 sion.=.'1.0.0';.}..$config['vers
379c0 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 ion'].=.$version;.}.else.{.$vers
379e0 69 6f 6e 20 3d 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 24 70 61 ion.=.$config['version'];.}..$pa
37a00 63 6b 61 67 65 20 3d 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 2c 20 24 63 ckage.=.parent::load($config,.$c
37a20 6c 61 73 73 29 3b 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 61 lass);..$aliases.=.array();.$sta
37a40 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 bilityFlags.=.array();.$referenc
37a60 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 es.=.array();.foreach.(array('re
37a80 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 20 61 73 20 24 6c 69 6e 6b 54 quire',.'require-dev').as.$linkT
37aa0 79 70 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 ype).{.if.(isset($config[$linkTy
37ac0 70 65 5d 29 29 20 7b 0a 24 6c 69 6e 6b 49 6e 66 6f 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a pe])).{.$linkInfo.=.BasePackage:
37ae0 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 5b 24 6c 69 6e 6b 54 79 70 65 5d 3b :$supportedLinkTypes[$linkType];
37b00 0a 24 6d 65 74 68 6f 64 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 49 6e .$method.=.'get'.ucfirst($linkIn
37b20 66 6f 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b fo['method']);.$links.=.array();
37b40 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 24 6d 65 74 68 6f 64 28 29 20 61 73 .foreach.($package->$method().as
37b60 20 24 6c 69 6e 6b 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 .$link).{.$links[$link->getTarge
37b80 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 67 t()].=.$link->getConstraint()->g
37ba0 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 etPrettyString();.}.$aliases.=.$
37bc0 74 68 69 73 2d 3e 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 24 6c 69 6e 6b 73 2c 20 24 61 6c this->extractAliases($links,.$al
37be0 69 61 73 65 73 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d iases);.$stabilityFlags.=.$this-
37c00 3e 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 6c 69 6e 6b 73 2c 20 24 >extractStabilityFlags($links,.$
37c20 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 stabilityFlags);.$references.=.$
37c40 74 68 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 24 6c 69 6e 6b 73 2c 20 this->extractReferences($links,.
37c60 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 $references);.}.}..$package->set
37c80 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 Aliases($aliases);.$package->set
37ca0 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b StabilityFlags($stabilityFlags);
37cc0 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 72 65 66 65 72 65 .$package->setReferences($refere
37ce0 6e 63 65 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d nces);..if.(isset($config['minim
37d00 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 um-stability'])).{.$package->set
37d20 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a MinimumStability(VersionParser::
37d40 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 normalizeStability($config['mini
37d60 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 3b 0a 7d 0a 0a 24 72 65 70 6f 73 20 3d 20 46 mum-stability']));.}..$repos.=.F
37d80 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 actory::createDefaultRepositorie
37da0 73 28 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 6d 61 s(null,.$this->config,.$this->ma
37dc0 6e 61 67 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f nager);.foreach.($repos.as.$repo
37de0 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 ).{.$this->manager->addRepositor
37e00 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 y($repo);.}.$package->setReposit
37e20 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f ories($this->config->getReposito
37e40 72 69 65 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 ries());..return.$package;.}..pr
37e60 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 61 72 ivate.function.extractAliases(ar
37e80 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b ray.$requires,.array.$aliases).{
37ea0 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 .foreach.($requires.as.$reqName.
37ec0 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 =>.$reqVersion).{.if.(preg_match
37ee0 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 29 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c ('{^([^,\s]+).+as.+([^,\s]+)$}',
37f00 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 61 6c 69 61 73 65 .$reqVersion,.$match)).{.$aliase
37f20 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 73 74 72 74 6f 6c s[].=.array(.'package'.=>.strtol
37f40 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 74 68 ower($reqName),.'version'.=>.$th
37f60 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 is->versionParser->normalize($ma
37f80 74 63 68 5b 31 5d 29 2c 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 tch[1]),.'alias'.=>.$match[2],.'
37fa0 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 alias_normalized'.=>.$this->vers
37fc0 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 32 5d 29 2c ionParser->normalize($match[2]),
37fe0 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 .);.}.}..return.$aliases;.}..pri
38000 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c vate.function.extractStabilityFl
38020 61 67 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 73 74 61 62 ags(array.$requires,.array.$stab
38040 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 ilityFlags).{.$stabilities.=.Bas
38060 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 66 6f 72 65 61 63 68 20 ePackage::$stabilities;.foreach.
38080 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 ($requires.as.$reqName.=>.$reqVe
380a0 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c rsion).{...if.(preg_match('{^[^,
380c0 5c 73 5d 2a 3f 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 \s]*?@('.implode('|',.array_keys
380e0 28 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 72 65 71 56 65 72 73 ($stabilities)).')$}i',.$reqVers
38100 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 ion,.$match)).{.$name.=.strtolow
38120 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 er($reqName);.$stability.=.$stab
38140 69 6c 69 74 69 65 73 5b 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 ilities[VersionParser::normalize
38160 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 5d 3b 0a 0a 69 66 20 28 69 73 73 65 Stability($match[1])];..if.(isse
38180 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 73 74 t($stabilityFlags[$name]).&&.$st
381a0 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 79 abilityFlags[$name].>.$stability
381c0 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b ).{.continue;.}.$stabilityFlags[
381e0 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a $name].=.$stability;..continue;.
38200 7d 0a 0a 0a 20 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 }....$reqVersion.=.preg_replace(
38220 27 7b 5e 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 '{^([^,\s@]+).as..+$}',.'$1',.$r
38240 65 71 56 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e eqVersion);.if.(preg_match('{^[^
38260 2c 5c 73 40 5d 2b 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 26 26 20 27 73 74 61 62 ,\s@]+$}',.$reqVersion).&&.'stab
38280 6c 65 27 20 21 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f le'.!==.($stabilityName.=.Versio
382a0 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 nParser::parseStability($reqVers
382c0 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 ion))).{.$name.=.strtolower($req
382e0 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 Name);.$stability.=.$stabilities
38300 5b 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 [$stabilityName];.if.(isset($sta
38320 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 bilityFlags[$name]).&&.$stabilit
38340 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f yFlags[$name].>.$stability).{.co
38360 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d ntinue;.}.$stabilityFlags[$name]
38380 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 .=.$stability;.}.}..return.$stab
383a0 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ilityFlags;.}..private.function.
383c0 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 extractReferences(array.$require
383e0 73 2c 20 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 s,.array.$references).{.foreach.
38400 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 ($requires.as.$reqName.=>.$reqVe
38420 72 73 69 6f 6e 29 20 7b 0a 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c rsion).{.$reqVersion.=.preg_repl
38440 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 ace('{^([^,\s@]+).as..+$}',.'$1'
38460 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ,.$reqVersion);.if.(preg_match('
38480 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 5b 61 2d 66 30 2d 39 5d 2b 29 24 7d 27 2c 20 24 72 65 71 {^[^,\s@]+?#([a-f0-9]+)$}',.$req
384a0 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 20 26 26 20 27 64 65 76 27 20 3d 3d 3d 20 28 24 Version,.$match).&&.'dev'.===.($
384c0 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 stabilityName.=.VersionParser::p
384e0 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 arseStability($reqVersion))).{.$
38500 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 72 65 name.=.strtolower($reqName);.$re
38520 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d ferences[$name].=.$match[1];.}.}
38540 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 ..return.$references;.}..private
38560 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f .function.guessVersion(array.$co
38580 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 nfig).{...if.(function_exists('p
385a0 72 6f 63 5f 6f 70 65 6e 27 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 roc_open').&&.0.===.$this->proce
385c0 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c ss->execute('git.branch.--no-col
385e0 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a or.--no-abbrev.-v',.$output)).{.
38600 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 $branches.=.array();.$isFeatureB
38620 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a ranch.=.false;.$version.=.null;.
38640 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 ...foreach.($this->process->spli
38660 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 tLines($output).as.$branch).{.if
38680 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a .($branch.&&.preg_match('{^(?:\*
386a0 20 29 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 7c 5c 28 6e 6f 20 62 72 61 6e 63 .).*(?:[^/.]+?/)?(\S+|\(no.branc
386c0 68 5c 29 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 h\)).*([a-f0-9]+)..*$}',.$branch
386e0 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 5b 31 5d 20 3d 3d 3d 20 27 ,.$match)).{.if.($match[1].===.'
38700 28 6e 6f 20 62 72 61 6e 63 68 29 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d (no.branch)').{.$version.=.'dev-
38720 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 '.$match[2];.$isFeatureBranch.=.
38740 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d true;.}.else.{.$version.=.$this-
38760 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 >versionParser->normalizeBranch(
38780 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 30 $match[1]);.$isFeatureBranch.=.0
387a0 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 69 .===.strpos($version,.'dev-');.i
387c0 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b f.('9999999-dev'.===.$version).{
387e0 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a .$version.=.'dev-'.$match[1];.}.
38800 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 }.}..if.($branch.&&.!preg_match(
38820 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a '{^.*[^/]+/HEAD.}',.$branch)).{.
38840 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 3f 3a 5b if.(preg_match('{^(?:\*.)?.*(?:[
38860 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d ^/.]+?/)?(\S+).*([a-f0-9]+)..*$}
38880 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 ',.$branch,.$match)).{.$branches
388a0 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 [].=.$match[1];.}.}.}..if.(!$isF
388c0 65 61 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b eatureBranch).{.return.$version;
388e0 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 .}......if.((isset($config['extr
38900 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 a']['branch-alias']).&&.!isset($
38920 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b config['extra']['branch-alias'][
38940 24 76 65 72 73 69 6f 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a 73 6f 6e 5f 65 6e 63 6f 64 $version])).||.strpos(json_encod
38960 65 28 24 63 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 69 6f 6e 22 27 29 0a 29 20 e($config),.'"self.version"').).
38980 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 64 65 76 2d {.$branch.=.preg_replace('{^dev-
389a0 7d 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 }',.'',.$version);.$length.=.PHP
389c0 5f 49 4e 54 5f 4d 41 58 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 _INT_MAX;.foreach.($branches.as.
389e0 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d $candidate).{...if.($candidate.=
38a00 3d 3d 20 24 62 72 61 6e 63 68 20 7c 7c 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 6d 61 ==.$branch.||.!preg_match('{^(ma
38a20 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 7c 64 65 76 65 6c 6f 70 7c 5c 64 2b 5c 2e ster|trunk|default|develop|\d+\.
38a40 2e 2b 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 63 .+)$}',.$candidate,.$match)).{.c
38a60 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 ontinue;.}.if.(0.!==.$this->proc
38a80 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 76 2d 6c 69 73 74 20 27 2e 24 63 61 ess->execute('git.rev-list.'.$ca
38aa0 6e 64 69 64 61 74 65 2e 27 2e 2e 27 2e 24 62 72 61 6e 63 68 2c 20 24 6f 75 74 70 75 74 29 29 20 ndidate.'..'.$branch,.$output)).
38ac0 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 {.continue;.}.if.(strlen($output
38ae0 29 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 ).<.$length).{.$length.=.strlen(
38b00 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 $output);.$version.=.$this->vers
38b20 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 63 61 6e 64 ionParser->normalizeBranch($cand
38b40 69 64 61 74 65 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 idate);.if.('9999999-dev'.===.$v
38b60 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 ersion).{.$version.=.'dev-'.$mat
38b80 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b ch[1];.}.}.}.}..return.$version;
38ba0 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
38bc0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Package;..use.Compose
38be0 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e r\Json\JsonFile;.use.Composer\In
38c00 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 staller\InstallationManager;.use
38c20 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d .Composer\Repository\RepositoryM
38c40 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 anager;.use.Composer\Util\Proces
38c60 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c sExecutor;.use.Composer\Package\
38c80 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 AliasPackage;.use.Composer\Repos
38ca0 69 74 6f 72 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f itory\ArrayRepository;.use.Compo
38cc0 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a ser\Package\Dumper\ArrayDumper;.
38ce0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 use.Composer\Package\Loader\Arra
38d00 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 63 6b 65 72 0a 7b 0a 70 yLoader;........class.Locker.{.p
38d20 72 69 76 61 74 65 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 rivate.$lockFile;.private.$repos
38d40 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 itoryManager;.private.$installat
38d60 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 68 3b 0a 70 72 69 76 61 ionManager;.private.$hash;.priva
38d80 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 64 75 6d 70 65 72 3b 0a 70 72 69 te.$loader;.private.$dumper;.pri
38da0 76 61 74 65 20 24 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 vate.$lockDataCache;..........pu
38dc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 blic.function.__construct(JsonFi
38de0 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 le.$lockFile,.RepositoryManager.
38e00 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e $repositoryManager,.Installation
38e20 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 68 Manager.$installationManager,.$h
38e40 61 73 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 20 3d 20 24 6c 6f 63 6b 46 69 ash).{.$this->lockFile.=.$lockFi
38e60 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 le;.$this->repositoryManager.=.$
38e80 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c repositoryManager;.$this->instal
38ea0 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e lationManager.=.$installationMan
38ec0 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 20 24 68 61 73 68 3b 0a 24 74 68 69 73 ager;.$this->hash.=.$hash;.$this
38ee0 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 ->loader.=.new.ArrayLoader();.$t
38f00 68 69 73 2d 3e 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b his->dumper.=.new.ArrayDumper();
38f20 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 6b .}........public.function.isLock
38f40 65 64 28 24 64 65 76 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c ed($dev.=.false).{.if.(!$this->l
38f60 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 ockFile->exists()).{.return.fals
38f80 65 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 e;.}..$data.=.$this->getLockData
38fa0 28 29 3b 0a 69 66 20 28 24 64 65 76 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 61 ();.if.($dev).{.return.isset($da
38fc0 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 ta['packages-dev']);.}..return.i
38fe0 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a sset($data['packages']);.}......
39000 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 46 72 65 73 68 28 29 0a 7b 0a 24 6c 6f .public.function.isFresh().{.$lo
39020 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 72 ck.=.$this->lockFile->read();..r
39040 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 3d 3d 20 24 6c 6f 63 6b 5b 27 68 61 73 eturn.$this->hash.===.$lock['has
39060 68 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 h'];.}........public.function.is
39080 43 6f 6d 70 6c 65 74 65 46 6f 72 6d 61 74 28 24 64 65 76 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 CompleteFormat($dev).{.$lockData
390a0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 24 6c 6f 63 6b 65 64 .=.$this->getLockData();.$locked
390c0 50 61 63 6b 61 67 65 73 20 3d 20 24 64 65 76 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 Packages.=.$dev.?.$lockData['pac
390e0 6b 61 67 65 73 2d 64 65 76 27 5d 20 3a 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 kages-dev'].:.$lockData['package
39100 73 27 5d 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 29 s'];..if.(empty($lockedPackages)
39120 20 7c 7c 20 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 5b 30 5d 5b 27 6e 61 .||.isset($lockedPackages[0]['na
39140 6d 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 me'])).{.return.true;.}..return.
39160 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 false;.}........public.function.
39180 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 64 65 76 20 3d 20 66 61 6c 73 65 getLockedRepository($dev.=.false
391a0 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 ).{.$lockData.=.$this->getLockDa
391c0 74 61 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 ta();.$packages.=.new.ArrayRepos
391e0 69 74 6f 72 79 28 29 3b 0a 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 64 65 76 itory();..$lockedPackages.=.$dev
39200 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 20 3a 20 24 .?.$lockData['packages-dev'].:.$
39220 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 3b 0a 0a 69 66 20 28 65 6d 70 74 79 lockData['packages'];..if.(empty
39240 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 ($lockedPackages)).{.return.$pac
39260 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 kages;.}..if.(isset($lockedPacka
39280 67 65 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 ges[0]['name'])).{.foreach.($loc
392a0 6b 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 24 70 61 63 6b 61 67 65 kedPackages.as.$info).{.$package
392c0 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 s->addPackage($this->loader->loa
392e0 64 28 24 69 6e 66 6f 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a d($info));.}..return.$packages;.
39300 7d 0a 0a 0a 20 24 72 65 70 6f 20 3d 20 24 64 65 76 20 3f 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 }....$repo.=.$dev.?.$this->repos
39320 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 itoryManager->getLocalDevReposit
39340 6f 72 79 28 29 20 3a 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ory().:.$this->repositoryManager
39360 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 ->getLocalRepository();.foreach.
39380 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 24 72 65 ($lockedPackages.as.$info).{.$re
393a0 73 6f 6c 76 65 64 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 69 6e 66 6f 5b 27 61 6c solvedVersion.=.!empty($info['al
393c0 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 65 ias-version']).?.$info['alias-ve
393e0 72 73 69 6f 6e 27 5d 20 3a 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 0a 0a 20 24 rsion'].:.$info['version'];....$
39400 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 6e package.=.$repo->findPackage($in
39420 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 72 65 73 6f 6c 76 65 64 56 65 72 73 69 6f 6e 29 fo['package'],.$resolvedVersion)
39440 3b 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d ;....if.(!$package).{.$package.=
39460 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 .$this->repositoryManager->findP
39480 61 63 6b 61 67 65 28 24 69 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 72 65 73 6f 6c 76 ackage($info['package'],.$resolv
394a0 65 64 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 26 edVersion);.}....if.(!$package.&
394c0 26 20 21 65 6d 70 74 79 28 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 &.!empty($info['alias-version'])
394e0 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 ).{.$package.=.$this->repository
39500 4d 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 6e 66 6f 5b 27 70 61 63 6b Manager->findPackage($info['pack
39520 61 67 65 27 5d 2c 20 24 69 6e 66 6f 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 69 66 20 28 24 70 age'],.$info['version']);.if.($p
39540 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 28 24 69 6e ackage).{.$package->setAlias($in
39560 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e fo['alias-version']);.$package->
39580 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 70 72 65 74 setPrettyAlias($info['alias-pret
395a0 74 79 2d 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 ty-version']);.}.}..if.(!$packag
395c0 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 e).{.throw.new.\LogicException(s
395e0 70 72 69 6e 74 66 28 0a 27 43 61 6e 20 6e 6f 74 20 66 69 6e 64 20 22 25 73 2d 25 73 22 20 70 61 printf(.'Can.not.find."%s-%s".pa
39600 63 6b 61 67 65 20 69 6e 20 72 65 67 69 73 74 65 72 65 64 20 72 65 70 6f 73 69 74 6f 72 69 65 73 ckage.in.registered.repositories
39620 27 2c 0a 24 69 6e 66 6f 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 69 6e 66 6f 5b 27 76 65 72 73 ',.$info['package'],.$info['vers
39640 69 6f 6e 27 5d 0a 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 63 6c 6f 6e 65 20 24 70 ion'].));.}..$package.=.clone.$p
39660 61 63 6b 61 67 65 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 69 6e 66 6f 5b 27 74 69 6d 65 27 5d ackage;.if.(!empty($info['time']
39680 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 69 )).{.$package->setReleaseDate($i
396a0 6e 66 6f 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 69 6e 66 6f nfo['time']);.}.if.(!empty($info
396c0 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 ['source-reference'])).{.$packag
396e0 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 69 6e 66 6f 5b 27 73 6f 75 e->setSourceReference($info['sou
39700 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 69 66 20 28 69 73 5f 63 61 6c 6c 61 62 6c rce-reference']);.if.(is_callabl
39720 65 28 24 70 61 63 6b 61 67 65 2c 20 27 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 27 29 29 e($package,.'setDistReference'))
39740 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 69 .{.$package->setDistReference($i
39760 6e 66 6f 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 nfo['source-reference']);.}.}..$
39780 70 61 63 6b 61 67 65 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a packages->addPackage($package);.
397a0 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 }..return.$packages;.}..public.f
397c0 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a unction.getMinimumStability().{.
397e0 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 $lockData.=.$this->getLockData()
39800 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d ;..return.isset($lockData['minim
39820 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e um-stability']).?.$lockData['min
39840 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3a 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a imum-stability'].:.'stable';.}..
39860 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 public.function.getStabilityFlag
39880 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b s().{.$lockData.=.$this->getLock
398a0 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b Data();..return.isset($lockData[
398c0 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 'stability-flags']).?.$lockData[
398e0 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 'stability-flags'].:.array();.}.
39900 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a .public.function.getAliases().{.
39920 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 $lockData.=.$this->getLockData()
39940 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 ;..return.isset($lockData['alias
39960 65 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 20 3a 20 61 es']).?.$lockData['aliases'].:.a
39980 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f rray();.}..public.function.getLo
399a0 63 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c ckData().{.if.(null.!==.$this->l
399c0 6f 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f ockDataCache).{.return.$this->lo
399e0 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b ckDataCache;.}..if.(!$this->lock
39a00 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 File->exists()).{.throw.new.\Log
39a20 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c 65 20 66 6f 75 6e 64 2e 20 icException('No.lockfile.found..
39a40 55 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 61 63 6b 61 67 65 73 27 29 Unable.to.read.locked.packages')
39a60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 ;.}..return.$this->lockDataCache
39a80 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a .=.$this->lockFile->read();.}...
39aa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 ..........public.function.setLoc
39ac0 6b 44 61 74 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 64 65 76 50 61 63 6b 61 kData(array.$packages,.$devPacka
39ae0 67 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 ges,.array.$aliases,.$minimumSta
39b00 62 69 6c 69 74 79 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b bility,.array.$stabilityFlags).{
39b20 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d .$lock.=.array(.'hash'.=>.$this-
39b40 3e 68 61 73 68 2c 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 61 63 6b >hash,.'packages'.=>.null,.'pack
39b60 61 67 65 73 2d 64 65 76 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e 20 ages-dev'.=>.null,.'aliases'.=>.
39b80 61 72 72 61 79 28 29 2c 0a 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 20 3d 3e 20 array(),.'minimum-stability'.=>.
39ba0 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 0a 27 73 74 61 62 69 6c 69 74 79 2d 66 6c $minimumStability,.'stability-fl
39bc0 61 67 73 27 20 3d 3e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 0a 29 3b 0a 0a 66 6f 72 ags'.=>.$stabilityFlags,.);..for
39be0 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 each.($aliases.as.$package.=>.$v
39c00 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 ersions).{.foreach.($versions.as
39c20 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 61 6c .$version.=>.$alias).{.$lock['al
39c40 69 61 73 65 73 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 iases'][].=.array(.'alias'.=>.$a
39c60 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 lias['alias'],.'alias_normalized
39c80 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c '.=>.$alias['alias_normalized'],
39ca0 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 70 61 63 6b 61 67 65 .'version'.=>.$version,.'package
39cc0 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 61 '.=>.$package,.);.}.}..$lock['pa
39ce0 63 6b 61 67 65 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 ckages'].=.$this->lockPackages($
39d00 70 61 63 6b 61 67 65 73 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 76 50 61 63 6b packages);.if.(null.!==.$devPack
39d20 61 67 65 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 20 3d 20 ages).{.$lock['packages-dev'].=.
39d40 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 64 65 76 50 61 63 6b 61 67 65 73 $this->lockPackages($devPackages
39d60 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 27 );.}..if.(empty($lock['packages'
39d80 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 ]).&&.empty($lock['packages-dev'
39da0 5d 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 ])).{.if.($this->lockFile->exist
39dc0 73 28 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 67 s()).{.unlink($this->lockFile->g
39de0 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 etPath());.}..return.false;.}..i
39e00 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 20 7c 7c 20 24 6c 6f 63 6b 20 21 f.(!$this->isLocked().||.$lock.!
39e20 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 29 20 7b 0a 24 74 68 69 73 ==.$this->getLockData()).{.$this
39e40 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 28 24 6c 6f 63 6b 29 3b 0a 24 74 68 69 73 2d ->lockFile->write($lock);.$this-
39e60 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 74 >lockDataCache.=.null;..return.t
39e80 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 rue;.}..return.false;.}..private
39ea0 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 70 61 .function.lockPackages(array.$pa
39ec0 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f ckages).{.$locked.=.array();..fo
39ee0 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a reach.($packages.as.$package).{.
39f00 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 if.($package.instanceof.AliasPac
39f20 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 70 61 kage).{.continue;.}..$name.=.$pa
39f40 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 76 65 72 73 69 6f 6e ckage->getPrettyName();.$version
39f60 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b .=.$package->getPrettyVersion();
39f80 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 7c 7c 20 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 ..if.(!$name.||.!$version).{.thr
39fa0 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a ow.new.\LogicException(sprintf(.
39fc0 27 50 61 63 6b 61 67 65 20 22 25 73 22 20 68 61 73 20 6e 6f 20 76 65 72 73 69 6f 6e 20 6f 72 20 'Package."%s".has.no.version.or.
39fe0 6e 61 6d 65 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 64 27 2c 20 24 70 61 name.and.can.not.be.locked',.$pa
3a000 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 ckage.));.}..$spec.=.$this->dump
3a020 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 75 6e 73 65 74 28 24 73 70 65 63 5b er->dump($package);.unset($spec[
3a040 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 69 66 20 28 24 70 61 'version_normalized']);..if.($pa
3a060 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 69 66 20 28 27 67 69 74 27 20 3d 3d 3d 20 ckage->isDev()).{.if.('git'.===.
3a080 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 20 26 26 20 24 70 61 $package->getSourceType().&&.$pa
3a0a0 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d th.=.$this->installationManager-
3a0c0 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 73 6f >getInstallPath($package)).{.$so
3a0e0 75 72 63 65 52 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 urceRef.=.$package->getSourceRef
3a100 65 72 65 6e 63 65 28 29 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 erence().?:.$package->getDistRef
3a120 65 72 65 6e 63 65 28 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 erence();.$process.=.new.Process
3a140 45 78 65 63 75 74 6f 72 28 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 70 72 6f 63 65 73 73 2d 3e Executor();.if.(0.===.$process->
3a160 65 78 65 63 75 74 65 28 27 67 69 74 20 6c 6f 67 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 63 execute('git.log.-n1.--pretty=%c
3a180 74 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 52 65 66 29 2c 20 t.'.escapeshellarg($sourceRef),.
3a1a0 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 73 70 65 63 5b 27 74 69 6d 65 27 5d $output,.$path)).{.$spec['time']
3a1c0 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 6f 63 6b 65 64 .=.trim($output);.}.}.}..$locked
3a1e0 5b 5d 20 3d 20 24 73 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 6b 65 64 2c 20 66 75 [].=.$spec;.}..usort($locked,.fu
3a200 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 61 72 69 73 6f 6e 20 3d 20 nction.($a,.$b).{.$comparison.=.
3a220 73 74 72 63 6d 70 28 24 61 5b 27 6e 61 6d 65 27 5d 2c 20 24 62 5b 27 6e 61 6d 65 27 5d 29 3b 0a strcmp($a['name'],.$b['name']);.
3a240 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e .if.(0.!==.$comparison).{.return
3a260 20 24 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 63 6d 70 .$comparison;.}....return.strcmp
3a280 28 24 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a ($a['version'],.$b['version']);.
3a2a0 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a });..return.$locked;.}.}.<?php..
3a2c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
3a2e0 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 kage;..use.Composer\Repository\R
3a300 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 epositoryInterface;.......interf
3a320 61 63 65 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c ace.PackageInterface.{......publ
3a340 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 ic.function.getName();.......pub
3a360 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 0a 0a lic.function.getPrettyName();...
3a380 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 .......public.function.getNames(
3a3a0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 );.......public.function.setId($
3a3c0 69 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 id);.......public.function.getId
3a3e0 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 ();.......public.function.isDev(
3a400 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 );.......public.function.getType
3a420 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 ();.......public.function.getTar
3a440 67 65 74 44 69 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 getDir();.......public.function.
3a460 67 65 74 45 78 74 72 61 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f getExtra();.......public.functio
3a480 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a n.setInstallationSource($type);.
3a4a0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c ......public.function.getInstall
3a4c0 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ationSource();.......public.func
3a4e0 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tion.getSourceType();.......publ
3a500 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 0a 0a 0a 0a ic.function.getSourceUrl();.....
3a520 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 ..public.function.getSourceRefer
3a540 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ence();.......public.function.ge
3a560 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tDistType();.......public.functi
3a580 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 on.getDistUrl();.......public.fu
3a5a0 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a nction.getDistReference();......
3a5c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 .public.function.getDistSha1Chec
3a5e0 6b 73 75 6d 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ksum();.......public.function.ge
3a600 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tVersion();.......public.functio
3a620 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c n.getPrettyVersion();.......publ
3a640 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 0a 0a ic.function.getReleaseDate();...
3a660 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 ....public.function.getStability
3a680 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 ();........public.function.getRe
3a6a0 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e quires();........public.function
3a6c0 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .getConflicts();........public.f
3a6e0 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 unction.getProvides();........pu
3a700 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a 0a 0a blic.function.getReplaces();....
3a720 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 ....public.function.getDevRequir
3a740 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 es();........public.function.get
3a760 53 75 67 67 65 73 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 Suggests();............public.fu
3a780 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 nction.getAutoload();........pub
3a7a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a lic.function.getIncludePaths();.
3a7c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 ......public.function.setReposit
3a7e0 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 ory(RepositoryInterface.$reposit
3a800 6f 72 79 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 ory);.......public.function.getR
3a820 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 epository();.......public.functi
3a840 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 on.getBinaries();.......public.f
3a860 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 unction.getAlias();.......public
3a880 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a .function.getPrettyAlias();.....
3a8a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 ..public.function.getUniqueName(
3a8c0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 );.......public.function.__toStr
3a8e0 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ing();.......public.function.get
3a900 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a PrettyString();.}.<?php.........
3a920 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a ...namespace.Composer\Package;..
3a940 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f use.Composer\Repository\Reposito
3a960 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 ryInterface;.use.Composer\Reposi
3a980 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 61 tory\PlatformRepository;.......a
3a9a0 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d bstract.class.BasePackage.implem
3a9c0 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 73 ents.PackageInterface.{.public.s
3a9e0 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 tatic.$supportedLinkTypes.=.arra
3aa00 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 y(.'require'.=>.array('descripti
3aa20 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 on'.=>.'requires',.'method'.=>.'
3aa40 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c 69 63 74 27 20 3d 3e 20 61 72 72 61 79 28 requires'),.'conflict'.=>.array(
3aa60 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 6d 'description'.=>.'conflicts',.'m
3aa80 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 2c 0a 27 70 72 6f 76 69 64 65 ethod'.=>.'conflicts'),.'provide
3aaa0 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 70 72 6f '.=>.array('description'.=>.'pro
3aac0 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 29 2c vides',.'method'.=>.'provides'),
3aae0 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e .'replace'.=>.array('description
3ab00 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 '.=>.'replaces',.'method'.=>.'re
3ab20 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 places'),.'require-dev'.=>.array
3ab40 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 20 28 66 6f 72 ('description'.=>.'requires.(for
3ab60 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 64 65 76 .development)',.'method'.=>.'dev
3ab80 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f Requires'),.);..const.STABILITY_
3aba0 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 52 43 20 3d STABLE.=.0;.const.STABILITY_RC.=
3abc0 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 20 3d 20 31 30 3b 0a 63 .5;.const.STABILITY_BETA.=.10;.c
3abe0 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 20 3d 20 31 35 3b 0a 63 6f 6e 73 74 onst.STABILITY_ALPHA.=.15;.const
3ac00 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 30 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 .STABILITY_DEV.=.20;..public.sta
3ac20 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 73 74 61 62 6c tic.$stabilities.=.array(.'stabl
3ac40 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 2c 0a 27 52 e'.=>.self::STABILITY_STABLE,.'R
3ac60 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 52 43 2c 0a 27 62 65 74 61 27 C'.=>.self::STABILITY_RC,.'beta'
3ac80 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 2c 0a 27 61 6c 70 68 61 .=>.self::STABILITY_BETA,.'alpha
3aca0 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 2c 0a 27 64 65 76 '.=>.self::STABILITY_ALPHA,.'dev
3acc0 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 44 45 56 2c 0a 29 3b 0a 0a 70 72 '.=>.self::STABILITY_DEV,.);..pr
3ace0 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 otected.$name;.protected.$pretty
3ad00 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 Name;..protected.$repository;.pr
3ad20 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 otected.$id;.......public.functi
3ad40 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 on.__construct($name).{.$this->p
3ad60 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d rettyName.=.$name;.$this->name.=
3ad80 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 .strtolower($name);.$this->id.=.
3ada0 2d 31 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d -1;.}.....public.function.getNam
3adc0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a e().{.return.$this->name;.}.....
3ade0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 0a public.function.getPrettyName().
3ae00 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 3b 0a 7d 0a 0a 0a {.return.$this->prettyName;.}...
3ae20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 ..public.function.getNames().{.$
3ae40 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 names.=.array(.$this->getName().
3ae60 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 =>.true,.);..foreach.($this->get
3ae80 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c Provides().as.$link).{.$names[$l
3aea0 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 ink->getTarget()].=.true;.}..for
3aec0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c each.($this->getReplaces().as.$l
3aee0 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 ink).{.$names[$link->getTarget()
3af00 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 ].=.true;.}..return.array_keys($
3af20 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 names);.}.....public.function.se
3af40 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 0a tId($id).{.$this->id.=.$id;.}...
3af60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 ..public.function.getId().{.retu
3af80 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rn.$this->id;.}..public.function
3afa0 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .getRepository().{.return.$this-
3afc0 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >repository;.}..public.function.
3afe0 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 setRepository(RepositoryInterfac
3b000 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f e.$repository).{.if.($this->repo
3b020 73 69 74 6f 72 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 sitory).{.throw.new.\LogicExcept
3b040 69 6f 6e 28 27 41 20 70 61 63 6b 61 67 65 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 64 64 65 64 ion('A.package.can.only.be.added
3b060 20 74 6f 20 6f 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 .to.one.repository');.}.$this->r
3b080 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a epository.=.$repository;.}......
3b0a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a .public.function.isPlatform().{.
3b0c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 69 6e return.$this->getRepository().in
3b0e0 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a stanceof.PlatformRepository;.}..
3b100 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 .....public.function.getUniqueNa
3b120 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 me().{.return.$this->getName().'
3b140 2d 27 2e 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 -'.$this->getVersion();.}..publi
3b160 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 c.function.equals(PackageInterfa
3b180 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 69 66 ce.$package).{.$self.=.$this;.if
3b1a0 20 28 24 74 68 69 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 .($this.instanceof.AliasPackage)
3b1c0 20 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a .{.$self.=.$this->getAliasOf();.
3b1e0 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 }.if.($package.instanceof.AliasP
3b200 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ackage).{.$package.=.$package->g
3b220 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 20 etAliasOf();.}..return.$package.
3b240 3d 3d 3d 20 24 73 65 6c 66 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ===.$self;.}.......public.functi
3b260 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.__toString().{.return.$this->
3b280 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 getUniqueName();.}..public.funct
3b2a0 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion.getPrettyString().{.return.$
3b2c0 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 27 2e 24 74 68 69 73 2d this->getPrettyName().'.'.$this-
3b2e0 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 >getPrettyVersion();.}..public.f
3b300 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 unction.__clone().{.$this->repos
3b320 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a itory.=.null;.$this->id.=.-1;.}.
3b340 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
3b360 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 poser\Package\Version;..use.Comp
3b380 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f oser\Package\BasePackage;.use.Co
3b3a0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b mposer\Package\PackageInterface;
3b3c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 .use.Composer\Package\Link;.use.
3b3e0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c Composer\Package\LinkConstraint\
3b400 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 MultiConstraint;.use.Composer\Pa
3b420 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 ckage\LinkConstraint\VersionCons
3b440 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 50 61 72 73 65 traint;.......class.VersionParse
3b460 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6d 6f 64 69 66 69 65 72 52 65 67 65 r.{.private.static.$modifierRege
3b480 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 73 74 61 62 6c 65 7c 62 65 74 61 7c 62 7c 52 43 7c x.=.'[._-]?(?:(stable|beta|b|RC|
3b4a0 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a 5b 2e 2d 5d 3f 28 5c 64 2b 29 alpha|a|patch|pl|p)(?:[.-]?(\d+)
3b4c0 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 )?)?([.-]?dev)?';........public.
3b4e0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 static.function.parseStability($
3b500 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 version).{.$version.=.preg_repla
3b520 63 65 28 27 7b 23 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f ce('{#[a-f0-9]+$}i',.'',.$versio
3b540 6e 29 3b 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 n);..if.('dev-'.===.substr($vers
3b560 69 6f 6e 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 ion,.0,.4).||.'-dev'.===.substr(
3b580 24 76 65 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d $version,.-4)).{.return.'dev';.}
3b5a0 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 ..preg_match('{'.self::$modifier
3b5c0 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e Regex.'$}i',.strtolower($version
3b5e0 29 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 33 5d ),.$match);.if.(!empty($match[3]
3b600 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 )).{.return.'dev';.}..if.(!empty
3b620 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 7b 0a 69 66 20 28 27 62 65 74 61 27 20 3d 3d 3d 20 24 6d ($match[1])).{.if.('beta'.===.$m
3b640 61 74 63 68 5b 31 5d 20 7c 7c 20 27 62 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a atch[1].||.'b'.===.$match[1]).{.
3b660 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 7d 0a 69 66 20 28 27 61 6c 70 68 61 27 20 3d 3d 3d return.'beta';.}.if.('alpha'.===
3b680 20 24 6d 61 74 63 68 5b 31 5d 20 7c 7c 20 27 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 .$match[1].||.'a'.===.$match[1])
3b6a0 20 7b 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 72 63 27 20 3d 3d .{.return.'alpha';.}.if.('rc'.==
3b6c0 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 7d 0a 7d 0a =.$match[1]).{.return.'RC';.}.}.
3b6e0 0a 72 65 74 75 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 .return.'stable';.}..public.stat
3b700 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 ic.function.normalizeStability($
3b720 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c stability).{.$stability.=.strtol
3b740 6f 77 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 ower($stability);..return.$stabi
3b760 6c 69 74 79 20 3d 3d 3d 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 61 62 69 6c 69 74 lity.===.'rc'.?.'RC'.:.$stabilit
3b780 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 y;.}..public.static.function.for
3b7a0 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 matVersion(PackageInterface.$pac
3b7c0 6b 61 67 65 2c 20 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 21 24 kage,.$truncate.=.true).{.if.(!$
3b7e0 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 70 package->isDev().||.!in_array($p
3b800 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 ackage->getSourceType(),.array('
3b820 68 67 27 2c 20 27 67 69 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d hg',.'git'))).{.return.$package-
3b840 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 >getPrettyVersion();.}....if.($t
3b860 72 75 6e 63 61 74 65 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 runcate.&&.strlen($package->getS
3b880 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 7b 0a 72 65 74 75 ourceReference()).===.40).{.retu
3b8a0 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 rn.$package->getPrettyVersion().
3b8c0 2e 20 27 20 27 20 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 ..'.'...substr($package->getSour
3b8e0 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ceReference(),.0,.7);.}..return.
3b900 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 $package->getPrettyVersion()...'
3b920 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 .'...$package->getSourceReferenc
3b940 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f e();.}........public.function.no
3b960 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 rmalize($version).{.$version.=.t
3b980 72 69 6d 28 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 rim($version);....if.(preg_match
3b9a0 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 29 20 2b 61 73 20 2b 28 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c ('{^([^,\s]+).+as.+([^,\s]+)$}',
3b9c0 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d .$version,.$match)).{.$version.=
3b9e0 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 .$match[1];.}....if.(preg_match(
3ba00 27 7b 5e 28 3f 3a 64 65 76 2d 29 3f 28 3f 3a 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 '{^(?:dev-)?(?:master|trunk|defa
3ba20 75 6c 74 29 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 39 ult)$}i',.$version)).{.return.'9
3ba40 39 39 39 39 39 39 2d 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 999999-dev';.}..if.('dev-'.===.s
3ba60 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 trtolower(substr($version,.0,.4)
3ba80 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 73 75 62 73 74 72 28 24 76 65 72 73 69 )).{.return.'dev-'.substr($versi
3baa0 6f 6e 2c 20 34 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 on,.4);.}....if.(preg_match('{^v
3bac0 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b ?(\d{1,3})(\.\d+)?(\.\d+)?(\.\d+
3bae0 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 )?'.self::$modifierRegex.'$}i',.
3bb00 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 $version,.$matches)).{.$version.
3bb20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b =.$matches[1]..(!empty($matches[
3bb40 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 2]).?.$matches[2].:.'.0')..(!emp
3bb60 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 ty($matches[3]).?.$matches[3].:.
3bb80 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d '.0')..(!empty($matches[4]).?.$m
3bba0 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 3d 20 35 3b 0a 7d atches[4].:.'.0');.$index.=.5;.}
3bbc0 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 34 7d 28 .elseif.(preg_match('{^v?(\d{4}(
3bbe0 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 32 7d 29 7b 31 2c 36 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 31 ?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1
3bc00 2c 33 7d 29 3f 29 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d ,3})?)'.self::$modifierRegex.'$}
3bc20 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 20 0a 20 24 76 65 i',.$version,.$matches)).{...$ve
3bc40 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 44 7d 27 2c 20 27 2d 27 rsion.=.preg_replace('{\D}',.'-'
3bc60 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 24 69 6e 64 65 78 20 3d 20 32 3b 0a 7d 0a 0a 0a ,.$matches[1]);.$index.=.2;.}...
3bc80 20 69 66 20 28 69 73 73 65 74 28 24 69 6e 64 65 78 29 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 .if.(isset($index)).{.if.(!empty
3bca0 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 29 20 7b 0a 69 66 20 28 27 73 74 61 62 6c ($matches[$index])).{.if.('stabl
3bcc0 65 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 7b 0a 72 65 74 75 72 e'.===.$matches[$index]).{.retur
3bce0 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 24 6d 6f 64 20 3d 20 61 72 72 61 79 28 27 7b 5e 70 6c n.$version;.}.$mod.=.array('{^pl
3bd00 3f 24 7d 69 27 2c 20 27 7b 5e 72 63 24 7d 69 27 29 3b 0a 24 6d 6f 64 4e 6f 72 6d 61 6c 69 7a 65 ?$}i',.'{^rc$}i');.$modNormalize
3bd20 64 20 3d 20 61 72 72 61 79 28 27 70 61 74 63 68 27 2c 20 27 52 43 27 29 3b 0a 24 76 65 72 73 69 d.=.array('patch',.'RC');.$versi
3bd40 6f 6e 20 2e 3d 20 27 2d 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6d 6f 64 2c 20 24 6d 6f on..=.'-'.preg_replace($mod,.$mo
3bd60 64 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 dNormalized,.strtolower($matches
3bd80 5b 24 69 6e 64 65 78 5d 29 29 0a 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 [$index]))...(!empty($matches[$i
3bda0 6e 64 65 78 2b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 20 3a 20 ndex+1]).?.$matches[$index+1].:.
3bdc0 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 '');.}..if.(!empty($matches[$ind
3bde0 65 78 2b 32 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a ex+2])).{.$version..=.'-dev';.}.
3be00 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f .return.$version;.}....if.(preg_
3be20 6d 61 74 63 68 28 27 7b 28 2e 2a 3f 29 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 24 76 65 72 73 match('{(.*?)[.-]?dev$}i',.$vers
3be40 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 ion,.$match)).{.try.{.return.$th
3be60 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a is->normalizeBranch($match[1]);.
3be80 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 74 68 }.catch.(\Exception.$e).{}.}..th
3bea0 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f row.new.\UnexpectedValueExceptio
3bec0 6e 28 27 49 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 22 27 2e 24 76 65 n('Invalid.version.string."'.$ve
3bee0 72 73 69 6f 6e 2e 27 22 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rsion.'"');.}........public.func
3bf00 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6e 61 6d 65 29 0a 7b 0a 24 6e tion.normalizeBranch($name).{.$n
3bf20 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 ame.=.trim($name);..if.(in_array
3bf40 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 6d 61 73 74 65 72 27 2c 20 27 74 72 75 6e 6b 27 2c ($name,.array('master',.'trunk',
3bf60 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f .'default'))).{.return.$this->no
3bf80 72 6d 61 6c 69 7a 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 rmalize($name);.}..if.(preg_matc
3bfa0 68 28 27 23 5e 76 3f 28 5c 64 2b 29 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 5c 2e h('#^v?(\d+)(\.(?:\d+|[x*]))?(\.
3bfc0 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 24 (?:\d+|[x*]))?(\.(?:\d+|[x*]))?$
3bfe0 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f #i',.$name,.$matches)).{.$versio
3c000 6e 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 20 35 3b 20 24 69 2b n.=.'';.for.($i.=.1;.$i.<.5;.$i+
3c020 2b 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b +).{.$version..=.isset($matches[
3c040 24 69 5d 29 20 3f 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2a 27 2c 20 27 78 27 2c 20 24 6d 61 $i]).?.str_replace('*',.'x',.$ma
3c060 74 63 68 65 73 5b 24 69 5d 29 20 3a 20 27 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 tches[$i]).:.'.x';.}..return.str
3c080 5f 72 65 70 6c 61 63 65 28 27 78 27 2c 20 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f _replace('x',.'9999999',.$versio
3c0a0 6e 29 2e 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d n).'-dev';.}..return.'dev-'.$nam
3c0c0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 e;.}.........public.function.par
3c0e0 73 65 4c 69 6e 6b 73 28 24 73 6f 75 72 63 65 2c 20 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 2c seLinks($source,.$sourceVersion,
3c100 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 0a 7b 0a 24 72 65 73 20 3d 20 .$description,.$links).{.$res.=.
3c120 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 74 61 72 array();.foreach.($links.as.$tar
3c140 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e get.=>.$constraint).{.if.('self.
3c160 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 61 72 version'.===.$constraint).{.$par
3c180 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 sedConstraint.=.$this->parseCons
3c1a0 74 72 61 69 6e 74 73 28 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 traints($sourceVersion);.}.else.
3c1c0 7b 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 {.$parsedConstraint.=.$this->par
3c1e0 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 24 72 seConstraints($constraint);.}.$r
3c200 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 6e 65 77 20 4c 69 es[strtolower($target)].=.new.Li
3c220 6e 6b 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 nk($source,.$target,.$parsedCons
3c240 74 72 61 69 6e 74 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e traint,.$description,.$constrain
3c260 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 t);.}..return.$res;.}........pub
3c280 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 lic.function.parseConstraints($c
3c2a0 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 onstraints).{.$prettyConstraint.
3c2c0 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 =.$constraints;..if.(preg_match(
3c2e0 27 7b 5e 28 5b 5e 2c 5c 73 5d 2a 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 '{^([^,\s]*?)@('.implode('|',.ar
3c300 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 ray_keys(BasePackage::$stabiliti
3c320 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 es)).')$}i',.$constraints,.$matc
3c340 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 65 6d 70 74 79 28 24 6d 61 74 63 h)).{.$constraints.=.empty($matc
3c360 68 5b 31 5d 29 20 3f 20 27 2a 27 20 3a 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 69 66 20 28 h[1]).?.'*'.:.$match[1];.}..if.(
3c380 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 64 65 76 2d 5b 5e 2c 5c 73 40 5d 2b 3f 7c 5b 5e 2c preg_match('{^(dev-[^,\s@]+?|[^,
3c3a0 5c 73 40 5d 2b 3f 5c 2e 78 2d 64 65 76 29 23 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 24 63 \s@]+?\.x-dev)#[a-f0-9]+$}i',.$c
3c3c0 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 onstraints,.$match)).{.$constrai
3c3e0 6e 74 73 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 nts.=.$match[1];.}..$constraints
3c400 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 2c 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 .=.preg_split('{\s*,\s*}',.trim(
3c420 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6e 73 $constraints));..if.(count($cons
3c440 74 72 61 69 6e 74 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 traints).>.1).{.$constraintObjec
3c460 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 73 74 72 61 69 ts.=.array();.foreach.($constrai
3c480 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e nts.as.$constraint).{.$constrain
3c4a0 74 4f 62 6a 65 63 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 6f 6e 73 74 72 61 69 tObjects.=.array_merge($constrai
3c4c0 6e 74 4f 62 6a 65 63 74 73 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e ntObjects,.$this->parseConstrain
3c4e0 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e t($constraint));.}.}.else.{.$con
3c500 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e straintObjects.=.$this->parseCon
3c520 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 straint($constraints[0]);.}..if.
3c540 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 (1.===.count($constraintObjects)
3c560 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a ).{.$constraint.=.$constraintObj
3c580 65 63 74 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 ects[0];.}.else.{.$constraint.=.
3c5a0 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f new.MultiConstraint($constraintO
3c5c0 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 bjects);.}..$constraint->setPret
3c5e0 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 tyString($prettyConstraint);..re
3c600 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e turn.$constraint;.}..private.fun
3c620 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e ction.parseConstraint($constrain
3c640 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 3f t).{.if.(preg_match('{^([^,\s]+?
3c660 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 )@('.implode('|',.array_keys(Bas
3c680 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c ePackage::$stabilities)).')$}i',
3c6a0 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 .$constraint,.$match)).{.$constr
3c6c0 61 69 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 aint.=.$match[1];.if.($match[2].
3c6e0 21 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 !==.'stable').{.$stabilityModifi
3c700 65 72 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 er.=.$match[2];.}.}..if.(preg_ma
3c720 74 63 68 28 27 7b 5e 5b 78 2a 5d 28 5c 2e 5b 78 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 tch('{^[x*](\.[x*])*$}i',.$const
3c740 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 raint)).{.return.array();.}..if.
3c760 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 7e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 (preg_match('{^~(\d+)(?:\.(\d+))
3c780 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 24 7d 27 2c 20 24 63 ?(?:\.(\d+))?(?:\.(\d+))?$}',.$c
3c7a0 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 onstraint,.$matches)).{.if.(isse
3c7c0 74 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 29 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d t($matches[4])).{.$highVersion.=
3c7e0 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d .$matches[1]...'.'...$matches[2]
3c800 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 33 5d 20 2b 20 31 29 20 2e 20 27 2e 30 ...'.'...($matches[3].+.1)...'.0
3c820 2d 64 65 76 27 3b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d -dev';.$lowVersion.=.$matches[1]
3c840 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 ...'.'...$matches[2]...'.'...$ma
3c860 74 63 68 65 73 5b 33 5d 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 7d 20 65 tches[3]..'.'...$matches[4];.}.e
3c880 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 24 68 69 lseif.(isset($matches[3])).{.$hi
3c8a0 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 ghVersion.=.$matches[1]...'.'...
3c8c0 28 24 6d 61 74 63 68 65 73 5b 32 5d 20 2b 20 31 29 20 2e 20 27 2e 30 2e 30 2d 64 65 76 27 3b 0a ($matches[2].+.1)...'.0.0-dev';.
3c8e0 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 $lowVersion.=.$matches[1]...'.'.
3c900 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 ..$matches[2]...'.'...$matches[3
3c920 5d 2e 20 27 2e 30 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d ]..'.0';.}.else.{.$highVersion.=
3c940 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 2b 20 31 29 20 2e 20 27 2e 30 2e 30 2e 30 2d 64 65 76 .($matches[1].+.1)...'.0.0.0-dev
3c960 27 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 24 6c 6f ';.if.(isset($matches[2])).{.$lo
3c980 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 wVersion.=.$matches[1]...'.'...$
3c9a0 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 30 2e 30 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c matches[2]...'.0.0';.}.else.{.$l
3c9c0 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 30 2e 30 2e owVersion.=.$matches[1]...'.0.0.
3c9e0 30 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 6e 65 77 20 56 65 72 73 69 0';.}.}..return.array(.new.Versi
3ca00 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 2c onConstraint('>=',.$lowVersion),
3ca20 0a 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 .new.VersionConstraint('<',.$hig
3ca40 68 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 hVersion),.);.}....if.(preg_matc
3ca60 68 28 27 7b 5e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 h('{^(\d+)(?:\.(\d+))?(?:\.(\d+)
3ca80 29 3f 5c 2e 5b 78 2a 5d 24 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 )?\.[x*]$}',.$constraint,.$match
3caa0 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b es)).{.if.(isset($matches[3])).{
3cac0 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e .$highVersion.=.$matches[1]...'.
3cae0 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 '...$matches[2]...'.'...$matches
3cb00 5b 33 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 33 [3]...'.9999999';.if.($matches[3
3cb20 5d 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 ].===.'0').{.$lowVersion.=.$matc
3cb40 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b 32 5d 20 2d 20 31 29 hes[1]...'.'...($matches[2].-.1)
3cb60 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a ...'.9999999.9999999';.}.else.{.
3cb80 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 $lowVersion.=.$matches[1]...'.'.
3cba0 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 28 24 6d 61 74 63 68 65 73 5b ..$matches[2]...'.'...($matches[
3cbc0 33 5d 20 2d 20 31 29 2e 20 27 2e 39 39 39 39 39 39 39 27 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 3].-.1)..'.9999999';.}.}.elseif.
3cbe0 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 24 68 69 67 68 56 65 72 73 (isset($matches[2])).{.$highVers
3cc00 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 ion.=.$matches[1]...'.'...$match
3cc20 65 73 5b 32 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 es[2]...'.9999999.9999999';.if.(
3cc40 24 6d 61 74 63 68 65 73 5b 32 5d 20 3d 3d 3d 20 27 30 27 29 20 7b 0a 24 6c 6f 77 56 65 72 73 69 $matches[2].===.'0').{.$lowVersi
3cc60 6f 6e 20 3d 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 on.=.($matches[1].-.1)...'.99999
3cc80 39 39 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 99.9999999.9999999';.}.else.{.$l
3cca0 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 27 20 2e 20 owVersion.=.$matches[1]...'.'...
3ccc0 28 24 6d 61 74 63 68 65 73 5b 32 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 ($matches[2].-.1)...'.9999999.99
3cce0 39 39 39 39 39 27 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 99999';.}.}.else.{.$highVersion.
3cd00 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 =.$matches[1]...'.9999999.999999
3cd20 39 2e 39 39 39 39 39 39 39 27 3b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 9.9999999';.if.($matches[1].===.
3cd40 27 30 27 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 '0').{.return.array(new.VersionC
3cd60 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 29 3b 0a 7d onstraint('<',.$highVersion));.}
3cd80 20 65 6c 73 65 20 7b 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 28 24 6d 61 74 63 68 65 73 5b .else.{.$lowVersion.=.($matches[
3cda0 31 5d 20 2d 20 31 29 20 2e 20 27 2e 39 39 39 39 39 39 39 2e 39 39 39 39 39 39 39 2e 39 39 39 39 1].-.1)...'.9999999.9999999.9999
3cdc0 39 39 39 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 6e 65 77 20 56 65 72 999';.}.}..return.array(.new.Ver
3cde0 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 sionConstraint('>',.$lowVersion)
3ce00 2c 0a 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 ,.new.VersionConstraint('<',.$hi
3ce20 67 68 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 ghVersion),.);.}....if.(preg_mat
3ce40 63 68 28 27 7b 5e 28 3c 3e 7c 21 3d 7c 3e 3d 3f 7c 3c 3d 3f 7c 3d 3d 3f 29 3f 5c 73 2a 28 2e 2a ch('{^(<>|!=|>=?|<=?|==?)?\s*(.*
3ce60 29 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 )}',.$constraint,.$matches)).{.t
3ce80 72 79 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 ry.{.$version.=.$this->normalize
3cea0 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 73 74 61 62 ($matches[2]);..if.(!empty($stab
3cec0 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 29 20 26 26 20 24 74 68 69 73 2d 3e 70 61 72 73 65 53 74 ilityModifier).&&.$this->parseSt
3cee0 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 ability($version).===.'stable').
3cf00 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 73 74 61 62 69 6c 69 74 79 4d 6f {.$version..=.'-'...$stabilityMo
3cf20 64 69 66 69 65 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 difier;.}.elseif.('<'.===.$match
3cf40 65 73 5b 31 5d 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 73 74 61 62 es[1]).{.if.(!preg_match('/-stab
3cf60 6c 65 24 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 29 le$/',.strtolower($matches[2])))
3cf80 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 .{.$version..=.'-dev';.}.}..retu
3cfa0 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 rn.array(new.VersionConstraint($
3cfc0 6d 61 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d matches[1].?:.'=',.$version));.}
3cfe0 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 74 68 72 .catch.(\Exception.$e).{}.}..thr
3d000 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e ow.new.\UnexpectedValueException
3d020 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 ('Could.not.parse.version.constr
3d040 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a aint.'.$constraint);.}.}.<?php..
3d060 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
3d080 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6d 70 6c 65 74 65 50 61 kage;.......interface.CompletePa
3d0a0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 49 6e ckageInterface.extends.PackageIn
3d0c0 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 terface.{......public.function.g
3d0e0 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etScripts();.........public.func
3d100 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 tion.getRepositories();.......pu
3d120 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a blic.function.getLicense();.....
3d140 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b ..public.function.getKeywords();
3d160 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 .......public.function.getDescri
3d180 70 74 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ption();.......public.function.g
3d1a0 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e etHomepage();.........public.fun
3d1c0 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ction.getAuthors();.......public
3d1e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a .function.getSupport();.}.<?php.
3d200 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ...........namespace.Composer\Pa
3d220 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 6f 6f 74 50 61 63 6b 61 ckage;.......interface.RootPacka
3d240 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b geInterface.extends.CompletePack
3d260 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ageInterface.{......public.funct
3d280 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a ion.getMinimumStability();......
3d2a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 ...public.function.getStabilityF
3d2c0 6c 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 lags();.........public.function.
3d2e0 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a getReferences();.}.<?php........
3d300 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a ....namespace.Composer\Package;.
3d320 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 ......class.RootPackage.extends.
3d340 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f 74 50 CompletePackage.implements.RootP
3d360 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e ackageInterface.{.protected.$min
3d380 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 3b 0a 70 72 6f 74 65 63 imumStability.=.'stable';.protec
3d3a0 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 ted.$stabilityFlags.=.array();.p
3d3c0 72 6f 74 65 63 74 65 64 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a rotected.$references.=.array();.
3d3e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 69 6e 69 6d 75 6d ......public.function.setMinimum
3d400 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 Stability($minimumStability).{.$
3d420 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 6d 69 6e 69 6d 75 this->minimumStability.=.$minimu
3d440 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f mStability;.}.....public.functio
3d460 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e n.getMinimumStability().{.return
3d480 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a .$this->minimumStability;.}.....
3d4a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c ..public.function.setStabilityFl
3d4c0 61 67 73 28 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 68 ags(array.$stabilityFlags).{.$th
3d4e0 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 is->stabilityFlags.=.$stabilityF
3d500 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 lags;.}.....public.function.getS
3d520 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tabilityFlags().{.return.$this->
3d540 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 stabilityFlags;.}.......public.f
3d560 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 unction.setReferences(array.$ref
3d580 65 72 65 6e 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 erences).{.$this->references.=.$
3d5a0 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f references;.}.....public.functio
3d5c0 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 n.getReferences().{.return.$this
3d5e0 2d 3e 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ->references;.}.}.<?php.........
3d600 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a ...namespace.Composer\Package;..
3d620 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 use.Composer\Package\Version\Ver
3d640 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 20 sionParser;.......class.Package.
3d660 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 extends.BasePackage.{.protected.
3d680 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 44 69 72 3b 0a 70 72 6f $type;.protected.$targetDir;.pro
3d6a0 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b 0a 70 72 6f 74 tected.$installationSource;.prot
3d6c0 65 63 74 65 64 20 24 73 6f 75 72 63 65 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f ected.$sourceType;.protected.$so
3d6e0 75 72 63 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 urceUrl;.protected.$sourceRefere
3d700 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 nce;.protected.$distType;.protec
3d720 74 65 64 20 24 64 69 73 74 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 52 65 66 ted.$distUrl;.protected.$distRef
3d740 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 53 68 61 31 43 68 65 63 6b erence;.protected.$distSha1Check
3d760 73 75 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 sum;.protected.$version;.protect
3d780 65 64 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 ed.$prettyVersion;.protected.$re
3d7a0 6c 65 61 73 65 44 61 74 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 20 3d 20 61 72 leaseDate;.protected.$extra.=.ar
3d7c0 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 ray();.protected.$binaries.=.arr
3d7e0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 ay();.protected.$aliases.=.array
3d800 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 ();.protected.$alias;.protected.
3d820 24 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a 70 72 $prettyAlias;.protected.$dev;.pr
3d840 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$stability;..protected.$
3d860 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 requires.=.array();.protected.$c
3d880 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 onflicts.=.array();.protected.$p
3d8a0 72 6f 76 69 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 rovides.=.array();.protected.$re
3d8c0 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 places.=.array();.protected.$dev
3d8e0 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 Requires.=.array();.protected.$s
3d900 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 uggests.=.array();.protected.$au
3d920 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 63 toload.=.array();.protected.$inc
3d940 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ludePaths.=.array();.........pub
3d960 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 lic.function.__construct($name,.
3d980 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 $version,.$prettyVersion).{.pare
3d9a0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e nt::__construct($name);..$this->
3d9c0 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 version.=.$version;.$this->prett
3d9e0 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 yVersion.=.$prettyVersion;..$thi
3da00 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 s->stability.=.VersionParser::pa
3da20 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 rseStability($version);.$this->d
3da40 65 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b ev.=.$this->stability.===.'dev';
3da60 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b .}.....public.function.isDev().{
3da80 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .return.$this->dev;.}.....public
3daa0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 .function.setType($type).{.$this
3dac0 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ->type.=.$type;.}.....public.fun
3dae0 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ction.getType().{.return.$this->
3db00 74 79 70 65 20 3f 3a 20 27 6c 69 62 72 61 72 79 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 type.?:.'library';.}.....public.
3db20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e function.getStability().{.return
3db40 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this->stability;.}.....public.
3db60 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 function.setTargetDir($targetDir
3db80 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 ).{.$this->targetDir.=.$targetDi
3dba0 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 r;.}.....public.function.getTarg
3dbc0 65 74 44 69 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 etDir().{.if.(null.===.$this->ta
3dbe0 72 67 65 74 44 69 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6c 74 72 rgetDir).{.return;.}..return.ltr
3dc00 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 20 28 3f 3a 5e 7c 5b 5c 5c 5c 5c 2f 5d 2b im(preg_replace('{.(?:^|[\\\\/]+
3dc20 29 20 5c 2e 5c 2e 3f 20 28 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 28 3f 3a 5c 2e 5c 2e 3f 20 ).\.\.?.(?:[\\\\/]+|$).(?:\.\.?.
3dc40 28 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 29 2a 7d 78 27 2c 20 27 2f 27 2c 20 24 74 68 69 73 (?:[\\\\/]+|$).)*}x',.'/',.$this
3dc60 2d 3e 74 61 72 67 65 74 44 69 72 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ->targetDir),.'/');.}.....public
3dc80 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 .function.setExtra(array.$extra)
3dca0 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 20 3d 20 24 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a .{.$this->extra.=.$extra;.}.....
3dcc0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 public.function.getExtra().{.ret
3dce0 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 urn.$this->extra;.}.....public.f
3dd00 75 6e 63 74 69 6f 6e 20 73 65 74 42 69 6e 61 72 69 65 73 28 61 72 72 61 79 20 24 62 69 6e 61 72 unction.setBinaries(array.$binar
3dd20 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 20 3d 20 24 62 69 6e 61 72 69 ies).{.$this->binaries.=.$binari
3dd40 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e es;.}.....public.function.getBin
3dd60 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 aries().{.return.$this->binaries
3dd80 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 ;.}.....public.function.setAlias
3dda0 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 es(array.$aliases).{.$this->alia
3ddc0 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ses.=.$aliases;.}.....public.fun
3dde0 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getAliases().{.return.$thi
3de00 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s->aliases;.}.....public.functio
3de20 6e 20 73 65 74 41 6c 69 61 73 28 24 61 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 n.setAlias($alias).{.$this->alia
3de40 73 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s.=.$alias;.}.....public.functio
3de60 6e 20 67 65 74 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 n.getAlias().{.return.$this->ali
3de80 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 as;.}.....public.function.setPre
3dea0 74 74 79 41 6c 69 61 73 28 24 70 72 65 74 74 79 41 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e ttyAlias($prettyAlias).{.$this->
3dec0 70 72 65 74 74 79 41 6c 69 61 73 20 3d 20 24 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a prettyAlias.=.$prettyAlias;.}...
3dee0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 ..public.function.getPrettyAlias
3df00 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 61 73 3b 0a ().{.return.$this->prettyAlias;.
3df20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c }.....public.function.setInstall
3df40 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 ationSource($type).{.$this->inst
3df60 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 allationSource.=.$type;.}.....pu
3df80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 blic.function.getInstallationSou
3dfa0 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 rce().{.return.$this->installati
3dfc0 6f 6e 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 onSource;.}.....public.function.
3dfe0 73 65 74 53 6f 75 72 63 65 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f setSourceType($type).{.$this->so
3e000 75 72 63 65 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 urceType.=.$type;.}.....public.f
3e020 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e unction.getSourceType().{.return
3e040 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$this->sourceType;.}.....public
3e060 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 .function.setSourceUrl($url).{.$
3e080 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 this->sourceUrl.=.$url;.}.....pu
3e0a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 blic.function.getSourceUrl().{.r
3e0c0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 eturn.$this->sourceUrl;.}.....pu
3e0e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 blic.function.setSourceReference
3e100 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 ($reference).{.$this->sourceRefe
3e120 72 65 6e 63 65 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rence.=.$reference;.}.....public
3e140 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b .function.getSourceReference().{
3e160 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a .return.$this->sourceReference;.
3e180 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 }.....public.function.setDistTyp
3e1a0 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 e($type).{.$this->distType.=.$ty
3e1c0 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 pe;.}.....public.function.getDis
3e1e0 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 tType().{.return.$this->distType
3e200 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 ;.}.....public.function.setDistU
3e220 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c rl($url).{.$this->distUrl.=.$url
3e240 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 ;.}.....public.function.getDistU
3e260 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a rl().{.return.$this->distUrl;.}.
3e280 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 ....public.function.setDistRefer
3e2a0 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 ence($reference).{.$this->distRe
3e2c0 66 65 72 65 6e 63 65 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ference.=.$reference;.}.....publ
3e2e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b ic.function.getDistReference().{
3e300 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a .return.$this->distReference;.}.
3e320 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 ....public.function.setDistSha1C
3e340 68 65 63 6b 73 75 6d 28 24 73 68 61 31 63 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e hecksum($sha1checksum).{.$this->
3e360 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d distSha1Checksum.=.$sha1checksum
3e380 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 ;.}.....public.function.getDistS
3e3a0 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 ha1Checksum().{.return.$this->di
3e3c0 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e stSha1Checksum;.}.....public.fun
3e3e0 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getVersion().{.return.$thi
3e400 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s->version;.}.....public.functio
3e420 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 n.getPrettyVersion().{.return.$t
3e440 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c his->prettyVersion;.}.......publ
3e460 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 5c 44 61 74 65 ic.function.setReleaseDate(\Date
3e480 54 69 6d 65 20 24 72 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 Time.$releaseDate).{.$this->rele
3e4a0 61 73 65 44 61 74 65 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 aseDate.=.$releaseDate;.}.....pu
3e4c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b blic.function.getReleaseDate().{
3e4e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a .return.$this->releaseDate;.}...
3e500 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 ....public.function.setRequires(
3e520 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 array.$requires).{.$this->requir
3e540 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e es.=.$requires;.}.....public.fun
3e560 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getRequires().{.return.$th
3e580 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e is->requires;.}.......public.fun
3e5a0 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c 69 ction.setConflicts(array.$confli
3e5c0 63 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 6c cts).{.$this->conflicts.=.$confl
3e5e0 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 icts;.}.....public.function.getC
3e600 6f 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c onflicts().{.return.$this->confl
3e620 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 icts;.}.......public.function.se
3e640 74 50 72 6f 76 69 64 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 68 tProvides(array.$provides).{.$th
3e660 69 73 2d 3e 70 72 6f 76 69 64 65 73 20 3d 20 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a is->provides.=.$provides;.}.....
3e680 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a public.function.getProvides().{.
3e6a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a return.$this->provides;.}.......
3e6c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 61 public.function.setReplaces(arra
3e6e0 79 20 24 72 65 70 6c 61 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 3d y.$replaces).{.$this->replaces.=
3e700 20 24 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$replaces;.}.....public.functio
3e720 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getReplaces().{.return.$this->
3e740 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f replaces;.}.......public.functio
3e760 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 n.setDevRequires(array.$devRequi
3e780 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 76 res).{.$this->devRequires.=.$dev
3e7a0 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Requires;.}.....public.function.
3e7c0 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getDevRequires().{.return.$this-
3e7e0 3e 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >devRequires;.}.......public.fun
3e800 63 74 69 6f 6e 20 73 65 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 74 ction.setSuggests(array.$suggest
3e820 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 73 s).{.$this->suggests.=.$suggests
3e840 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 ;.}.....public.function.getSugge
3e860 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b 0a sts().{.return.$this->suggests;.
3e880 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c }.......public.function.setAutol
3e8a0 6f 61 64 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 oad(array.$autoload).{.$this->au
3e8c0 74 6f 6c 6f 61 64 20 3d 20 24 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 toload.=.$autoload;.}.....public
3e8e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getAutoload().{.return
3e900 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$this->autoload;.}.......public
3e920 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 20 .function.setIncludePaths(array.
3e940 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 $includePaths).{.$this->includeP
3e960 61 74 68 73 20 3d 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c aths.=.$includePaths;.}.....publ
3e980 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a ic.function.getIncludePaths().{.
3e9a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 7d 0a return.$this->includePaths;.}.}.
3e9c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
3e9e0 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ser\Package;..use.Composer\Packa
3ea00 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 ge\LinkConstraint\VersionConstra
3ea20 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f int;.use.Composer\Package\Versio
3ea40 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 6c 69 61 73 n\VersionParser;.....class.Alias
3ea60 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c Package.extends.BasePackage.impl
3ea80 65 6d 65 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a ements.CompletePackageInterface.
3eaa0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 {.protected.$version;.protected.
3eac0 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a $prettyVersion;.protected.$dev;.
3eae0 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 4f 66 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 protected.$aliasOf;.protected.$r
3eb00 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 ootPackageAlias.=.false;.protect
3eb20 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 ed.$stability;..protected.$requi
3eb40 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 70 72 6f 74 65 res;.protected.$conflicts;.prote
3eb60 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6c 61 cted.$provides;.protected.$repla
3eb80 63 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 63 6f 6d 6d 65 6e 64 73 3b 0a 70 72 6f 74 ces;.protected.$recommends;.prot
3eba0 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ected.$suggests;.........public.
3ebc0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 function.__construct(PackageInte
3ebe0 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 rface.$aliasOf,.$version,.$prett
3ec00 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 yVersion).{.parent::__construct(
3ec20 24 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 $aliasOf->getName());..$this->ve
3ec40 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 rsion.=.$version;.$this->prettyV
3ec60 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e ersion.=.$prettyVersion;.$this->
3ec80 61 6c 69 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 aliasOf.=.$aliasOf;.$this->stabi
3eca0 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 lity.=.VersionParser::parseStabi
3ecc0 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 lity($version);.$this->dev.=.$th
3ece0 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 0a 0a 20 66 6f 72 65 is->stability.===.'dev';....fore
3ed00 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 64 65 76 52 65 71 75 69 ach.(array('requires',.'devRequi
3ed20 72 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 res').as.$type).{.$links.=.$alia
3ed40 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 66 sOf->{'get'.ucfirst($type)}();.f
3ed60 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6c 69 6e oreach.($links.as.$index.=>.$lin
3ed80 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c k).{...if.('self.version'.===.$l
3eda0 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6c ink->getPrettyConstraint()).{.$l
3edc0 69 6e 6b 73 5b 24 69 6e 64 65 78 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 inks[$index].=.new.Link($link->g
3ede0 65 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 etSource(),.$link->getTarget(),.
3ee00 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 new.VersionConstraint('=',.$this
3ee20 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f ->version),.$type,.$prettyVersio
3ee40 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 24 6c 69 6e 6b 73 3b 0a 7d n);.}.}.$this->$type.=.$links;.}
3ee60 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 ....foreach.(array('conflicts',.
3ee80 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 63 65 73 27 29 20 61 73 20 24 74 79 70 65 'provides',.'replaces').as.$type
3eea0 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 ).{.$links.=.$aliasOf->{'get'.uc
3eec0 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 24 6e 65 77 4c 69 6e 6b 73 20 3d 20 61 72 72 first($type)}();.$newLinks.=.arr
3eee0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 ay();.foreach.($links.as.$link).
3ef00 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b {...if.('self.version'.===.$link
3ef20 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6e 65 77 4c ->getPrettyConstraint()).{.$newL
3ef40 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 inks[].=.new.Link($link->getSour
3ef60 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 56 65 ce(),.$link->getTarget(),.new.Ve
3ef80 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 rsionConstraint('=',.$this->vers
3efa0 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a ion),.$type,.$prettyVersion);.}.
3efc0 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 }.$this->$type.=.array_merge($li
3efe0 6e 6b 73 2c 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e nks,.$newLinks);.}.}..public.fun
3f000 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 4f 66 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getAliasOf().{.return.$thi
3f020 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s->aliasOf;.}.....public.functio
3f040 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 n.getVersion().{.return.$this->v
3f060 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ersion;.}.....public.function.ge
3f080 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 tStability().{.return.$this->sta
3f0a0 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 bility;.}.....public.function.ge
3f0c0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tPrettyVersion().{.return.$this-
3f0e0 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >prettyVersion;.}.....public.fun
3f100 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 ction.isDev().{.return.$this->de
3f120 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 v;.}.....public.function.getRequ
3f140 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b ires().{.return.$this->requires;
3f160 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 .}.....public.function.getConfli
3f180 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b cts().{.return.$this->conflicts;
3f1a0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 .}.....public.function.getProvid
3f1c0 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d es().{.return.$this->provides;.}
3f1e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 .....public.function.getReplaces
3f200 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a ().{.return.$this->replaces;.}..
3f220 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 ...public.function.getDevRequire
3f240 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b s().{.return.$this->devRequires;
3f260 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f .}.........public.function.setRo
3f280 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 otPackageAlias($value).{.return.
3f2a0 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 76 61 6c 75 65 $this->rootPackageAlias.=.$value
3f2c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 6f 6f 74 50 ;.}......public.function.isRootP
3f2e0 61 63 6b 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f ackageAlias().{.return.$this->ro
3f300 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e otPackageAlias;.}.....public.fun
3f320 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a ction.getAlias().{.return.'';.}.
3f340 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 41 6c 69 ....public.function.getPrettyAli
3f360 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 as().{.return.'';.}......public.
3f380 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getType().{.return.$thi
3f3a0 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 s->aliasOf->getType();.}.public.
3f3c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e function.getTargetDir().{.return
3f3e0 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b .$this->aliasOf->getTargetDir();
3f400 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a .}.public.function.getExtra().{.
3f420 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 45 78 74 72 61 28 return.$this->aliasOf->getExtra(
3f440 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 );.}.public.function.setInstalla
3f460 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 tionSource($type).{.$this->alias
3f480 4f 66 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 Of->setInstallationSource($type)
3f4a0 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 ;.}.public.function.getInstallat
3f4c0 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 ionSource().{.return.$this->alia
3f4e0 73 4f 66 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 7d 0a sOf->getInstallationSource();.}.
3f500 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a public.function.getSourceType().
3f520 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 {.return.$this->aliasOf->getSour
3f540 63 65 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 ceType();.}.public.function.getS
3f560 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 ourceUrl().{.return.$this->alias
3f580 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e Of->getSourceUrl();.}.public.fun
3f5a0 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 ction.getSourceReference().{.ret
3f5c0 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 urn.$this->aliasOf->getSourceRef
3f5e0 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 erence();.}.public.function.setS
3f600 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 ourceReference($reference).{.ret
3f620 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 urn.$this->aliasOf->setSourceRef
3f640 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e erence($reference);.}.public.fun
3f660 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getDistType().{.return.$th
3f680 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 is->aliasOf->getDistType();.}.pu
3f6a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 blic.function.getDistUrl().{.ret
3f6c0 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 urn.$this->aliasOf->getDistUrl()
3f6e0 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 ;.}.public.function.getDistRefer
3f700 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e ence().{.return.$this->aliasOf->
3f720 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e getDistReference();.}.public.fun
3f740 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 ction.getDistSha1Checksum().{.re
3f760 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 53 68 61 31 turn.$this->aliasOf->getDistSha1
3f780 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Checksum();.}.public.function.ge
3f7a0 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 tScripts().{.return.$this->alias
3f7c0 4f 66 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Of->getScripts();.}.public.funct
3f7e0 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b ion.setAliases(array.$aliases).{
3f800 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 41 6c 69 61 73 .return.$this->aliasOf->setAlias
3f820 65 73 28 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 es($aliases);.}.public.function.
3f840 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 getAliases().{.return.$this->ali
3f860 61 73 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e asOf->getAliases();.}.public.fun
3f880 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getLicense().{.return.$thi
3f8a0 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 7d 0a 70 75 62 6c s->aliasOf->getLicense();.}.publ
3f8c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 ic.function.getAutoload().{.retu
3f8e0 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 rn.$this->aliasOf->getAutoload()
3f900 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 ;.}.public.function.getIncludePa
3f920 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 ths().{.return.$this->aliasOf->g
3f940 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 etIncludePaths();.}.public.funct
3f960 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion.getRepositories().{.return.$
3f980 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 this->aliasOf->getRepositories()
3f9a0 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 ;.}.public.function.getReleaseDa
3f9c0 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 te().{.return.$this->aliasOf->ge
3f9e0 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tReleaseDate();.}.public.functio
3fa00 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getBinaries().{.return.$this->
3fa20 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 aliasOf->getBinaries();.}.public
3fa40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getKeywords().{.return
3fa60 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a .$this->aliasOf->getKeywords();.
3fa80 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e }.public.function.getDescription
3faa0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 ().{.return.$this->aliasOf->getD
3fac0 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 escription();.}.public.function.
3fae0 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c getHomepage().{.return.$this->al
3fb00 69 61 73 4f 66 2d 3e 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 iasOf->getHomepage();.}.public.f
3fb20 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 unction.getSuggests().{.return.$
3fb40 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 7d 0a this->aliasOf->getSuggests();.}.
3fb60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 public.function.getAuthors().{.r
3fb80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 68 6f 72 73 eturn.$this->aliasOf->getAuthors
3fba0 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 ();.}.public.function.getSupport
3fbc0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 ().{.return.$this->aliasOf->getS
3fbe0 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f upport();.}.public.function.__to
3fc00 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 5f 5f 74 6f 53 74 String().{.return.parent::__toSt
3fc20 72 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 61 6c 69 61 ring().'.(alias.of.'.$this->alia
3fc40 73 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 sOf->getVersion().')';.}.}.<?php
3fc60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ............namespace.Composer\P
3fc80 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 ackage;..use.Composer\Package\Li
3fca0 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 nkConstraint\LinkConstraintInter
3fcc0 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 face;.use.Composer\Package\Packa
3fce0 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 6e 6b 0a 7b 0a geInterface;.......class.Link.{.
3fd00 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 protected.$source;.protected.$ta
3fd20 72 67 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 6f rget;.protected.$constraint;.pro
3fd40 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 tected.$description;.protected.$
3fd60 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c prettyConstraint;...........publ
3fd80 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 2c ic.function.__construct($source,
3fda0 20 24 74 61 72 67 65 74 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 .$target,.LinkConstraintInterfac
3fdc0 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 e.$constraint.=.null,.$descripti
3fde0 6f 6e 20 3d 20 27 72 65 6c 61 74 65 73 20 74 6f 27 2c 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 on.=.'relates.to',.$prettyConstr
3fe00 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 20 3d 20 73 aint.=.null).{.$this->source.=.s
3fe20 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 trtolower($source);.$this->targe
3fe40 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e t.=.strtolower($target);.$this->
3fe60 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d constraint.=.$constraint;.$this-
3fe80 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 >description.=.$description;.$th
3fea0 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 72 65 74 74 79 43 6f is->prettyConstraint.=.$prettyCo
3fec0 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 nstraint;.}..public.function.get
3fee0 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 3b Source().{.return.$this->source;
3ff00 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a .}..public.function.getTarget().
3ff20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 70 75 62 6c 69 {.return.$this->target;.}..publi
3ff40 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 c.function.getConstraint().{.ret
3ff60 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 urn.$this->constraint;.}..public
3ff80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a .function.getPrettyConstraint().
3ffa0 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 {.if.(null.===.$this->prettyCons
3ffc0 74 72 61 69 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 traint).{.throw.new.\UnexpectedV
3ffe0 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 69 6e 6b 20 25 73 20 68 alueException(sprintf('Link.%s.h
40000 61 73 20 62 65 65 6e 20 6d 69 73 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 20 68 61 64 20 6e 6f as.been.misconfigured.and.had.no
40020 20 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 67 69 76 65 6e 2e 27 2c 20 24 74 68 69 73 .prettyConstraint.given.',.$this
40040 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 ));.}..return.$this->prettyConst
40060 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 raint;.}..public.function.__toSt
40080 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 2e 27 20 ring().{.return.$this->source.'.
400a0 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e '.$this->description.'.'.$this->
400c0 74 61 72 67 65 74 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2e 27 29 target.'.('.$this->constraint.')
400e0 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 ';.}..public.function.getPrettyS
40100 74 72 69 6e 67 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 50 61 tring(PackageInterface.$sourcePa
40120 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 2d 3e ckage).{.return.$sourcePackage->
40140 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 getPrettyString().'.'.$this->des
40160 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 27 2e 24 cription.'.'.$this->target.'.'.$
40180 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e this->constraint->getPrettyStrin
401a0 67 28 29 2e 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d g().'';.}.}.<?php............nam
401c0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 espace.Composer\Package\LinkCons
401e0 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 traint;.......class.MultiConstra
40200 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 int.implements.LinkConstraintInt
40220 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b erface.{.protected.$constraints;
40240 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 0a 0a 0a 0a 0a .protected.$prettyString;.......
40260 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 public.function.__construct(arra
40280 79 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 y.$constraints).{.$this->constra
402a0 69 6e 74 73 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ints.=.$constraints;.}..public.f
402c0 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e unction.matches(LinkConstraintIn
402e0 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 terface.$provider).{.foreach.($t
40300 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 his->constraints.as.$constraint)
40320 20 7b 0a 69 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 .{.if.(!$constraint->matches($pr
40340 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 ovider)).{.return.false;.}.}..re
40360 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 turn.true;.}..public.function.se
40380 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 tPrettyString($prettyString).{.$
403a0 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 this->prettyString.=.$prettyStri
403c0 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 ng;.}..public.function.getPretty
403e0 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 String().{.if.($this->prettyStri
40400 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 ng).{.return.$this->prettyString
40420 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b ;.}..return.$this->__toString();
40440 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 .}..public.function.__toString()
40460 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 .{.$constraints.=.array();.forea
40480 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 ch.($this->constraints.as.$const
404a0 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 raint).{.$constraints[].=.$const
404c0 72 61 69 6e 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 raint->__toString();.}..return.'
404e0 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 2e 27 ['.implode(',.',.$constraints).'
40500 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ]';.}.}.<?php............namespa
40520 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 ce.Composer\Package\LinkConstrai
40540 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 nt;.........class.VersionConstra
40560 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 0a 7b int.extends.SpecificConstraint.{
40580 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 .private.$operator;.private.$ver
405a0 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 sion;........public.function.__c
405c0 6f 6e 73 74 72 75 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a onstruct($operator,.$version).{.
405e0 69 66 20 28 27 3d 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 if.('='.===.$operator).{.$operat
40600 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 27 3c 3e 27 20 3d 3d 3d 20 24 6f 70 65 72 or.=.'==';.}..if.('<>'.===.$oper
40620 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 21 3d 27 3b 0a 7d 0a 0a 24 74 68 ator).{.$operator.=.'!=';.}..$th
40640 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 24 74 68 69 73 2d is->operator.=.$operator;.$this-
40660 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 >version.=.$version;.}..public.f
40680 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 unction.versionCompare($a,.$b,.$
406a0 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 operator).{.if.('dev-'.===.subst
406c0 72 28 24 61 2c 20 30 2c 20 34 29 20 26 26 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 r($a,.0,.4).&&.'dev-'.===.substr
406e0 28 24 62 2c 20 30 2c 20 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 6f 72 20 3d ($b,.0,.4)).{.return.$operator.=
40700 3d 20 27 3d 3d 27 20 26 26 20 24 61 20 3d 3d 3d 20 24 62 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 76 =.'=='.&&.$a.===.$b;.}..return.v
40720 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 ersion_compare($a,.$b,.$operator
40740 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 53 );.}......public.function.matchS
40760 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 69 pecific(VersionConstraint.$provi
40780 64 65 72 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 der).{.$noEqualOp.=.str_replace(
407a0 27 3d 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 24 70 72 6f 76 '=',.'',.$this->operator);.$prov
407c0 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c iderNoEqualOp.=.str_replace('=',
407e0 20 27 27 2c 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 0a 24 69 73 45 .'',.$provider->operator);..$isE
40800 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f qualOp.=.'=='.===.$this->operato
40820 72 3b 0a 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 74 68 69 r;.$isNonEqualOp.=.'!='.===.$thi
40840 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 20 s->operator;.$isProviderEqualOp.
40860 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a =.'=='.===.$provider->operator;.
40880 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d $isProviderNonEqualOp.=.'!='.===
408a0 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 .$provider->operator;......if.($
408c0 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 isNonEqualOp.||.$isProviderNonEq
408e0 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c 4f 70 20 26 26 20 21 ualOp).{.return.!$isEqualOp.&&.!
40900 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 69 73 2d 3e 76 65 72 $isProviderEqualOp.||.$this->ver
40920 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 sionCompare($provider->version,.
40940 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 27 21 3d 27 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 $this->version,.'!=');.}......if
40960 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d 27 20 26 26 20 24 6e 6f .($this->operator.!=.'=='.&&.$no
40980 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 29 20 7b EqualOp.==.$providerNoEqualOp).{
409a0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 .return.true;.}..if.($this->vers
409c0 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 ionCompare($provider->version,.$
409e0 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 29 this->version,.$this->operator))
40a00 20 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d .{.....if.($provider->version.==
40a20 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 .$this->version.&&.$provider->op
40a40 65 72 61 74 6f 72 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 26 26 20 erator.==.$providerNoEqualOp.&&.
40a60 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 61 6c 4f 70 29 20 7b $this->operator.!=.$noEqualOp).{
40a80 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d .return.false;.}..return.true;.}
40aa0 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ..return.false;.}..public.functi
40ac0 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.__toString().{.return.$this->
40ae0 6f 70 65 72 61 74 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d operator.'.'.$this->version;.}.}
40b00 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
40b20 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a oser\Package\LinkConstraint;....
40b40 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 ...abstract.class.SpecificConstr
40b60 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e aint.implements.LinkConstraintIn
40b80 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e terface.{.protected.$prettyStrin
40ba0 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b g;..public.function.matches(Link
40bc0 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b ConstraintInterface.$provider).{
40be0 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 4d 75 6c 74 69 43 .if.($provider.instanceof.MultiC
40c00 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d onstraint).{...return.$provider-
40c20 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 6f 76 >matches($this);.}.elseif.($prov
40c40 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 20 7b 0a 72 65 74 75 72 6e 20 ider.instanceof.$this).{.return.
40c60 24 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 29 3b $this->matchSpecific($provider);
40c80 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .}..return.true;.}..public.funct
40ca0 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e ion.setPrettyString($prettyStrin
40cc0 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 g).{.$this->prettyString.=.$pret
40ce0 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 tyString;.}..public.function.get
40d00 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 PrettyString().{.if.($this->pret
40d20 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 tyString).{.return.$this->pretty
40d40 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 String;.}..return.$this->__toStr
40d60 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ing();.}........}.<?php.........
40d80 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 ...namespace.Composer\Package\Li
40da0 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 69 nkConstraint;.......interface.Li
40dc0 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 nkConstraintInterface.{.public.f
40de0 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e unction.matches(LinkConstraintIn
40e00 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 terface.$provider);.public.funct
40e20 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e ion.setPrettyString($prettyStrin
40e40 67 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 g);.public.function.getPrettyStr
40e60 69 6e 67 28 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e ing();.public.function.__toStrin
40e80 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 g();.}.<?php............namespac
40ea0 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 e.Composer;..use.Composer\IO\IOI
40ec0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 61 63 68 65 0a 7b 0a 70 72 nterface;.......class.Cache.{.pr
40ee0 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 3b 0a 70 72 69 76 61 74 ivate.$io;.private.$root;.privat
40f00 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 e.$enabled.=.true;..public.funct
40f20 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c ion.__construct(IOInterface.$io,
40f40 20 24 63 61 63 68 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 .$cacheDir).{.$this->io.=.$io;.$
40f60 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 74 72 69 6d 28 24 63 61 63 68 65 44 69 72 2c 20 27 2f this->root.=.rtrim($cacheDir,.'/
40f80 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e \\')...'/';..if.(!is_dir($this->
40fa0 72 6f 6f 74 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 root)).{.if.(!@mkdir($this->root
40fc0 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 ,.0777,.true)).{.$this->enabled.
40fe0 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 =.false;.}.}.}..public.function.
41000 67 65 74 52 6f 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 3b 0a getRoot().{.return.$this->root;.
41020 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 66 69 6c 65 29 0a 7b }..public.function.read($file).{
41040 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 .$file.=.preg_replace('{[^a-z0-9
41060 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 .]}i',.'-',.$file);.if.($this->e
41080 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f nabled.&&.file_exists($this->roo
410a0 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 67 65 74 5f 63 6f t...$file)).{.return.file_get_co
410c0 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d ntents($this->root...$file);.}.}
410e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 66 69 6c 65 2c 20 24 ..public.function.write($file,.$
41100 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 contents).{.if.($this->enabled).
41120 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d {.$file.=.preg_replace('{[^a-z0-
41140 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 9.]}i',.'-',.$file);.file_put_co
41160 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 20 24 63 6f 6e ntents($this->root...$file,.$con
41180 74 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 tents);.}.}..public.function.sha
411a0 31 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 1($file).{.$file.=.preg_replace(
411c0 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 '{[^a-z0-9.]}i',.'-',.$file);.if
411e0 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 .($this->enabled.&&.file_exists(
41200 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 $this->root...$file)).{.return.s
41220 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d ha1_file($this->root...$file);.}
41240 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 32 35 36 28 24 66 69 6c 65 .}..public.function.sha256($file
41260 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a ).{.$file.=.preg_replace('{[^a-z
41280 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 0-9.]}i',.'-',.$file);.if.($this
412a0 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e ->enabled.&&.file_exists($this->
412c0 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 68 61 73 68 5f 66 69 6c root...$file)).{.return.hash_fil
412e0 65 28 27 73 68 61 32 35 36 27 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 e('sha256',.$this->root...$file)
41300 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ;.}.}.}.<?php............namespa
41320 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a ce.Composer\DependencyResolver;.
41340 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 .use.Composer\Package\PackageInt
41360 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6f 6c 69 63 79 49 6e 74 65 erface;.....interface.PolicyInte
41380 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 rface.{.public.function.versionC
413a0 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b ompare(PackageInterface.$a,.Pack
413c0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 70 75 62 ageInterface.$b,.$operator);.pub
413e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 lic.function.findUpdatePackages(
41400 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c Pool.$pool,.array.$installedMap,
41420 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 70 75 62 .PackageInterface.$package);.pub
41440 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 lic.function.selectPreferedPacka
41460 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 ges(Pool.$pool,.array.$installed
41480 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a Map,.array.$literals);.}.<?php..
414a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
414c0 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 endencyResolver;.....class.RuleS
414e0 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 et.implements.\IteratorAggregate
41500 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 20 63 6f 6e 73 74 20 54 59 50 45 5f 50 41 43 4b ,.\Countable.{...const.TYPE_PACK
41520 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4a 4f 42 20 3d 20 31 3b 0a 63 6f 6e AGE.=.0;.const.TYPE_JOB.=.1;.con
41540 73 74 20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 20 34 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 st.TYPE_LEARNED.=.4;..protected.
41560 73 74 61 74 69 63 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 2d 31 20 3d 3e 20 27 55 4e static.$types.=.array(.-1.=>.'UN
41580 4b 4e 4f 57 4e 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 3e 20 27 50 KNOWN',.self::TYPE_PACKAGE.=>.'P
415a0 41 43 4b 41 47 45 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4a 4f 42 20 3d 3e 20 27 4a 4f 42 27 ACKAGE',.self::TYPE_JOB.=>.'JOB'
415c0 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3e 20 27 4c 45 41 52 4e 45 44 ,.self::TYPE_LEARNED.=>.'LEARNED
415e0 27 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 ',.);..protected.$rules;.protect
41600 65 64 20 24 72 75 6c 65 42 79 49 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 65 78 74 52 75 6c ed.$ruleById;.protected.$nextRul
41620 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 42 79 48 61 73 68 3b 0a 0a 70 eId;..protected.$rulesByHash;..p
41640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 ublic.function.__construct().{.$
41660 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 this->nextRuleId.=.0;..foreach.(
41680 24 74 68 69 73 2d 3e 67 65 74 54 79 70 65 73 28 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 74 $this->getTypes().as.$type).{.$t
416a0 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a his->rules[$type].=.array();.}..
416c0 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a $this->rulesByHash.=.array();.}.
416e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 52 75 6c 65 20 24 72 75 6c 65 2c .public.function.add(Rule.$rule,
41700 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 74 79 70 65 .$type).{.if.(!isset(self::$type
41720 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4f 75 74 4f 66 42 6f 75 s[$type])).{.throw.new.\OutOfBou
41740 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 72 75 6c 65 20 74 79 70 65 3a ndsException('Unknown.rule.type:
41760 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 .'...$type);.}..if.(!isset($this
41780 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b ->rules[$type])).{.$this->rules[
417a0 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 $type].=.array();.}..$this->rule
417c0 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 42 s[$type][].=.$rule;.$this->ruleB
417e0 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 5d 20 3d 20 24 72 75 6c 65 3b 0a yId[$this->nextRuleId].=.$rule;.
41800 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 65 28 24 74 79 70 65 29 3b 0a 0a 24 72 75 6c 65 2d 3e 73 $rule->setType($type);..$rule->s
41820 65 74 49 64 28 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 29 3b 0a 24 74 68 69 73 2d 3e etId($this->nextRuleId);.$this->
41840 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b 0a 0a 24 68 61 73 68 20 3d 20 24 72 75 6c 65 2d 3e 67 65 nextRuleId++;..$hash.=.$rule->ge
41860 74 48 61 73 68 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 tHash();.if.(!isset($this->rules
41880 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 ByHash[$hash])).{.$this->rulesBy
418a0 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 61 79 28 24 72 75 6c 65 29 3b 0a 7d 20 65 6c Hash[$hash].=.array($rule);.}.el
418c0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 5b 5d se.{.$this->rulesByHash[$hash][]
418e0 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 .=.$rule;.}.}..public.function.c
41900 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 ount().{.return.$this->nextRuleI
41920 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6c 65 42 79 49 64 28 24 d;.}..public.function.ruleById($
41940 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 69 64 id).{.return.$this->ruleById[$id
41960 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 28 29 ];.}..public.function.getRules()
41980 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 .{.return.$this->rules;.}..publi
419a0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 c.function.getIterator().{.retur
419c0 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 n.new.RuleSetIterator($this->get
419e0 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 Rules());.}..public.function.get
41a00 49 74 65 72 61 74 6f 72 46 6f 72 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 IteratorFor($types).{.if.(!is_ar
41a20 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 ray($types)).{.$types.=.array($t
41a40 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c 6c 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ypes);.}..$allRules.=.$this->get
41a60 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 Rules();.$rules.=.array();..fore
41a80 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 72 75 6c 65 73 5b 24 ach.($types.as.$type).{.$rules[$
41aa0 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 75 6c 65 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 72 65 74 type].=.$allRules[$type];.}..ret
41ac0 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b urn.new.RuleSetIterator($rules);
41ae0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 57 .}..public.function.getIteratorW
41b00 69 74 68 6f 75 74 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 ithout($types).{.if.(!is_array($
41b20 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 79 70 65 73 29 types)).{.$types.=.array($types)
41b40 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 3b ;.}..$rules.=.$this->getRules();
41b60 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 75 6e ..foreach.($types.as.$type).{.un
41b80 73 65 74 28 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 set($rules[$type]);.}..return.ne
41ba0 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b 0a 7d 0a 0a 70 75 w.RuleSetIterator($rules);.}..pu
41bc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 73 28 29 0a 7b 0a 24 74 79 70 65 blic.function.getTypes().{.$type
41be0 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 70 65 73 3b 0a 75 6e 73 65 74 28 24 74 79 70 65 73 5b 2d s.=.self::$types;.unset($types[-
41c00 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 79 70 65 73 29 3b 1]);..return.array_keys($types);
41c20 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 45 71 75 61 .}..public.function.containsEqua
41c40 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 l($rule).{.if.(isset($this->rule
41c60 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 29 29 20 7b 0a 24 70 sByHash[$rule->getHash()])).{.$p
41c80 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 otentialDuplicates.=.$this->rule
41ca0 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 3b 0a 66 6f 72 65 61 sByHash[$rule->getHash()];.forea
41cc0 63 68 20 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 61 73 20 24 70 6f 74 ch.($potentialDuplicates.as.$pot
41ce0 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e 65 71 entialDuplicate).{.if.($rule->eq
41d00 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 29 20 7b 0a 72 65 74 uals($potentialDuplicate)).{.ret
41d20 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d urn.true;.}.}.}..return.false;.}
41d40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b ..public.function.__toString().{
41d60 0a 24 73 74 72 69 6e 67 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d .$string.=."\n";.foreach.($this-
41d80 3e 72 75 6c 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 72 75 6c 65 73 29 20 7b 0a 24 73 74 >rules.as.$type.=>.$rules).{.$st
41da0 72 69 6e 67 20 2e 3d 20 73 74 72 5f 70 61 64 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 5b 24 74 79 ring..=.str_pad(self::$types[$ty
41dc0 70 65 5d 2c 20 38 2c 20 27 20 27 29 20 2e 20 22 3a 20 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 pe],.8,.'.')...":.";.foreach.($r
41de0 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 24 72 75 6c ules.as.$rule).{.$string..=.$rul
41e00 65 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 72 69 6e 67 20 2e 3d 20 22 5c 6e 5c 6e 22 3b 0a 7d 0a 0a e."\n";.}.$string..=."\n\n";.}..
41e20 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a return.$string;.}.}.<?php.......
41e40 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e .....namespace.Composer\Dependen
41e60 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 42 75 67 45 cyResolver;.....class.SolverBugE
41e80 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 xception.extends.\RuntimeExcepti
41ea0 6f 6e 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 on.{.public.function.__construct
41ec0 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 ($message).{.parent::__construct
41ee0 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c 6e 54 68 69 73 20 65 78 63 65 70 74 69 6f 6e 20 77 61 73 (.$message."\nThis.exception.was
41f00 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 63 61 75 73 65 64 20 62 79 20 61 20 62 75 67 20 69 6e 20 .most.likely.caused.by.a.bug.in.
41f20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e 0a 22 50 6c 65 61 73 65 20 72 65 70 6f 72 74 20 74 68 65 Composer.\n".."Please.report.the
41f40 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 72 61 6e 2c 20 74 68 65 20 65 78 61 63 74 20 65 72 72 6f .command.you.ran,.the.exact.erro
41f60 72 20 79 6f 75 20 72 65 63 65 69 76 65 64 2c 20 61 6e 64 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 r.you.received,.and.your.compose
41f80 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f 6d r.json.on.https://github.com/com
41fa0 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 20 2d 20 74 68 61 6e 6b 20 79 6f poser/composer/issues.-.thank.yo
41fc0 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d u!\n");.}.}.<?php............nam
41fe0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 espace.Composer\DependencyResolv
42000 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 er;..use.Composer\Package\Packag
42020 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
42040 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b \AliasPackage;.use.Composer\Pack
42060 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 age\LinkConstraint\VersionConstr
42080 61 69 6e 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 20 69 6d aint;.....class.DefaultPolicy.im
420a0 70 6c 65 6d 65 6e 74 73 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 plements.PolicyInterface.{.publi
420c0 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 c.function.versionCompare(Packag
420e0 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 eInterface.$a,.PackageInterface.
42100 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e $b,.$operator).{.$constraint.=.n
42120 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 ew.VersionConstraint($operator,.
42140 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 65 $b->getVersion());.$version.=.ne
42160 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 61 2d 3e 67 65 w.VersionConstraint('==',.$a->ge
42180 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 tVersion());..return.$constraint
421a0 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 70 75 ->matchSpecific($version);.}..pu
421c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 blic.function.findUpdatePackages
421e0 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 (Pool.$pool,.array.$installedMap
42200 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 ,.PackageInterface.$package).{.$
42220 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 packages.=.array();..foreach.($p
42240 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e ool->whatProvides($package->getN
42260 61 6d 65 28 29 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e ame()).as.$candidate).{.if.($can
42280 64 69 64 61 74 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 didate.!==.$package).{.$packages
422a0 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 [].=.$candidate;.}.}..return.$pa
422c0 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 ckages;.}..public.function.getPr
422e0 69 6f 72 69 74 79 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 iority(Pool.$pool,.PackageInterf
42300 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 ace.$package).{.return.$pool->ge
42320 74 50 72 69 6f 72 69 74 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 tPriority($package->getRepositor
42340 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 y());.}..public.function.selectP
42360 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 referedPackages(Pool.$pool,.arra
42380 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 y.$installedMap,.array.$literals
423a0 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 72 6f 75 70 4c 69 74 65 ).{.$packages.=.$this->groupLite
423c0 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c ralsByNamePreferInstalled($pool,
423e0 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 66 6f 72 .$installedMap,.$literals);..for
42400 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b each.($packages.as.&$literals).{
42420 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 3b 0a 75 73 6f 72 74 28 24 6c 69 74 65 72 61 6c .$policy.=.$this;.usort($literal
42440 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c 69 63 s,.function.($a,.$b).use.($polic
42460 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 20 7b 0a 72 65 74 75 72 y,.$pool,.$installedMap).{.retur
42480 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 n.$policy->compareByPriorityPref
424a0 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 erInstalled($pool,.$installedMap
424c0 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 61 29 2c 20 24 ,.$pool->literalToPackage($a),.$
424e0 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 74 72 75 65 pool->literalToPackage($b),.true
42500 29 3b 0a 7d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 );.});.}..foreach.($packages.as.
42520 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d &$literals).{.$literals.=.$this-
42540 3e 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 >pruneToBestVersion($pool,.$lite
42560 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 rals);..$literals.=.$this->prune
42580 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f ToHighestPriorityOrInstalled($po
425a0 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a ol,.$installedMap,.$literals);..
425c0 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c $literals.=.$this->pruneRemoteAl
425e0 69 61 73 65 73 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c iases($pool,.$literals);.}..$sel
42600 65 63 74 65 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 ected.=.call_user_func_array('ar
42620 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 ray_merge',.$packages);....usort
42640 28 24 73 65 6c 65 63 74 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 ($selected,.function.($a,.$b).us
42660 65 20 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 e.($policy,.$pool,.$installedMap
42680 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 ).{.return.$policy->compareByPri
426a0 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 orityPreferInstalled($pool,.$ins
426c0 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 talledMap,.$pool->literalToPacka
426e0 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 ge($a),.$pool->literalToPackage(
42700 24 62 29 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a $b));.});..return.$selected;.}..
42720 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 protected.function.groupLiterals
42740 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c ByNamePreferInstalled(Pool.$pool
42760 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 ,.array.$installedMap,.$literals
42780 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ).{.$packages.=.array();.foreach
427a0 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b .($literals.as.$literal).{.$pack
427c0 61 67 65 4e 61 6d 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 ageName.=.$pool->literalToPackag
427e0 65 28 24 6c 69 74 65 72 61 6c 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 e($literal)->getName();..if.(!is
42800 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 29 20 7b 0a set($packages[$packageName])).{.
42820 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 $packages[$packageName].=.array(
42840 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 );.}..if.(isset($installedMap[ab
42860 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 s($literal)])).{.array_unshift($
42880 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 65 72 61 6c packages[$packageName],.$literal
428a0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 );.}.else.{.$packages[$packageNa
428c0 6d 65 5d 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 me][].=.$literal;.}.}..return.$p
428e0 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 ackages;.}..public.function.comp
42900 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f areByPriorityPreferInstalled(Poo
42920 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 l.$pool,.array.$installedMap,.Pa
42940 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ckageInterface.$a,.PackageInterf
42960 61 63 65 20 24 62 2c 20 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a ace.$b,.$ignoreReplace.=.false).
42980 7b 0a 69 66 20 28 24 61 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 {.if.($a->getRepository().===.$b
429a0 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 ->getRepository()).{...if.($a->g
429c0 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 etName().===.$b->getName()).{.$a
429e0 41 6c 69 61 73 65 64 20 3d 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 Aliased.=.$a.instanceof.AliasPac
42a00 6b 61 67 65 3b 0a 24 62 41 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 kage;.$bAliased.=.$b.instanceof.
42a20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 AliasPackage;.if.($aAliased.&&.!
42a40 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 $bAliased).{.return.-1;...}.if.(
42a60 21 24 61 41 6c 69 61 73 65 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 !$aAliased.&&.$bAliased).{.retur
42a80 6e 20 31 3b 20 0a 20 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 n.1;...}.}..if.(!$ignoreReplace)
42aa0 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 .{...if.($this->replaces($a,.$b)
42ac0 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 ).{.return.1;...}.if.($this->rep
42ae0 6c 61 63 65 73 28 24 62 2c 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a laces($b,.$a)).{.return.-1;...}.
42b00 7d 0a 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 }....if.($a->getId().===.$b->get
42b20 49 64 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 61 2d Id()).{.return.0;.}..return.($a-
42b40 3e 67 65 74 49 64 28 29 20 3c 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 3f 20 2d 31 20 3a 20 31 >getId().<.$b->getId()).?.-1.:.1
42b60 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 61 2d ;.}..if.(isset($installedMap[$a-
42b80 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 >getId()])).{.return.-1;.}..if.(
42ba0 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 67 65 74 49 64 28 29 5d isset($installedMap[$b->getId()]
42bc0 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d )).{.return.1;.}..return.($this-
42be0 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 68 69 73 2d >getPriority($pool,.$a).>.$this-
42c00 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 >getPriority($pool,.$b)).?.-1.:.
42c20 31 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 1;.}............protected.functi
42c40 6f 6e 20 72 65 70 6c 61 63 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f on.replaces(PackageInterface.$so
42c60 75 72 63 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a urce,.PackageInterface.$target).
42c80 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 {.foreach.($source->getReplaces(
42ca0 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 ).as.$link).{.if.($link->getTarg
42cc0 65 74 28 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 et().===.$target->getName()....)
42ce0 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .{.return.true;.}.}..return.fals
42d00 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f e;.}..protected.function.pruneTo
42d20 42 65 73 74 56 65 72 73 69 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c BestVersion(Pool.$pool,.$literal
42d40 73 29 0a 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 s).{.$bestLiterals.=.array($lite
42d60 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e rals[0]);.$bestPackage.=.$pool->
42d80 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a literalToPackage($literals[0]);.
42da0 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 foreach.($literals.as.$i.=>.$lit
42dc0 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 eral).{.if.(0.===.$i).{.continue
42de0 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f ;.}..$package.=.$pool->literalTo
42e00 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 Package($literal);..if.($this->v
42e20 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 ersionCompare($package,.$bestPac
42e40 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 61 kage,.'>')).{.$bestPackage.=.$pa
42e60 63 6b 61 67 65 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 ckage;.$bestLiterals.=.array($li
42e80 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e teral);.}.elseif.($this->version
42ea0 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 Compare($package,.$bestPackage,.
42ec0 27 3d 3d 27 29 29 20 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 '==')).{.$bestLiterals[].=.$lite
42ee0 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 65 73 74 4c 69 74 65 72 61 6c 73 3b 0a ral;.}.}..return.$bestLiterals;.
42f00 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 4e 65 77 65 }..protected.function.selectNewe
42f20 73 74 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 stPackages(array.$installedMap,.
42f40 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 array.$literals).{.$maxLiterals.
42f60 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 6d 61 78 50 61 63 6b 61 =.array($literals[0]);.$maxPacka
42f80 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b ge.=.$literals[0]->getPackage();
42fa0 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 .foreach.($literals.as.$i.=>.$li
42fc0 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 teral).{.if.(0.===.$i).{.continu
42fe0 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 e;.}..if.($this->versionCompare(
43000 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 20 24 6d 61 78 50 61 63 6b $literal->getPackage(),.$maxPack
43020 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 age,.'>')).{.$maxPackage.=.$lite
43040 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 ral->getPackage();.$maxLiterals.
43060 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 =.array($literal);.}.elseif.($th
43080 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 is->versionCompare($literal->get
430a0 50 61 63 6b 61 67 65 28 29 2c 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b Package(),.$maxPackage,.'==')).{
430c0 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a .$maxLiterals[].=.$literal;.}.}.
430e0 0a 72 65 74 75 72 6e 20 24 6d 61 78 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 .return.$maxLiterals;.}.....prot
43100 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 ected.function.pruneToHighestPri
43120 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 orityOrInstalled(Pool.$pool,.arr
43140 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c ay.$installedMap,.array.$literal
43160 73 29 0a 7b 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f s).{.$selected.=.array();..$prio
43180 72 69 74 79 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 rity.=.null;..foreach.($literals
431a0 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c .as.$literal).{.$package.=.$pool
431c0 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 ->literalToPackage($literal);..i
431e0 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d f.(isset($installedMap[$package-
43200 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 >getId()])).{.$selected[].=.$lit
43220 65 72 61 6c 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 eral;.continue;.}..if.(null.===.
43240 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 24 74 68 69 73 2d 3e $priority).{.$priority.=.$this->
43260 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a getPriority($pool,.$package);.}.
43280 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 .if.($this->getPriority($pool,.$
432a0 70 61 63 6b 61 67 65 29 20 21 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 62 72 65 61 6b 3b 0a package).!=.$priority).{.break;.
432c0 7d 0a 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 72 65 }..$selected[].=.$literal;.}..re
432e0 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 turn.$selected;.}.......protecte
43300 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 50 6f d.function.pruneRemoteAliases(Po
43320 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 68 61 ol.$pool,.array.$literals).{.$ha
43340 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 sLocalAlias.=.false;..foreach.($
43360 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 literals.as.$literal).{.$package
43380 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 .=.$pool->literalToPackage($lite
433a0 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 ral);..if.($package.instanceof.A
433c0 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 liasPackage.&&.$package->isRootP
433e0 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 ackageAlias()).{.$hasLocalAlias.
43400 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 68 61 73 4c 6f 63 =.true;.break;.}.}..if.(!$hasLoc
43420 61 6c 41 6c 69 61 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a alAlias).{.return.$literals;.}..
43440 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c $selected.=.array();.foreach.($l
43460 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 iterals.as.$literal).{.$package.
43480 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 =.$pool->literalToPackage($liter
434a0 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c al);..if.($package.instanceof.Al
434c0 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 iasPackage.&&.$package->isRootPa
434e0 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c ckageAlias()).{.$selected[].=.$l
43500 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d iteral;.}.}..return.$selected;.}
43520 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
43540 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a mposer\DependencyResolver;......
43560 0a 63 6c 61 73 73 20 44 65 63 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 .class.Decisions.implements.\Ite
43580 72 61 74 6f 72 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 rator,.\Countable.{.const.DECISI
435a0 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 52 ON_LITERAL.=.0;.const.DECISION_R
435c0 45 41 53 4f 4e 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f EASON.=.1;..protected.$pool;.pro
435e0 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 tected.$decisionMap;.protected.$
43600 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 decisionQueue.=.array();..public
43620 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6f 6c 29 0a 7b 0a 24 .function.__construct($pool).{.$
43640 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 this->pool.=.$pool;.$this->decis
43660 69 6f 6e 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ionMap.=.array();.}..public.func
43680 74 69 6f 6e 20 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 77 tion.decide($literal,.$level,.$w
436a0 68 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 hy).{.$this->addDecision($litera
436c0 6c 2c 20 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 l,.$level);.$this->decisionQueue
436e0 5b 5d 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 [].=.array(.self::DECISION_LITER
43700 41 4c 20 3d 3e 20 24 6c 69 74 65 72 61 6c 2c 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 AL.=>.$literal,.self::DECISION_R
43720 45 41 53 4f 4e 20 3d 3e 20 24 77 68 79 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 EASON.=>.$why,.);.}..public.func
43740 74 69 6f 6e 20 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 tion.satisfy($literal).{.$packag
43760 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 eId.=.abs($literal);..return.(.$
43780 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 literal.>.0.&&.isset($this->deci
437a0 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 sionMap[$packageId]).&&.$this->d
437c0 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 7c 7c 0a 24 6c ecisionMap[$packageId].>.0.||.$l
437e0 69 74 65 72 61 6c 20 3c 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 iteral.<.0.&&.isset($this->decis
43800 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 ionMap[$packageId]).&&.$this->de
43820 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 0a 29 3b 0a 7d 0a 0a cisionMap[$packageId].<.0.);.}..
43840 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 6c 69 63 74 28 24 6c 69 74 65 72 61 public.function.conflict($litera
43860 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b l).{.$packageId.=.abs($literal);
43880 0a 0a 72 65 74 75 72 6e 20 28 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f ..return.(.(isset($this->decisio
438a0 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 nMap[$packageId]).&&.$this->deci
438c0 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 26 26 20 24 6c 69 74 65 sionMap[$packageId].>.0.&&.$lite
438e0 72 61 6c 20 3c 20 30 29 20 7c 7c 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 ral.<.0).||.(isset($this->decisi
43900 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 onMap[$packageId]).&&.$this->dec
43920 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 isionMap[$packageId].<.0.&&.$lit
43940 65 72 61 6c 20 3e 20 30 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 eral.>.0).);.}..public.function.
43960 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 decided($literalOrPackageId).{.r
43980 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b eturn.!empty($this->decisionMap[
439a0 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 abs($literalOrPackageId)]);.}..p
439c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 ublic.function.undecided($litera
439e0 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 74 68 lOrPackageId).{.return.empty($th
43a00 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 is->decisionMap[abs($literalOrPa
43a20 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 ckageId)]);.}..public.function.d
43a40 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 ecidedInstall($literalOrPackageI
43a60 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 d).{.$packageId.=.abs($literalOr
43a80 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d PackageId);..return.isset($this-
43aa0 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 >decisionMap[$packageId]).&&.$th
43ac0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 3b is->decisionMap[$packageId].>.0;
43ae0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 4c 65 76 65 .}..public.function.decisionLeve
43b00 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 l($literalOrPackageId).{.$packag
43b20 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a eId.=.abs($literalOrPackageId);.
43b40 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 if.(isset($this->decisionMap[$pa
43b60 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 62 73 28 24 74 68 69 73 2d 3e 64 ckageId])).{.return.abs($this->d
43b80 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 0a 72 65 74 75 ecisionMap[$packageId]);.}..retu
43ba0 72 6e 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f rn.0;.}..public.function.decisio
43bc0 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 nRule($literalOrPackageId).{.$pa
43be0 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 ckageId.=.abs($literalOrPackageI
43c00 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 d);..foreach.($this->decisionQue
43c20 75 65 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 ue.as.$i.=>.$decision).{.if.($pa
43c40 63 6b 61 67 65 49 64 20 3d 3d 3d 20 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a ckageId.===.abs($decision[self::
43c60 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 DECISION_LITERAL])).{.return.$de
43c80 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d cision[self::DECISION_REASON];.}
43ca0 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .}..return.null;.}..public.funct
43cc0 69 6f 6e 20 61 74 4f 66 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 ion.atOffset($queueOffset).{.ret
43ce0 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f urn.$this->decisionQueue[$queueO
43d00 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 ffset];.}..public.function.valid
43d20 4f 66 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 Offset($queueOffset).{.return.$q
43d40 75 65 75 65 4f 66 66 73 65 74 20 3e 3d 20 30 20 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 ueueOffset.>=.0.&&.$queueOffset.
43d60 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d <.count($this->decisionQueue);.}
43d80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b ..public.function.lastReason().{
43da0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 .return.$this->decisionQueue[cou
43dc0 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 nt($this->decisionQueue).-.1][se
43de0 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 lf::DECISION_REASON];.}..public.
43e00 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.lastLiteral().{.return.
43e20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 $this->decisionQueue[count($this
43e40 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 ->decisionQueue).-.1][self::DECI
43e60 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f SION_LITERAL];.}..public.functio
43e80 6e 20 72 65 73 65 74 28 29 0a 7b 0a 77 68 69 6c 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 n.reset().{.while.($decision.=.a
43ea0 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 rray_pop($this->decisionQueue)).
43ec0 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 {.$this->decisionMap[abs($decisi
43ee0 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 on[self::DECISION_LITERAL])].=.0
43f00 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 ;.}.}..public.function.resetToOf
43f20 66 73 65 74 28 24 6f 66 66 73 65 74 29 0a 7b 0a 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 fset($offset).{.while.(count($th
43f40 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 is->decisionQueue).>.$offset.+.1
43f60 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d ).{.$decision.=.array_pop($this-
43f80 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e >decisionQueue);.$this->decision
43fa0 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e Map[abs($decision[self::DECISION
43fc0 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e _LITERAL])].=.0;.}.}..public.fun
43fe0 63 74 69 6f 6e 20 72 65 76 65 72 74 4c 61 73 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 ction.revertLast().{.$this->deci
44000 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 sionMap[abs($this->lastLiteral()
44020 29 5d 20 3d 20 30 3b 0a 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f )].=.0;.array_pop($this->decisio
44040 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e nQueue);.}..public.function.coun
44060 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 t().{.return.count($this->decisi
44080 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 onQueue);.}..public.function.rew
440a0 69 6e 64 28 29 0a 7b 0a 65 6e 64 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 ind().{.end($this->decisionQueue
440c0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a );.}..public.function.current().
440e0 7b 0a 72 65 74 75 72 6e 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e {.return.current($this->decision
44100 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 Queue);.}..public.function.key()
44120 0a 7b 0a 72 65 74 75 72 6e 20 6b 65 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 .{.return.key($this->decisionQue
44140 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b ue);.}..public.function.next().{
44160 0a 72 65 74 75 72 6e 20 70 72 65 76 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 .return.prev($this->decisionQueu
44180 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b e);.}..public.function.valid().{
441a0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d .return.false.!==.current($this-
441c0 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >decisionQueue);.}..public.funct
441e0 69 6f 6e 20 69 73 45 6d 70 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 ion.isEmpty().{.return.count($th
44200 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f is->decisionQueue).===.0;.}..pro
44220 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 tected.function.addDecision($lit
44240 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 eral,.$level).{.$packageId.=.abs
44260 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d ($literal);..$previousDecision.=
44280 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 .isset($this->decisionMap[$packa
442a0 67 65 49 64 5d 29 20 3f 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 geId]).?.$this->decisionMap[$pac
442c0 6b 61 67 65 49 64 5d 20 3a 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 70 72 65 76 69 6f 75 73 44 65 63 kageId].:.null;.if.($previousDec
442e0 69 73 69 6f 6e 20 21 3d 20 30 29 20 7b 0a 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 3d 20 24 ision.!=.0).{.$literalString.=.$
44300 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 this->pool->literalToString($lit
44320 65 72 61 6c 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c eral);.$package.=.$this->pool->l
44340 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 74 68 72 6f 77 iteralToPackage($literal);.throw
44360 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 .new.SolverBugException(."Trying
44380 20 74 6f 20 64 65 63 69 64 65 20 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 6f 6e 20 6c 65 76 .to.decide.$literalString.on.lev
443a0 65 6c 20 24 6c 65 76 65 6c 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 24 70 61 63 6b 61 67 65 20 el.$level,.even.though.$package.
443c0 77 61 73 20 70 72 65 76 69 6f 75 73 6c 79 20 64 65 63 69 64 65 64 20 61 73 20 22 2e 28 69 6e 74 was.previously.decided.as.".(int
443e0 29 20 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 66 ).$previousDecision.".".);.}..if
44400 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f .($literal.>.0).{.$this->decisio
44420 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c 73 nMap[$packageId].=.$level;.}.els
44440 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 e.{.$this->decisionMap[$packageI
44460 64 5d 20 3d 20 2d 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a d].=.-$level;.}.}.}.<?php.......
44480 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e .....namespace.Composer\Dependen
444a0 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 cyResolver;.........class.RuleWa
444c0 74 63 68 4e 6f 64 65 0a 7b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 31 3b 0a 70 75 62 6c 69 63 tchNode.{.public.$watch1;.public
444e0 20 24 77 61 74 63 68 32 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 3b 0a 0a 0a 0a 0a .$watch2;..protected.$rule;.....
44500 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 ..public.function.__construct($r
44520 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 0a 24 6c 69 ule).{.$this->rule.=.$rule;..$li
44540 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a terals.=.$rule->getLiterals();..
44560 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 $this->watch1.=.count($literals)
44580 20 3e 20 30 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 20 3a 20 30 3b 0a 24 74 68 69 73 2d 3e .>.0.?.$literals[0].:.0;.$this->
445a0 77 61 74 63 68 32 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 31 20 3f 20 watch2.=.count($literals).>.1.?.
445c0 24 6c 69 74 65 72 61 6c 73 5b 31 5d 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 $literals[1].:.0;.}..........pub
445e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 44 65 63 lic.function.watch2OnHighest(Dec
44600 69 73 69 6f 6e 73 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d isions.$decisions).{.$literals.=
44620 20 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 0a 20 .$this->rule->getLiterals();....
44640 69 66 20 28 24 6c 69 74 65 72 61 6c 73 20 3c 20 33 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a if.($literals.<.3).{.return;.}..
44660 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 $watchLevel.=.0;..foreach.($lite
44680 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 6c 65 76 65 6c 20 3d 20 24 64 65 rals.as.$literal).{.$level.=.$de
446a0 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 cisions->decisionLevel($literal)
446c0 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 24 77 61 74 63 68 4c 65 76 65 6c 29 20 7b 0a 24 ;..if.($level.>.$watchLevel).{.$
446e0 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 this->rule->watch2.=.$literal;.$
44700 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a watchLevel.=.$level;.}.}.}......
44720 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 28 29 0a 7b 0a 72 65 74 .public.function.getRule().{.ret
44740 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 urn.$this->rule;.}........public
44760 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c .function.getOtherWatch($literal
44780 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 24 6c 69 74 65 72 61 ).{.if.($this->watch1.==.$litera
447a0 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 32 3b 0a 7d 20 65 6c 73 l).{.return.$this->watch2;.}.els
447c0 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 31 3b 0a 7d 0a 7d 0a 0a 0a e.{.return.$this->watch1;.}.}...
447e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 .....public.function.moveWatch($
44800 66 72 6f 6d 2c 20 24 74 6f 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d from,.$to).{.if.($this->watch1.=
44820 3d 20 24 66 72 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 24 74 6f 3b 0a =.$from).{.$this->watch1.=.$to;.
44840 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 74 6f 3b 0a 7d 0a }.else.{.$this->watch2.=.$to;.}.
44860 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
44880 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a omposer\DependencyResolver;.....
448a0 63 6c 61 73 73 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 65 78 class.SolverProblemsException.ex
448c0 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 tends.\RuntimeException.{.protec
448e0 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c ted.$problems;.protected.$instal
44900 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ledMap;..public.function.__const
44920 72 75 63 74 28 61 72 72 61 79 20 24 70 72 6f 62 6c 65 6d 73 2c 20 61 72 72 61 79 20 24 69 6e 73 ruct(array.$problems,.array.$ins
44940 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 3d 20 24 talledMap).{.$this->problems.=.$
44960 70 72 6f 62 6c 65 6d 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 problems;.$this->installedMap.=.
44980 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 $installedMap;..parent::__constr
449a0 75 63 74 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a uct($this->createMessage());.}..
449c0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 65 73 73 61 67 65 protected.function.createMessage
449e0 28 29 0a 7b 0a 24 74 65 78 74 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ().{.$text.=."\n";.foreach.($thi
44a00 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 61 73 20 24 69 20 3d 3e 20 24 70 72 6f 62 6c 65 6d 29 20 7b s->problems.as.$i.=>.$problem).{
44a20 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 50 72 6f 62 6c 65 6d 20 22 2e 28 24 69 2b 31 29 2e 24 70 .$text..=."..Problem.".($i+1).$p
44a40 72 6f 62 6c 65 6d 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 69 roblem->getPrettyString($this->i
44a60 6e 73 74 61 6c 6c 65 64 4d 61 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 nstalledMap)."\n";.}..if.(strpos
44a80 28 24 74 65 78 74 2c 20 27 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 27 29 20 7c 7c ($text,.'could.not.be.found').||
44aa0 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b .strpos($text,.'no.matching.pack
44ac0 61 67 65 20 66 6f 75 6e 64 27 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 50 6f 74 65 6e age.found')).{.$text..=."\nPoten
44ae0 74 69 61 6c 20 63 61 75 73 65 73 3a 5c 6e 20 2d 20 41 20 74 79 70 6f 20 69 6e 20 74 68 65 20 70 tial.causes:\n.-.A.typo.in.the.p
44b00 61 63 6b 61 67 65 20 6e 61 6d 65 5c 6e 20 2d 20 54 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 6e ackage.name\n.-.The.package.is.n
44b20 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 20 73 74 61 62 6c 65 2d 65 6e 6f 75 67 68 20 ot.available.in.a.stable-enough.
44b40 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 79 6f 75 72 20 6d 69 6e 69 6d 75 version.according.to.your.minimu
44b60 6d 2d 73 74 61 62 69 6c 69 74 79 20 73 65 74 74 69 6e 67 5c 6e 20 20 20 73 65 65 20 3c 68 74 74 m-stability.setting\n...see.<htt
44b80 70 73 3a 2f 2f 67 72 6f 75 70 73 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 64 2f 74 6f 70 69 63 2f 63 ps://groups.google.com/d/topic/c
44ba0 6f 6d 70 6f 73 65 72 2d 64 65 76 2f 5f 67 33 41 53 65 49 46 6c 72 63 2f 64 69 73 63 75 73 73 69 omposer-dev/_g3ASeIFlrc/discussi
44bc0 6f 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 5c 6e 5c 6e 52 65 61 64 20 3c 68 on>.for.more.details.\n\nRead.<h
44be0 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c ttp://getcomposer.org/doc/articl
44c00 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 3e 20 66 6f 72 20 66 75 72 74 68 es/troubleshooting.md>.for.furth
44c20 65 72 20 63 6f 6d 6d 6f 6e 20 70 72 6f 62 6c 65 6d 73 2e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 er.common.problems.";.}..return.
44c40 24 74 65 78 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f $text;.}..public.function.getPro
44c60 62 6c 65 6d 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 blems().{.return.$this->problems
44c80 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
44ca0 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 .Composer\DependencyResolver;..u
44cc0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 se.Composer\Package\AliasPackage
44ce0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ;.use.Composer\DependencyResolve
44d00 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 61 63 74 69 r\Operation;.....class.Transacti
44d20 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 on.{.protected.$policy;.protecte
44d40 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 d.$pool;.protected.$installedMap
44d60 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$decisions;.protecte
44d80 64 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e d.$transaction;..public.function
44da0 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e .__construct($policy,.$pool,.$in
44dc0 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d stalledMap,.$decisions).{.$this-
44de0 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d >policy.=.$policy;.$this->pool.=
44e00 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 .$pool;.$this->installedMap.=.$i
44e20 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 3d 20 nstalledMap;.$this->decisions.=.
44e40 24 64 65 63 69 73 69 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d $decisions;.$this->transaction.=
44e60 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .array();.}..public.function.get
44e80 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 Operations().{.$installMeansUpda
44ea0 74 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 65 73 28 29 3b 0a 0a 24 teMap.=.$this->findUpdates();..$
44ec0 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 updateMap.=.array();.$installMap
44ee0 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 .=.array();.$uninstallMap.=.arra
44f00 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 y();..foreach.($this->decisions.
44f20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d as.$i.=>.$decision).{.$literal.=
44f40 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c .$decision[Decisions::DECISION_L
44f60 49 54 45 52 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 ITERAL];.$reason.=.$decision[Dec
44f80 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 61 63 6b isions::DECISION_REASON];..$pack
44fa0 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b age.=.$this->pool->literalToPack
44fc0 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 6c 69 74 65 72 61 6c 20 age($literal);....if.(($literal.
44fe0 3e 20 30 29 20 3d 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d >.0).==.(isset($this->installedM
45000 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 ap[$package->getId()]))).{.conti
45020 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 69 66 20 28 nue;.}..if.($literal.>.0).{.if.(
45040 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 isset($installMeansUpdateMap[abs
45060 28 24 6c 69 74 65 72 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e ($literal)]).&&.!$package.instan
45080 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 0a 24 73 6f 75 72 63 65 20 3d 20 ceof.AliasPackage).{..$source.=.
450a0 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 $installMeansUpdateMap[abs($lite
450c0 72 61 6c 29 5d 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ral)];..$updateMap[$package->get
450e0 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 Id()].=.array(.'package'.=>.$pac
45100 6b 61 67 65 2c 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 73 6f 75 72 63 65 2c 0a 27 72 65 61 73 kage,.'source'.=>.$source,.'reas
45120 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 69 6e 73 on'.=>.$reason,.);....unset($ins
45140 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 tallMeansUpdateMap[abs($literal)
45160 5d 29 3b 0a 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 73 6f 75 72 63 65 2d 3e 67 65 74 49 64 ]);.$ignoreRemove[$source->getId
45180 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 ()].=.true;.}.else.{.$installMap
451a0 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 [$package->getId()].=.array(.'pa
451c0 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 ckage'.=>.$package,.'reason'.=>.
451e0 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 $reason,.);.}.}.}..foreach.($thi
45200 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 s->decisions.as.$i.=>.$decision)
45220 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e .{.$literal.=.$decision[Decision
45240 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d s::DECISION_LITERAL];.$package.=
45260 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 .$this->pool->literalToPackage($
45280 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 0a literal);..if.($literal.<=.0.&&.
452a0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 isset($this->installedMap[$packa
452c0 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 20 26 26 0a 21 69 73 73 65 74 28 24 69 67 6e 6f 72 65 52 ge->getId()]).&&.!isset($ignoreR
452e0 65 6d 6f 76 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 6e emove[$package->getId()])).{.$un
45300 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 installMap[$package->getId()].=.
45320 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 array(.'package'.=>.$package,.'r
45340 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 7d 0a 7d 0a 0a 24 74 68 69 eason'.=>.$reason,.);..}.}..$thi
45360 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 61 6c 6c 4d s->transactionFromMaps($installM
45380 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 3b 0a ap,.$updateMap,.$uninstallMap);.
453a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 7d 0a 0a 70 .return.$this->transaction;.}..p
453c0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f rotected.function.transactionFro
453e0 6d 4d 61 70 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 2c 20 24 mMaps($installMap,.$updateMap,.$
45400 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 0a 7b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 79 5f 6d uninstallMap).{.$queue.=.array_m
45420 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 72 65 74 75 72 ap(function.($operation).{.retur
45440 6e 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 7d 2c 0a 24 74 68 69 n.$operation['package'];.},.$thi
45460 73 2d 3e 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c s->findRootPackages($installMap,
45480 20 24 75 70 64 61 74 65 4d 61 70 29 0a 29 3b 0a 0a 24 76 69 73 69 74 65 64 20 3d 20 61 72 72 61 .$updateMap).);..$visited.=.arra
454a0 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 24 y();..while.(!empty($queue)).{.$
454c0 70 61 63 6b 61 67 65 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 24 70 61 package.=.array_pop($queue);.$pa
454e0 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 0a 69 66 ckageId.=.$package->getId();..if
45500 20 28 21 69 73 73 65 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 .(!isset($visited[$packageId])).
45520 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a {.array_push($queue,.$package);.
45540 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 .if.($package.instanceof.AliasPa
45560 63 6b 61 67 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 ckage).{.array_push($queue,.$pac
45580 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f kage->getAliasOf());.}.else.{.fo
455a0 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 reach.($package->getRequires().a
455c0 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 s.$link).{.$possibleRequires.=.$
455e0 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e this->pool->whatProvides($link->
45600 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e getTarget(),.$link->getConstrain
45620 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 t());..foreach.($possibleRequire
45640 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 s.as.$require).{.array_push($que
45660 75 65 2c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 76 69 73 69 74 65 64 5b 24 ue,.$require);.}.}.}..$visited[$
45680 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 package->getId()].=.true;.}.else
456a0 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 .{.if.(isset($installMap[$packag
456c0 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 0a 24 69 6e 73 74 61 6c eId])).{.$this->install(.$instal
456e0 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 69 6e lMap[$packageId]['package'],.$in
45700 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 stallMap[$packageId]['reason'].)
45720 3b 0a 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 ;.unset($installMap[$packageId])
45740 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 ;.}.if.(isset($updateMap[$packag
45760 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 28 0a 24 75 70 64 61 74 65 4d eId])).{.$this->update(.$updateM
45780 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d 2c 0a 24 75 70 64 61 74 ap[$packageId]['source'],.$updat
457a0 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 75 70 eMap[$packageId]['package'],.$up
457c0 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 3b dateMap[$packageId]['reason'].);
457e0 0a 75 6e 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a .unset($updateMap[$packageId]);.
45800 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 61 73 }.}.}..foreach.($uninstallMap.as
45820 20 24 75 6e 69 6e 73 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 .$uninstall).{.$this->uninstall(
45840 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 75 6e 69 6e 73 74 61 6c $uninstall['package'],.$uninstal
45860 6c 5b 27 72 65 61 73 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e l['reason']);.}.}..protected.fun
45880 63 74 69 6f 6e 20 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c 4d ction.findRootPackages($installM
458a0 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 69 ap,.$updateMap).{.$packages.=.$i
458c0 6e 73 74 61 6c 6c 4d 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 3b 0a 24 72 6f 6f 74 73 20 3d nstallMap.+.$updateMap;.$roots.=
458e0 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 .$packages;..foreach.($packages.
45900 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 as.$packageId.=>.$operation).{.$
45920 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b package.=.$operation['package'];
45940 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 ..if.(!isset($roots[$packageId])
45960 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 ).{.continue;.}..foreach.($packa
45980 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 ge->getRequires().as.$link).{.$p
459a0 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 ossibleRequires.=.$this->pool->w
459c0 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 hatProvides($link->getTarget(),.
459e0 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 $link->getConstraint());..foreac
45a00 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 h.($possibleRequires.as.$require
45a20 29 20 7b 0a 75 6e 73 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 49 64 ).{.unset($roots[$require->getId
45a40 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f 74 73 3b 0a 7d 0a 0a 70 ()]);.}.}.}..return.$roots;.}..p
45a60 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 73 28 29 0a rotected.function.findUpdates().
45a80 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 {.$installMeansUpdateMap.=.array
45aa0 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 ();..foreach.($this->decisions.a
45ac0 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 s.$i.=>.$decision).{.$literal.=.
45ae0 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 $decision[Decisions::DECISION_LI
45b00 54 45 52 41 4c 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e TERAL];.$package.=.$this->pool->
45b20 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 literalToPackage($literal);..if.
45b40 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 ($package.instanceof.AliasPackag
45b60 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 61 6c e).{.continue;.}....if.($literal
45b80 20 3c 3d 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d .<=.0.&&.isset($this->installedM
45ba0 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 70 64 61 74 ap[$package->getId()])).{.$updat
45bc0 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 65 50 61 es.=.$this->policy->findUpdatePa
45be0 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 ckages($this->pool,.$this->insta
45c00 6c 6c 65 64 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d lledMap,.$package);..$literals.=
45c20 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 3b 0a 0a 66 6f 72 65 .array($package->getId());..fore
45c40 61 63 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 6c 69 74 ach.($updates.as.$update).{.$lit
45c60 65 72 61 6c 73 5b 5d 20 3d 20 24 75 70 64 61 74 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 66 erals[].=.$update->getId();.}..f
45c80 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 75 70 64 61 74 65 4c 69 74 65 oreach.($literals.as.$updateLite
45ca0 72 61 6c 29 20 7b 0a 69 66 20 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 20 21 3d 3d 20 24 6c ral).{.if.($updateLiteral.!==.$l
45cc0 69 74 65 72 61 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 iteral).{.$installMeansUpdateMap
45ce0 5b 61 62 73 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 [abs($updateLiteral)].=.$package
45d00 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 ;.}.}.}.}..return.$installMeansU
45d20 70 64 61 74 65 4d 61 70 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 pdateMap;.}..protected.function.
45d40 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 install($package,.$reason).{.if.
45d60 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 ($package.instanceof.AliasPackag
45d80 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 e).{.return.$this->markAliasInst
45da0 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 alled($package,.$reason);.}..$th
45dc0 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f is->transaction[].=.new.Operatio
45de0 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 n\InstallOperation($package,.$re
45e00 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 ason);.}..protected.function.upd
45e20 61 74 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 ate($from,.$to,.$reason).{.$this
45e40 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c ->transaction[].=.new.Operation\
45e60 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 UpdateOperation($from,.$to,.$rea
45e80 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e son);.}..protected.function.unin
45ea0 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 stall($package,.$reason).{.if.($
45ec0 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 package.instanceof.AliasPackage)
45ee0 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 .{.return.$this->markAliasUninst
45f00 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 alled($package,.$reason);.}..$th
45f20 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f is->transaction[].=.new.Operatio
45f40 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 n\UninstallOperation($package,.$
45f60 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d reason);.}..protected.function.m
45f80 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 arkAliasInstalled($package,.$rea
45fa0 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 son).{.$this->transaction[].=.ne
45fc0 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 w.Operation\MarkAliasInstalledOp
45fe0 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 eration($package,.$reason);.}..p
46000 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 rotected.function.markAliasUnins
46020 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 talled($package,.$reason).{.$thi
46040 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e s->transaction[].=.new.Operation
46060 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 28 24 \MarkAliasUninstalledOperation($
46080 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a package,.$reason);.}.}.<?php....
460a0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e ........namespace.Composer\Depen
460c0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f dencyResolver\Operation;..use.Co
460e0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b mposer\Package\PackageInterface;
46100 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 .......class.UninstallOperation.
46120 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 extends.SolverOperation.{.protec
46140 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ted.$package;........public.func
46160 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 tion.__construct(PackageInterfac
46180 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 e.$package,.$reason.=.null).{.pa
461a0 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 rent::__construct($reason);..$th
461c0 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a is->package.=.$package;.}.......
461e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 public.function.getPackage().{.r
46200 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 eturn.$this->package;.}.......pu
46220 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 blic.function.getJobType().{.ret
46240 75 72 6e 20 27 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 urn.'uninstall';.}.....public.fu
46260 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 6e nction.__toString().{.return.'Un
46280 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 installing.'.$this->package->get
462a0 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 PrettyName().'.('.$this->formatV
462c0 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a ersion($this->package).')';.}.}.
462e0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
46300 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e ser\DependencyResolver\Operation
46320 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
46340 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 4f 70 65 72 nterface;.......class.UpdateOper
46360 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a ation.extends.SolverOperation.{.
46380 70 72 6f 74 65 63 74 65 64 20 24 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 70 72 6f 74 65 protected.$initialPackage;.prote
463a0 63 74 65 64 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 cted.$targetPackage;.........pub
463c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 lic.function.__construct(Package
463e0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 Interface.$initial,.PackageInter
46400 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a face.$target,.$reason.=.null).{.
46420 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 parent::__construct($reason);..$
46440 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 69 6e 69 74 69 61 6c 3b this->initialPackage.=.$initial;
46460 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 20 3d 20 24 74 61 72 67 65 74 3b .$this->targetPackage.=.$target;
46480 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 69 74 .}.......public.function.getInit
464a0 69 61 6c 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 69 ialPackage().{.return.$this->ini
464c0 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tialPackage;.}.......public.func
464e0 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e tion.getTargetPackage().{.return
46500 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .$this->targetPackage;.}.......p
46520 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 ublic.function.getJobType().{.re
46540 74 75 72 6e 20 27 75 70 64 61 74 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 turn.'update';.}.....public.func
46560 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 70 64 61 tion.__toString().{.return.'Upda
46580 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 ting.'.$this->initialPackage->ge
465a0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 tPrettyName().'.('.$this->format
465c0 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 29 2e 27 Version($this->initialPackage).'
465e0 29 20 74 6f 20 27 2e 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 2d 3e 67 65 ).to.'..$this->targetPackage->ge
46600 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 20 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 tPrettyName()..'.('.$this->forma
46620 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 29 2e 27 tVersion($this->targetPackage).'
46640 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 )';.}.}.<?php............namespa
46660 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f ce.Composer\DependencyResolver\O
46680 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c peration;..use.Composer\Package\
466a0 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c AliasPackage;.......class.MarkAl
466c0 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f iasInstalledOperation.extends.So
466e0 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 lverOperation.{.protected.$packa
46700 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ge;........public.function.__con
46720 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 struct(AliasPackage.$package,.$r
46740 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 eason.=.null).{.parent::__constr
46760 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 uct($reason);..$this->package.=.
46780 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $package;.}.......public.functio
467a0 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 n.getPackage().{.return.$this->p
467c0 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ackage;.}.......public.function.
467e0 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 getJobType().{.return.'markAlias
46800 49 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Installed';.}.....public.functio
46820 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 n.__toString().{.return.'Marking
46840 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 .'.$this->package->getPrettyName
46860 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 ().'.('.$this->formatVersion($th
46880 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c is->package).').as.installed,.al
468a0 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 ias.of.'.$this->package->getAlia
468c0 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 sOf()->getPrettyName().'.('.$thi
468e0 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d s->formatVersion($this->package-
46900 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a >getAliasOf()).')';.}.}.<?php...
46920 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
46940 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 ndencyResolver\Operation;..use.C
46960 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
46980 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 ;.......class.InstallOperation.e
469a0 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 xtends.SolverOperation.{.protect
469c0 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ed.$package;........public.funct
469e0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 ion.__construct(PackageInterface
46a00 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 .$package,.$reason.=.null).{.par
46a20 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 ent::__construct($reason);..$thi
46a40 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 s->package.=.$package;.}.......p
46a60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 ublic.function.getPackage().{.re
46a80 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this->package;.}.......pub
46aa0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 lic.function.getJobType().{.retu
46ac0 72 6e 20 27 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rn.'install';.}.....public.funct
46ae0 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 ion.__toString().{.return.'Insta
46b00 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 lling.'.$this->package->getPrett
46b20 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f yName().'.('.$this->formatVersio
46b40 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 n($this->package).')';.}.}.<?php
46b60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
46b80 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 ependencyResolver\Operation;..us
46ba0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 e.Composer\Package\Version\Versi
46bc0 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 onParser;.use.Composer\Package\P
46be0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 ackageInterface;.......abstract.
46c00 63 6c 61 73 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 class.SolverOperation.implements
46c20 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 .OperationInterface.{.protected.
46c40 24 72 65 61 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f $reason;.......public.function._
46c60 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 _construct($reason.=.null).{.$th
46c80 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 is->reason.=.$reason;.}.......pu
46ca0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 blic.function.getReason().{.retu
46cc0 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 rn.$this->reason;.}..protected.f
46ce0 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 unction.formatVersion(PackageInt
46d00 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 56 65 72 73 69 6f erface.$package).{.return.Versio
46d20 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 nParser::formatVersion($package)
46d40 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
46d60 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 .Composer\DependencyResolver\Ope
46d80 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c ration;..use.Composer\Package\Al
46da0 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 iasPackage;.......class.MarkAlia
46dc0 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f sUninstalledOperation.extends.So
46de0 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 lverOperation.{.protected.$packa
46e00 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ge;........public.function.__con
46e20 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 struct(AliasPackage.$package,.$r
46e40 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 eason.=.null).{.parent::__constr
46e60 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 uct($reason);..$this->package.=.
46e80 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $package;.}.......public.functio
46ea0 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 n.getPackage().{.return.$this->p
46ec0 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ackage;.}.......public.function.
46ee0 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 getJobType().{.return.'markAlias
46f00 55 6e 69 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Uninstalled';.}.....public.funct
46f20 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 ion.__toString().{.return.'Marki
46f40 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 ng.'.$this->package->getPrettyNa
46f60 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 me().'.('.$this->formatVersion($
46f80 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 75 6e 69 6e 73 74 61 6c 6c 65 64 this->package).').as.uninstalled
46fa0 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 ,.alias.of.'.$this->package->get
46fc0 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e AliasOf()->getPrettyName().'.('.
46fe0 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b $this->formatVersion($this->pack
47000 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 age->getAliasOf()).')';.}.}.<?ph
47020 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
47040 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a DependencyResolver\Operation;...
47060 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 ....interface.OperationInterface
47080 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 .{......public.function.getJobTy
470a0 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 pe();.......public.function.getR
470c0 65 61 73 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f eason();.......public.function._
470e0 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a _toString();.}.<?php............
47100 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 namespace.Composer\DependencyRes
47120 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 olver;..use.Composer\Package\Bas
47140 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 ePackage;.use.Composer\Package\A
47160 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 liasPackage;.use.Composer\Packag
47180 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d e\Version\VersionParser;.use.Com
471a0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 poser\Package\Link;.use.Composer
471c0 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 \Package\LinkConstraint\LinkCons
471e0 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 traintInterface;.use.Composer\Pa
47200 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 ckage\LinkConstraint\VersionCons
47220 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c traint;.use.Composer\Repository\
47240 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 RepositoryInterface;.use.Compose
47260 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 r\Repository\CompositeRepository
47280 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 ;.use.Composer\Repository\Compos
472a0 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 erRepository;.use.Composer\Repos
472c0 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 itory\InstalledRepositoryInterfa
472e0 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 53 74 72 65 ce;.use.Composer\Repository\Stre
47300 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 amableRepositoryInterface;.use.C
47320 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer\Repository\PlatformRepos
47340 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f 6f 6c 0a 7b 0a 63 6f 6e 73 74 itory;........class.Pool.{.const
47360 20 4d 41 54 43 48 5f 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 4f .MATCH_NAME.=.-1;.const.MATCH_NO
47380 4e 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4d NE.=.0;.const.MATCH.=.1;.const.M
473a0 41 54 43 48 5f 50 52 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 52 45 ATCH_PROVIDE.=.2;.const.MATCH_RE
473c0 50 4c 41 43 45 20 3d 20 33 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 PLACE.=.3;..protected.$repositor
473e0 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 ies.=.array();.protected.$provid
47400 65 72 52 65 70 6f 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 erRepos.=.array();.protected.$pa
47420 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 ckages.=.array();.protected.$pac
47440 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 kageByName.=.array();.protected.
47460 24 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 $acceptableStabilities;.protecte
47480 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 d.$stabilityFlags;.protected.$ve
474a0 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 rsionParser;.protected.$provider
474c0 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 20 3d Cache.=.array();.protected.$id.=
474e0 20 31 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .1;..public.function.__construct
47500 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 61 ($minimumStability.=.'stable',.a
47520 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a rray.$stabilityFlags.=.array()).
47540 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 {.$stabilities.=.BasePackage::$s
47560 74 61 62 69 6c 69 74 69 65 73 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 tabilities;.$this->versionParser
47580 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 61 63 63 .=.new.VersionParser;.$this->acc
475a0 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f eptableStabilities.=.array();.fo
475c0 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 reach.(BasePackage::$stabilities
475e0 20 61 73 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 .as.$stability.=>.$value).{.if.(
47600 24 76 61 6c 75 65 20 3c 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 $value.<=.BasePackage::$stabilit
47620 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d ies[$minimumStability]).{.$this-
47640 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 >acceptableStabilities[$stabilit
47660 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 y].=.$value;.}.}.$this->stabilit
47680 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a yFlags.=.$stabilityFlags;.}.....
476a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 ...public.function.addRepository
476c0 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 24 72 6f 6f (RepositoryInterface.$repo,.$roo
476e0 74 41 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 20 tAliases.=.array()).{.if.($repo.
47700 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 instanceof.CompositeRepository).
47720 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 {.$repos.=.$repo->getRepositorie
47740 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 24 72 65 s();.}.else.{.$repos.=.array($re
47760 70 6f 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f po);.}..foreach.($repos.as.$repo
47780 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 ).{.$this->repositories[].=.$rep
477a0 6f 3b 0a 0a 24 65 78 65 6d 70 74 20 3d 20 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 o;..$exempt.=.$repo.instanceof.P
477c0 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 7c 7c 20 24 72 65 70 6f 20 69 6e 73 74 61 latformRepository.||.$repo.insta
477e0 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 nceof.InstalledRepositoryInterfa
47800 63 65 3b 0a 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 ce;..if.($repo.instanceof.Compos
47820 65 72 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 72 6f 76 69 64 erRepository.&&.$repo->hasProvid
47840 65 72 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 52 65 70 6f 73 5b 5d 20 ers()).{.$this->providerRepos[].
47860 3d 20 24 72 65 70 6f 3b 0a 24 72 65 70 6f 2d 3e 73 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 24 =.$repo;.$repo->setRootAliases($
47880 72 6f 6f 74 41 6c 69 61 73 65 73 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 73 65 74 50 61 63 6b 61 67 rootAliases);.$repo->resetPackag
478a0 65 49 64 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 eIds();.}.elseif.($repo.instance
478c0 6f 66 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 of.StreamableRepositoryInterface
478e0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 4d 69 6e 69 6d 61 6c 50 61 ).{.foreach.($repo->getMinimalPa
47900 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 ckages().as.$package).{.$name.=.
47920 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 $package['name'];.$version.=.$pa
47940 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 56 ckage['version'];.$stability.=.V
47960 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 ersionParser::parseStability($ve
47980 72 73 69 6f 6e 29 3b 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 rsion);.if.($exempt.||.$this->is
479a0 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 61 62 69 6c PackageAcceptable($name,.$stabil
479c0 69 74 79 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e ity)).{.$package['id'].=.$this->
479e0 69 64 2b 2b 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 id++;.$this->packages[].=.$packa
47a00 67 65 3b 0a 0a 0a 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 20 3d 3e 20 ge;....$names.=.array(.$name.=>.
47a20 74 72 75 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f true,.);.if.(isset($package['pro
47a40 76 69 64 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 5b 27 70 72 vide'])).{.foreach.($package['pr
47a60 6f 76 69 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e ovide'].as.$target.=>.$constrain
47a80 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d t).{.$names[$target].=.true;.}.}
47aa0 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 .if.(isset($package['replace']))
47ac0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 20 .{.foreach.($package['replace'].
47ae0 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 as.$target.=>.$constraint).{.$na
47b00 6d 65 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 mes[$target].=.true;.}.}..foreac
47b20 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 20 61 73 20 24 70 72 6f 76 69 64 h.(array_keys($names).as.$provid
47b40 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 ed).{.$this->packageByName[$prov
47b60 69 64 65 64 5d 5b 5d 20 3d 26 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 ided][].=&.$this->packages[$this
47b80 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 ->id.-.2];.}....unset($rootAlias
47ba0 44 61 74 61 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e Data);.if.(isset($rootAliases[$n
47bc0 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 ame][$version])).{.$rootAliasDat
47be0 61 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e a.=.$rootAliases[$name][$version
47c00 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 ];.}.elseif.(isset($package['ali
47c20 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 72 6f 6f 74 41 as_normalized']).&&.isset($rootA
47c40 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f liases[$name][$package['alias_no
47c60 72 6d 61 6c 69 7a 65 64 27 5d 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d rmalized']])).{.$rootAliasData.=
47c80 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 5b 27 61 .$rootAliases[$name][$package['a
47ca0 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 lias_normalized']];.}..if.(isset
47cc0 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 ($rootAliasData)).{.$alias.=.$pa
47ce0 63 6b 61 67 65 3b 0a 75 6e 73 65 74 28 24 61 6c 69 61 73 5b 27 72 61 77 27 5d 29 3b 0a 24 61 6c ckage;.unset($alias['raw']);.$al
47d00 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b ias['version'].=.$rootAliasData[
47d20 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 'alias_normalized'];.$alias['ali
47d40 61 73 27 5d 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 27 5d 3b 0a as'].=.$rootAliasData['alias'];.
47d60 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 69 $alias['alias_of'].=.$package['i
47d80 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b d'];.$alias['id'].=.$this->id++;
47da0 0a 24 61 6c 69 61 73 5b 27 72 6f 6f 74 5f 61 6c 69 61 73 27 5d 20 3d 20 74 72 75 65 3b 0a 24 74 .$alias['root_alias'].=.true;.$t
47dc0 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 0a 66 6f 72 65 61 his->packages[].=.$alias;..forea
47de0 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 20 61 73 20 24 70 72 6f 76 69 ch.(array_keys($names).as.$provi
47e00 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f ded).{.$this->packageByName[$pro
47e20 76 69 64 65 64 5d 5b 5d 20 3d 26 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 vided][].=&.$this->packages[$thi
47e40 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 70 61 s->id.-.2];.}.}....if.(isset($pa
47e60 63 6b 61 67 65 5b 27 61 6c 69 61 73 27 5d 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 ckage['alias'])).{.$alias.=.$pac
47e80 6b 61 67 65 3b 0a 75 6e 73 65 74 28 24 61 6c 69 61 73 5b 27 72 61 77 27 5d 29 3b 0a 24 61 6c 69 kage;.unset($alias['raw']);.$ali
47ea0 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f as['version'].=.$package['alias_
47ec0 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 20 3d 20 normalized'];.$alias['alias'].=.
47ee0 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 $package['alias'];.$alias['alias
47f00 5f 6f 66 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 _of'].=.$package['id'];.$alias['
47f20 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 id'].=.$this->id++;.$this->packa
47f40 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f ges[].=.$alias;..foreach.(array_
47f60 6b 65 79 73 28 24 6e 61 6d 65 73 29 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 keys($names).as.$provided).{.$th
47f80 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d is->packageByName[$provided][].=
47fa0 26 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d &.$this->packages[$this->id.-.2]
47fc0 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 ;.}.}.}.}.}.else.{.foreach.($rep
47fe0 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a o->getPackages().as.$package).{.
48000 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 73 74 $name.=.$package->getName();.$st
48020 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 ability.=.$package->getStability
48040 28 29 3b 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 50 61 63 6b ();.if.($exempt.||.$this->isPack
48060 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 61 62 69 6c 69 74 79 29 ageAcceptable($name,.$stability)
48080 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 ).{.$package->setId($this->id++)
480a0 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a ;.$this->packages[].=.$package;.
480c0 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 61 .foreach.($package->getNames().a
480e0 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e s.$provided).{.$this->packageByN
48100 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a ame[$provided][].=.$package;.}..
48120 0a 20 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b ..if.(isset($rootAliases[$name][
48140 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 61 6c 69 $package->getVersion()])).{.$ali
48160 61 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 as.=.$rootAliases[$name][$packag
48180 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 e->getVersion()];.$package->setA
481a0 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 lias($alias['alias_normalized'])
481c0 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 24 61 6c 69 61 ;.$package->setPrettyAlias($alia
481e0 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 s['alias']);.$package->getReposi
48200 74 6f 72 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 tory()->addPackage($aliasPackage
48220 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 .=.new.AliasPackage($package,.$a
48240 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 lias['alias_normalized'],.$alias
48260 5b 27 61 6c 69 61 73 27 5d 29 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 ['alias']));.$aliasPackage->setR
48280 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 61 6c 69 61 73 50 61 63 ootPackageAlias(true);.$aliasPac
482a0 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 0a 24 74 68 69 73 kage->setId($this->id++);..$this
482c0 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 66 ->packages[].=.$aliasPackage;..f
482e0 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 oreach.($aliasPackage->getNames(
48300 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 ).as.$name).{.$this->packageByNa
48320 6d 65 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 7d me[$name][].=.$aliasPackage;.}.}
48340 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 .}.}.}.}.}..public.function.getP
48360 72 69 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 riority(RepositoryInterface.$rep
48380 6f 29 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 72 o).{.$priority.=.array_search($r
483a0 65 70 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b epo,.$this->repositories,.true);
483c0 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 68 72 ..if.(false.===.$priority).{.thr
483e0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 ow.new.\RuntimeException("Could.
48400 6e 6f 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 69 74 not.determine.repository.priorit
48420 79 2e 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 73 74 y..The.repository.was.not.regist
48440 65 72 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 2d ered.in.the.pool.");.}..return.-
48460 24 70 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $priority;.}........public.funct
48480 69 6f 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e ion.packageById($id).{.$this->en
484a0 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 surePackageIsLoaded($this->packa
484c0 67 65 73 5b 24 69 64 20 2d 20 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 ges[$id.-.1]);..return.$this->pa
484e0 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ckages[$id.-.1];.}..........publ
48500 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 ic.function.whatProvides($name,.
48520 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 LinkConstraintInterface.$constra
48540 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 int.=.null).{.if.(isset($this->p
48560 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f roviderCache[$name][(string).$co
48580 6e 73 74 72 61 69 6e 74 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 nstraint])).{.return.$this->prov
485a0 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 iderCache[$name][(string).$const
485c0 72 61 69 6e 74 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 raint];.}..return.$this->provide
485e0 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 72 61 69 rCache[$name][(string).$constrai
48600 6e 74 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 nt].=.$this->computeWhatProvides
48620 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 ($name,.$constraint);.}.....priv
48640 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 ate.function.computeWhatProvides
48660 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 24 63 61 6e 64 69 64 61 74 ($name,.$constraint).{.$candidat
48680 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 es.=.array();..foreach.($this->p
486a0 72 6f 76 69 64 65 72 52 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 68 roviderRepos.as.$repo).{.foreach
486c0 20 28 24 72 65 70 6f 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 74 68 69 73 2c 20 24 6e 61 .($repo->whatProvides($this,.$na
486e0 6d 65 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 me).as.$candidate).{.$candidates
48700 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d [].=.$candidate;.if.($candidate-
48720 3e 67 65 74 49 64 28 29 20 3c 20 31 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 2d 3e 73 65 74 49 >getId().<.1).{.$candidate->setI
48740 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b d($this->id++);.$this->packages[
48760 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d $this->id.-.2].=.$candidate;.}.}
48780 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 .}..if.(isset($this->packageByNa
487a0 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 me[$name])).{.$candidates.=.arra
487c0 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 65 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b y_merge($candidates,.$this->pack
487e0 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d ageByName[$name]);.}..if.(null.=
48800 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 ==.$constraint).{.foreach.($cand
48820 69 64 61 74 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a idates.as.$key.=>.$candidate).{.
48840 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 $candidates[$key].=.$this->ensur
48860 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 7d 0a ePackageIsLoaded($candidate);.}.
48880 0a 72 65 74 75 72 6e 20 24 63 61 6e 64 69 64 61 74 65 73 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 .return.$candidates;.}..$matches
488a0 20 3d 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e .=.$provideMatches.=.array();.$n
488c0 61 6d 65 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e ameMatch.=.false;..foreach.($can
488e0 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 73 77 69 74 63 68 20 didates.as.$candidate).{.switch.
48900 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c ($this->match($candidate,.$name,
48920 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 .$constraint)).{.case.self::MATC
48940 48 5f 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 H_NONE:.break;..case.self::MATCH
48960 5f 4e 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b _NAME:.$nameMatch.=.true;.break;
48980 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d ..case.self::MATCH:.$nameMatch.=
489a0 20 74 72 75 65 3b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 .true;.$matches[].=.$this->ensur
489c0 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 ePackageIsLoaded($candidate);.br
489e0 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 3a 0a eak;..case.self::MATCH_PROVIDE:.
48a00 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 $provideMatches[].=.$this->ensur
48a20 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 ePackageIsLoaded($candidate);.br
48a40 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3a 0a eak;..case.self::MATCH_REPLACE:.
48a60 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 $matches[].=.$this->ensurePackag
48a80 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 eIsLoaded($candidate);.break;..d
48aa0 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c efault:.throw.new.\UnexpectedVal
48ac0 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6d 61 74 63 68 20 74 79 ueException('Unexpected.match.ty
48ae0 70 65 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 61 6d 65 4d 61 74 63 68 29 20 7b 0a 72 pe');.}.}....if.($nameMatch).{.r
48b00 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f eturn.$matches;.}..return.array_
48b20 6d 65 72 67 65 28 24 6d 61 74 63 68 65 73 2c 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 29 merge($matches,.$provideMatches)
48b40 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 61 ;.}..public.function.literalToPa
48b60 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 ckage($literal).{.$packageId.=.a
48b80 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 bs($literal);..return.$this->pac
48ba0 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 kageById($packageId);.}..public.
48bc0 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 function.literalToString($litera
48be0 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 l).{.return.($literal.>.0.?.'+'.
48c00 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 :.'-')...$this->literalToPackage
48c20 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c ($literal);.}..public.function.l
48c40 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 iteralToPrettyString($literal,.$
48c60 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 installedMap).{.$package.=.$this
48c80 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 ->literalToPackage($literal);..i
48ca0 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d f.(isset($installedMap[$package-
48cc0 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 >getId()])).{.$prefix.=.($litera
48ce0 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 72 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c l.>.0.?.'keep'.:.'remove');.}.el
48d00 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 se.{.$prefix.=.($literal.>.0.?.'
48d20 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 20 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a install'.:.'don\'t.install');.}.
48d40 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 .return.$prefix.'.'.$package->ge
48d60 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tPrettyString();.}..public.funct
48d80 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 2c 20 24 ion.isPackageAcceptable($name,.$
48da0 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d stability).{...if.(!isset($this-
48dc0 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 69 73 73 65 74 >stabilityFlags[$name]).&&.isset
48de0 28 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 ($this->acceptableStabilities[$s
48e00 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 tability])).{.return.true;.}....
48e20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b if.(isset($this->stabilityFlags[
48e40 24 6e 61 6d 65 5d 29 20 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 $name]).&&.BasePackage::$stabili
48e60 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 ties[$stability].<=.$this->stabi
48e80 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b lityFlags[$name]).{.return.true;
48ea0 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e .}..return.false;.}..private.fun
48ec0 63 74 69 6f 6e 20 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 64 61 74 ction.ensurePackageIsLoaded($dat
48ee0 61 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 69 66 20 28 a).{.if.(is_array($data)).{.if.(
48f00 69 73 73 65 74 28 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 29 29 20 7b 0a 24 61 6c 69 isset($data['alias_of'])).{.$ali
48f20 61 73 4f 66 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 64 61 74 61 5b asOf.=.$this->packageById($data[
48f40 27 61 6c 69 61 73 5f 6f 66 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 'alias_of']);.$package.=.$this->
48f60 70 61 63 6b 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 5d 20 3d 20 24 64 61 74 packages[$data['id'].-.1].=.$dat
48f80 61 5b 27 72 65 70 6f 27 5d 2d 3e 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 64 61 74 a['repo']->loadAliasPackage($dat
48fa0 61 2c 20 24 61 6c 69 61 73 4f 66 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 a,.$aliasOf);.$package->setRootP
48fc0 61 63 6b 61 67 65 41 6c 69 61 73 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 72 6f 6f 74 5f 61 ackageAlias(!empty($data['root_a
48fe0 6c 69 61 73 27 5d 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 lias']));.}.else.{.$package.=.$t
49000 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 5d 20 3d his->packages[$data['id'].-.1].=
49020 20 24 64 61 74 61 5b 27 72 65 70 6f 27 5d 2d 3e 6c 6f 61 64 50 61 63 6b 61 67 65 28 24 64 61 74 .$data['repo']->loadPackage($dat
49040 61 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 64 61 74 61 5b 27 69 64 a);.}..$package->setId($data['id
49060 27 5d 29 3b 0a 24 64 61 74 61 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ']);.$data.=.$package;.}..return
49080 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .$data;.}...........private.func
490a0 74 69 6f 6e 20 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 4c 69 tion.match($candidate,.$name,.Li
490c0 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e nkConstraintInterface.$constrain
490e0 74 29 0a 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 29 29 t).{...if.(is_array($candidate))
49100 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 5b 27 .{.$candidateName.=.$candidate['
49120 6e 61 6d 65 27 5d 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e name'];.$candidateVersion.=.$can
49140 64 69 64 61 74 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 didate['version'];.}.else.{...$c
49160 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 andidateName.=.$candidate->getNa
49180 6d 65 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e 64 69 me();.$candidateVersion.=.$candi
491a0 64 61 74 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 6e 64 date->getVersion();.}..if.($cand
491c0 69 64 61 74 65 4e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 idateName.===.$name).{.return.$c
491e0 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f onstraint->matches(new.VersionCo
49200 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e nstraint('==',.$candidateVersion
49220 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e )).?.self::MATCH.:.self::MATCH_N
49240 41 4d 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 29 AME;.}..if.(is_array($candidate)
49260 29 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 69 73 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 ).{.$provides.=.isset($candidate
49280 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3f 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 ['provide']).?.$this->versionPar
492a0 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 2c 20 ser->parseLinks($candidateName,.
492c0 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 24 $candidateVersion,.'provides',.$
492e0 63 61 6e 64 69 64 61 74 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3a 20 61 72 72 61 79 28 29 3b candidate['provide']).:.array();
49300 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 69 73 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 5b 27 72 .$replaces.=.isset($candidate['r
49320 65 70 6c 61 63 65 27 5d 29 0a 3f 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 eplace']).?.$this->versionParser
49340 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 2c 20 24 63 61 ->parseLinks($candidateName,.$ca
49360 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c 20 27 72 65 70 6c 61 63 65 73 27 2c 20 24 63 61 6e ndidateVersion,.'replaces',.$can
49380 64 69 64 61 74 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 0a 3a 20 61 72 72 61 79 28 29 3b 0a 7d 20 didate['replace']).:.array();.}.
493a0 65 6c 73 65 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 else.{.$provides.=.$candidate->g
493c0 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 24 63 61 6e 64 69 etProvides();.$replaces.=.$candi
493e0 64 61 74 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 date->getReplaces();.}....if.(is
49400 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 30 5d 29 20 7c 7c 20 69 73 73 65 74 28 24 70 72 6f 76 set($replaces[0]).||.isset($prov
49420 69 64 65 73 5b 30 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 73 20 61 ides[0])).{.foreach.($provides.a
49440 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 s.$link).{.if.($link->getTarget(
49460 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 ).===.$name.&&.$constraint->matc
49480 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 20 7b 0a 72 hes($link->getConstraint())).{.r
494a0 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 3b 0a 7d 0a 7d 0a 0a eturn.self::MATCH_PROVIDE;.}.}..
494c0 66 6f 72 65 61 63 68 20 28 24 72 65 70 6c 61 63 65 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 foreach.($replaces.as.$link).{.i
494e0 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 f.($link->getTarget().===.$name.
49500 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 &&.$constraint->matches($link->g
49520 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a etConstraint())).{.return.self::
49540 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a MATCH_REPLACE;.}.}..return.self:
49560 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 76 69 :MATCH_NONE;.}..if.(isset($provi
49580 64 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 des[$name]).&&.$constraint->matc
495a0 68 65 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 hes($provides[$name]->getConstra
495c0 69 6e 74 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f int())).{.return.self::MATCH_PRO
495e0 56 49 44 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 VIDE;.}..if.(isset($replaces[$na
49600 6d 65 5d 29 20 26 26 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 72 65 me]).&&.$constraint->matches($re
49620 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 places[$name]->getConstraint()))
49640 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3b 0a 7d .{.return.self::MATCH_REPLACE;.}
49660 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 7d 0a 3c ..return.self::MATCH_NONE;.}.}.<
49680 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
496a0 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 er\DependencyResolver;.....class
496c0 20 52 75 6c 65 0a 7b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f .Rule.{.const.RULE_INTERNAL_ALLO
496e0 57 5f 55 50 44 41 54 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 W_UPDATE.=.1;.const.RULE_JOB_INS
49700 54 41 4c 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 20 TALL.=.2;.const.RULE_JOB_REMOVE.
49720 3d 20 33 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 =.3;.const.RULE_PACKAGE_CONFLICT
49740 20 3d 20 36 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 .=.6;.const.RULE_PACKAGE_REQUIRE
49760 53 20 3d 20 37 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 S.=.7;.const.RULE_PACKAGE_OBSOLE
49780 54 45 53 20 3d 20 38 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 TES.=.8;.const.RULE_INSTALLED_PA
497a0 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f CKAGE_OBSOLETES.=.9;.const.RULE_
497c0 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 52 55 PACKAGE_SAME_NAME.=.10;.const.RU
497e0 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 LE_PACKAGE_IMPLICIT_OBSOLETES.=.
49800 31 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 3d 20 31 32 3b 0a 63 6f 6e 11;.const.RULE_LEARNED.=.12;.con
49820 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d 20 31 33 3b 0a 0a 70 72 6f st.RULE_PACKAGE_ALIAS.=.13;..pro
49840 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 61 62 6c tected.$pool;..protected.$disabl
49860 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 74 65 72 61 6c 73 3b 0a 70 72 6f 74 65 63 74 ed;.protected.$literals;.protect
49880 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 70 72 6f 74 65 63 ed.$type;.protected.$id;..protec
498a0 74 65 64 20 24 6a 6f 62 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 48 61 73 68 3b 0a ted.$job;..protected.$ruleHash;.
498c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f .public.function.__construct(Poo
498e0 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f l.$pool,.array.$literals,.$reaso
49900 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 n,.$reasonData,.$job.=.null).{.$
49920 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 0a 0a 20 73 6f 72 74 28 24 6c 69 74 this->pool.=.$pool;....sort($lit
49940 65 72 61 6c 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 3d 20 24 6c 69 74 65 erals);..$this->literals.=.$lite
49960 72 61 6c 73 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 24 rals;.$this->reason.=.$reason;.$
49980 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a this->reasonData.=.$reasonData;.
499a0 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 74 68 69 73 .$this->disabled.=.false;..$this
499c0 2d 3e 6a 6f 62 20 3d 20 24 6a 6f 62 3b 0a 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 2d 31 3b ->job.=.$job;..$this->type.=.-1;
499e0 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 3d 20 73 75 62 73 74 72 28 6d 64 35 28 69 ..$this->ruleHash.=.substr(md5(i
49a00 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 29 2c 20 30 mplode(',',.$this->literals)),.0
49a20 2c 20 35 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 61 73 68 ,.5);.}..public.function.getHash
49a40 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 3b 0a 7d 0a 0a ().{.return.$this->ruleHash;.}..
49a60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 public.function.setId($id).{.$th
49a80 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e is->id.=.$id;.}..public.function
49aa0 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a .getId().{.return.$this->id;.}..
49ac0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 74 75 72 public.function.getJob().{.retur
49ae0 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$this->job;.}..........public.
49b00 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 69 66 function.equals(Rule.$rule).{.if
49b20 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 72 75 6c .($this->ruleHash.!==.$rule->rul
49b40 65 48 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 63 6f eHash).{.return.false;.}..if.(co
49b60 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 6f 75 6e 74 28 24 72 unt($this->literals).!=.count($r
49b80 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a ule->literals)).{.return.false;.
49ba0 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 }..for.($i.=.0,.$n.=.count($this
49bc0 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 ->literals);.$i.<.$n;.$i++).{.if
49be0 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d 20 24 72 75 6c 65 2d .($this->literals[$i].!==.$rule-
49c00 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d >literals[$i]).{.return.false;.}
49c20 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .}..return.true;.}..public.funct
49c40 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 ion.setType($type).{.$this->type
49c60 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .=.$type;.}..public.function.get
49c80 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a Type().{.return.$this->type;.}..
49ca0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 public.function.disable().{.$thi
49cc0 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 s->disabled.=.true;.}..public.fu
49ce0 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 nction.enable().{.$this->disable
49d00 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 d.=.false;.}..public.function.is
49d20 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 61 62 Disabled().{.return.$this->disab
49d40 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 led;.}..public.function.isEnable
49d60 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d d().{.return.!$this->disabled;.}
49d80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a ..public.function.getLiterals().
49da0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 {.return.$this->literals;.}..pub
49dc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 lic.function.isAssertion().{.ret
49de0 75 72 6e 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 urn.1.===.count($this->literals)
49e00 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 ;.}..public.function.getPrettySt
49e20 72 69 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 ring(array.$installedMap.=.array
49e40 28 29 29 0a 7b 0a 24 72 75 6c 65 54 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 ()).{.$ruleText.=.'';.foreach.($
49e60 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c this->literals.as.$i.=>.$literal
49e80 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 ).{.if.($i.!=.0).{.$ruleText..=.
49ea0 27 7c 27 3b 0a 7d 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d '|';.}.$ruleText..=.$this->pool-
49ec0 3e 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c >literalToPrettyString($literal,
49ee0 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 .$installedMap);.}..switch.($thi
49f00 73 2d 3e 72 65 61 73 6f 6e 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 s->reason).{.case.self::RULE_INT
49f20 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 ERNAL_ALLOW_UPDATE:.return.$rule
49f40 54 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 Text;..case.self::RULE_JOB_INSTA
49f60 4c 4c 3a 0a 72 65 74 75 72 6e 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 LL:.return."Install.command.rule
49f80 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f .($ruleText)";..case.self::RULE_
49fa0 4a 4f 42 5f 52 45 4d 4f 56 45 3a 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 JOB_REMOVE:.return."Remove.comma
49fc0 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 nd.rule.($ruleText)";..case.self
49fe0 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 ::RULE_PACKAGE_CONFLICT:.$packag
4a000 65 31 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 e1.=.$this->pool->literalToPacka
4a020 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 ge($this->literals[0]);.$package
4a040 32 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 2.=.$this->pool->literalToPackag
4a060 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 e($this->literals[1]);..return.$
4a080 70 61 63 6b 61 67 65 31 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 63 6f package1->getPrettyString().'.co
4a0a0 6e 66 6c 69 63 74 73 20 77 69 74 68 20 27 2e 24 70 61 63 6b 61 67 65 32 2d 3e 67 65 74 50 72 65 nflicts.with.'.$package2->getPre
4a0c0 74 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 27 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c ttyString().'.';..case.self::RUL
4a0e0 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 E_PACKAGE_REQUIRES:.$literals.=.
4a100 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 20 $this->literals;.$sourceLiteral.
4a120 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 63 =.array_shift($literals);.$sourc
4a140 65 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 ePackage.=.$this->pool->literalT
4a160 6f 50 61 63 6b 61 67 65 28 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 29 3b 0a 0a 24 72 65 71 75 oPackage($sourceLiteral);..$requ
4a180 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 ires.=.array();.foreach.($litera
4a1a0 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 ls.as.$literal).{.$requires[].=.
4a1c0 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c $this->pool->literalToPackage($l
4a1e0 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f iteral);.}..$text.=.$this->reaso
4a200 6e 44 61 74 61 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 73 6f 75 72 63 65 50 61 nData->getPrettyString($sourcePa
4a220 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 72 65 71 75 69 72 ckage);.if.($requires).{.$requir
4a240 65 54 65 78 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 eText.=.array();.foreach.($requi
4a260 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 54 65 78 74 5b res.as.$require).{.$requireText[
4a280 5d 20 3d 20 24 72 65 71 75 69 72 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b ].=.$require->getPrettyString();
4a2a0 0a 7d 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 .}.$text..=.'.->.satisfiable.by.
4a2c0 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 65 71 75 69 72 65 54 65 78 74 29 2e 27 2e '.implode(',.',.$requireText).'.
4a2e0 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d ';.}.else.{.$targetName.=.$this-
4a300 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 0a 0a 20 69 66 20 >reasonData->getTarget();....if.
4a320 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 65 78 74 2d (0.===.strpos($targetName,.'ext-
4a340 27 29 29 20 7b 0a 24 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d 65 2c ')).{.$ext.=.substr($targetName,
4a360 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 24 .4);.$error.=.extension_loaded($
4a380 65 78 74 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 ext).?.'has.the.wrong.version.('
4a3a0 2e 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 .phpversion($ext).').installed'.
4a3c0 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b :.'is.missing.from.your.system';
4a3e0 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 ..$text..=.'.->.the.requested.PH
4a400 50 20 65 78 74 65 6e 73 69 6f 6e 20 27 2e 24 65 78 74 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e P.extension.'.$ext.'.'.$error.'.
4a420 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 ';.}.elseif.(0.===.strpos($targe
4a440 74 4e 61 6d 65 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 0a 20 24 6c 69 62 20 3d 20 73 75 62 73 74 tName,.'lib-')).{...$lib.=.subst
4a460 72 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d r($targetName,.4);..$text..=.'.-
4a480 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 27 >.the.requested.linked.library.'
4a4a0 2e 24 6c 69 62 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e .$lib.'.has.the.wrong.version.in
4a4c0 73 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 stalled.or.is.missing.from.your.
4a4e0 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 system,.make.sure.to.have.the.ex
4a500 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b tension.providing.it.';.}.else.{
4a520 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 .$text..=.'.->.no.matching.packa
4a540 67 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a ge.found.';.}.}..return.$text;..
4a560 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 case.self::RULE_PACKAGE_OBSOLETE
4a580 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a S:.return.$ruleText;.case.self::
4a5a0 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 RULE_INSTALLED_PACKAGE_OBSOLETES
4a5c0 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 :.return.$ruleText;.case.self::R
4a5e0 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 3a 0a 24 74 65 78 74 20 3d 20 22 ULE_PACKAGE_SAME_NAME:.$text.=."
4a600 43 61 6e 20 6f 6e 6c 79 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 22 3b 0a 0a 24 70 61 Can.only.install.one.of:.";..$pa
4a620 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ckages.=.array();.foreach.($this
4a640 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a ->literals.as.$i.=>.$literal).{.
4a660 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 $packages[].=.$this->pool->liter
4a680 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 2d 3e 67 65 74 50 72 65 74 74 79 alToPackage($literal)->getPretty
4a6a0 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 2e 69 6d 70 6c 6f 64 String();.}..return.$text.implod
4a6c0 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 73 29 2e 27 2e 27 3b 0a 63 61 73 65 20 73 65 6c e(',.',.$packages).'.';.case.sel
4a6e0 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 f::RULE_PACKAGE_IMPLICIT_OBSOLET
4a700 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a ES:.return.$ruleText;.case.self:
4a720 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 6e 20 27 43 6f 6e 63 6c 75 73 69 6f :RULE_LEARNED:.return.'Conclusio
4a740 6e 3a 20 27 2e 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f n:.'.$ruleText;.case.self::RULE_
4a760 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b PACKAGE_ALIAS:.return.$ruleText;
4a780 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 .}.}.......public.function.__toS
4a7a0 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 24 74 68 69 73 2d 3e 69 73 44 69 tring().{.$result.=.($this->isDi
4a7c0 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 64 28 27 20 3a 20 27 28 27 3b 0a 0a sabled()).?.'disabled('.:.'(';..
4a7e0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d foreach.($this->literals.as.$i.=
4a800 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b 0a 24 72 65 >.$literal).{.if.($i.!=.0).{.$re
4a820 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 74 68 69 73 2d sult..=.'|';.}.$result..=.$this-
4a840 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 >pool->literalToString($literal)
4a860 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 ;.}..$result..=.')';..return.$re
4a880 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 sult;.}.}.<?php............names
4a8a0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 pace.Composer\DependencyResolver
4a8c0 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
4a8e0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 nterface;.use.Composer\Package\A
4a900 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 47 65 liasPackage;.....class.RuleSetGe
4a920 6e 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f nerator.{.protected.$policy;.pro
4a940 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a tected.$pool;.protected.$rules;.
4a960 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 protected.$jobs;.protected.$inst
4a980 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e alledMap;..public.function.__con
4a9a0 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 struct(PolicyInterface.$policy,.
4a9c0 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 Pool.$pool).{.$this->policy.=.$p
4a9e0 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a olicy;.$this->pool.=.$pool;.}...
4aa00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .............protected.function.
4aa20 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 createRequireRule(PackageInterfa
4aa40 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 72 73 2c 20 24 ce.$package,.array.$providers,.$
4aa60 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6c reason,.$reasonData.=.null).{.$l
4aa80 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 iterals.=.array(-$package->getId
4aaa0 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 ());..foreach.($providers.as.$pr
4aac0 6f 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 ovider).{...if.($provider.===.$p
4aae0 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 24 6c 69 74 65 72 61 ackage).{.return.null;.}.$litera
4ab00 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 ls[].=.$provider->getId();.}..re
4ab20 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 turn.new.Rule($this->pool,.$lite
4ab40 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a rals,.$reason,.$reasonData);.}..
4ab60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 ............protected.function.c
4ab80 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 61 72 72 61 79 20 24 70 61 63 reateInstallOneOfRule(array.$pac
4aba0 6b 61 67 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 24 6c 69 74 65 72 61 6c kages,.$reason,.$job).{.$literal
4abc0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 s.=.array();.foreach.($packages.
4abe0 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 61 as.$package).{.$literals[].=.$pa
4ac00 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 ckage->getId();.}..return.new.Ru
4ac20 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 le($this->pool,.$literals,.$reas
4ac40 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a on,.$job['packageName'],.$job);.
4ac60 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e }.............protected.function
4ac80 20 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 .createRemoveRule(PackageInterfa
4aca0 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 72 65 ce.$package,.$reason,.$job).{.re
4acc0 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 turn.new.Rule($this->pool,.array
4ace0 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 (-$package->getId()),.$reason,.$
4ad00 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a job['packageName'],.$job);.}....
4ad20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 ............protected.function.c
4ad40 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 reateConflictRule(PackageInterfa
4ad60 63 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 72 ce.$issuer,.PackageInterface.$pr
4ad80 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e ovider,.$reason,.$reasonData.=.n
4ada0 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 75 65 72 20 3d 3d 3d 20 24 70 72 6f 76 69 64 ull).{...if.($issuer.===.$provid
4adc0 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 er).{.return.null;.}..return.new
4ade0 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 2d 24 69 73 73 75 65 .Rule($this->pool,.array(-$issue
4ae00 72 2d 3e 67 65 74 49 64 28 29 2c 20 2d 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 49 64 28 29 29 r->getId(),.-$provider->getId())
4ae20 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ,.$reason,.$reasonData);.}......
4ae40 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 24 74 .....private.function.addRule($t
4ae60 79 70 65 2c 20 52 75 6c 65 20 24 6e 65 77 52 75 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 ype,.Rule.$newRule.=.null).{.if.
4ae80 28 21 24 6e 65 77 52 75 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 63 6f 6e 74 (!$newRule.||.$this->rules->cont
4aea0 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d ainsEqual($newRule)).{.return;.}
4aec0 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 24 74 ..$this->rules->add($newRule,.$t
4aee0 79 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 ype);.}..protected.function.addR
4af00 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ulesForPackage(PackageInterface.
4af20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 $package).{.$workQueue.=.new.\Sp
4af40 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 61 63 lQueue;.$workQueue->enqueue($pac
4af60 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 45 6d kage);..while.(!$workQueue->isEm
4af80 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 2d 3e pty()).{.$package.=.$workQueue->
4afa0 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 64 65 dequeue();.if.(isset($this->adde
4afc0 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 dMap[$package->getId()])).{.cont
4afe0 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 inue;.}..$this->addedMap[$packag
4b000 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 e->getId()].=.true;..foreach.($p
4b020 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 ackage->getRequires().as.$link).
4b040 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f {.$possibleRequires.=.$this->poo
4b060 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 l->whatProvides($link->getTarget
4b080 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 24 74 (),.$link->getConstraint());..$t
4b0a0 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 his->addRule(RuleSet::TYPE_PACKA
4b0c0 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 GE,.$rule.=.$this->createRequire
4b0e0 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 Rule($package,.$possibleRequires
4b100 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 2c 20 24 ,.Rule::RULE_PACKAGE_REQUIRES,.$
4b120 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 link));..foreach.($possibleRequi
4b140 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 res.as.$require).{.$workQueue->e
4b160 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 nqueue($require);.}.}..foreach.(
4b180 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 20 61 73 20 24 6c 69 6e $package->getConflicts().as.$lin
4b1a0 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 3d 20 24 74 68 69 73 2d k).{.$possibleConflicts.=.$this-
4b1c0 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 >pool->whatProvides($link->getTa
4b1e0 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b rget(),.$link->getConstraint());
4b200 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 61 73 ..foreach.($possibleConflicts.as
4b220 20 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c .$conflict).{.$this->addRule(Rul
4b240 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 eSet::TYPE_PACKAGE,.$this->creat
4b260 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 66 6c 69 63 eConflictRule($package,.$conflic
4b280 74 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 2c 20 t,.Rule::RULE_PACKAGE_CONFLICT,.
4b2a0 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 6e 73 74 61 6c 6c 65 64 20 3d 20 28 $link));.}.}....$isInstalled.=.(
4b2c0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 isset($this->installedMap[$packa
4b2e0 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 ge->getId()]));..foreach.($packa
4b300 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f ge->getReplaces().as.$link).{.$o
4b320 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e bsoleteProviders.=.$this->pool->
4b340 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c whatProvides($link->getTarget(),
4b360 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 .$link->getConstraint());..forea
4b380 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 ch.($obsoleteProviders.as.$provi
4b3a0 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 der).{.if.($provider.===.$packag
4b3c0 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 e).{.continue;.}..if.(!$this->ob
4b3e0 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 soleteImpossibleForAlias($packag
4b400 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 69 73 49 e,.$provider)).{.$reason.=.($isI
4b420 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 nstalled).?.Rule::RULE_INSTALLED
4b440 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f _PACKAGE_OBSOLETES.:.Rule::RULE_
4b460 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c PACKAGE_OBSOLETES;.$this->addRul
4b480 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e e(RuleSet::TYPE_PACKAGE,.$this->
4b4a0 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 createConflictRule($package,.$pr
4b4c0 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a ovider,.$reason,.$link));.}.}.}.
4b4e0 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f .$obsoleteProviders.=.$this->poo
4b500 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d l->whatProvides($package->getNam
4b520 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 e(),.null);..foreach.($obsoleteP
4b540 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 roviders.as.$provider).{.if.($pr
4b560 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b ovider.===.$package).{.continue;
4b580 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 .}..if.(($package.instanceof.Ali
4b5a0 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 asPackage).&&.$package->getAlias
4b5c0 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 Of().===.$provider).{.$this->add
4b5e0 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c Rule(RuleSet::TYPE_PACKAGE,.$rul
4b600 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 e.=.$this->createRequireRule($pa
4b620 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 65 72 29 2c 20 52 75 6c 65 3a 3a 52 ckage,.array($provider),.Rule::R
4b640 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d ULE_PACKAGE_ALIAS,.$package));.}
4b660 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 .elseif.(!$this->obsoleteImpossi
4b680 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 bleForAlias($package,.$provider)
4b6a0 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 ).{.$reason.=.($package->getName
4b6c0 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3f 20 52 75 ().==.$provider->getName()).?.Ru
4b6e0 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3a 20 52 75 6c le::RULE_PACKAGE_SAME_NAME.:.Rul
4b700 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 e::RULE_PACKAGE_IMPLICIT_OBSOLET
4b720 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 ES;.$this->addRule(RuleSet::TYPE
4b740 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 _PACKAGE,.$rule.=.$this->createC
4b760 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c onflictRule($package,.$provider,
4b780 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 .$reason,.$package));.}.}.}.}..p
4b7a0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 rotected.function.obsoleteImposs
4b7c0 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 ibleForAlias($package,.$provider
4b7e0 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 20 69 ).{.$packageIsAlias.=.$package.i
4b800 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 70 72 6f 76 69 64 65 nstanceof.AliasPackage;.$provide
4b820 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 rIsAlias.=.$provider.instanceof.
4b840 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f 73 73 69 62 6c 65 20 3d 20 28 0a 28 AliasPackage;..$impossible.=.(.(
4b860 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 $packageIsAlias.&&.$package->get
4b880 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7c 7c 0a 28 24 70 72 AliasOf().===.$provider).||.($pr
4b8a0 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 oviderIsAlias.&&.$provider->getA
4b8c0 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7c 7c 0a 28 24 70 61 63 6b liasOf().===.$package).||.($pack
4b8e0 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 ageIsAlias.&&.$providerIsAlias.&
4b900 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 &.$provider->getAliasOf().===.$p
4b920 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 0a 29 3b 0a 0a 72 65 74 75 72 6e ackage->getAliasOf()).);..return
4b940 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 .$impossible;.}........private.f
4b960 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 67 65 unction.addRulesForUpdatePackage
4b980 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 s(PackageInterface.$package).{.$
4b9a0 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 updates.=.$this->policy->findUpd
4b9c0 61 74 65 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e atePackages($this->pool,.$this->
4b9e0 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 66 6f 72 65 61 63 installedMap,.$package);..foreac
4ba00 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d h.($updates.as.$update).{.$this-
4ba20 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 75 70 64 61 74 65 29 3b 0a 7d 0a >addRulesForPackage($update);.}.
4ba40 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f }..protected.function.addRulesFo
4ba60 72 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 rJobs().{.foreach.($this->jobs.a
4ba80 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b s.$job).{.switch.($job['cmd']).{
4baa0 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 .case.'install':.if.($job['packa
4bac0 67 65 73 27 5d 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 ges']).{.foreach.($job['packages
4bae0 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 '].as.$package).{.if.(!isset($th
4bb00 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 is->installedMap[$package->getId
4bb20 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 ()])).{.$this->addRulesForPackag
4bb40 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d e($package);.}.}..$rule.=.$this-
4bb60 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 24 6a 6f 62 5b 27 70 61 >createInstallOneOfRule($job['pa
4bb80 63 6b 61 67 65 73 27 5d 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c ckages'],.Rule::RULE_JOB_INSTALL
4bba0 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a ,.$job);.$this->addRule(RuleSet:
4bbc0 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 :TYPE_JOB,.$rule);.}.break;.case
4bbe0 20 27 72 65 6d 6f 76 65 27 3a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 .'remove':.....foreach.($job['pa
4bc00 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 ckages'].as.$package).{.$rule.=.
4bc20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 $this->createRemoveRule($package
4bc40 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 2c 20 24 6a 6f 62 29 3b 0a ,.Rule::RULE_JOB_REMOVE,.$job);.
4bc60 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 $this->addRule(RuleSet::TYPE_JOB
4bc80 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 ,.$rule);.}.break;.}.}.}..public
4bca0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 46 6f 72 28 24 6a 6f 62 73 2c 20 24 69 6e .function.getRulesFor($jobs,.$in
4bcc0 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 6a 6f 62 stalledMap).{.$this->jobs.=.$job
4bce0 73 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 3b 0a 24 s;.$this->rules.=.new.RuleSet;.$
4bd00 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d this->installedMap.=.$installedM
4bd20 61 70 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 ap;..foreach.($this->installedMa
4bd40 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 p.as.$package).{.$this->addRules
4bd60 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 ForPackage($package);.$this->add
4bd80 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 29 RulesForUpdatePackages($package)
4bda0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 29 3b 0a 0a ;.}..$this->addRulesForJobs();..
4bdc0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a return.$this->rules;.}.}.<?php..
4bde0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
4be00 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 62 75 67 endencyResolver;.....class.Debug
4be20 53 6f 6c 76 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 Solver.extends.Solver.{.protecte
4be40 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a d.function.printDecisionMap().{.
4be60 65 63 68 6f 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 echo."\nDecisionMap:.\n";.foreac
4be80 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 h.($this->decisionMap.as.$packag
4bea0 65 49 64 20 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 eId.=>.$level).{.if.($packageId.
4bec0 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 ===.0).{.continue;.}.if.($level.
4bee0 3e 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f >.0).{.echo.'....+'...$this->poo
4bf00 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b l->packageById($packageId)."\n";
4bf20 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 .}.elseif.($level.<.0).{.echo.'.
4bf40 20 20 20 2d 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 ...-'...$this->pool->packageById
4bf60 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 65 63 68 6f ($packageId)."\n";.}.else.{.echo
4bf80 20 27 20 20 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 .'....?'...$this->pool->packageB
4bfa0 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 yId($packageId)."\n";.}.}.echo."
4bfc0 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 \n";.}..protected.function.print
4bfe0 44 65 63 69 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 63 68 6f 20 22 44 65 63 69 73 69 6f 6e DecisionQueue().{.echo."Decision
4c000 51 75 65 75 65 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 Queue:.\n";.foreach.($this->deci
4c020 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 65 sionQueue.as.$i.=>.$literal).{.e
4c040 63 68 6f 20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 cho.'....'...$this->pool->litera
4c060 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 20 2e 20 27 20 27 20 2e 20 24 74 68 69 lToString($literal)...'.'...$thi
4c080 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 5b 24 69 5d 2e 22 20 6c 65 76 65 6c 20 s->decisionQueueWhy[$i].".level.
4c0a0 22 2e 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 ".$this->decisionMap[abs($litera
4c0c0 6c 29 5d 2e 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 l)]."\n";.}.echo."\n";.}..protec
4c0e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 57 61 74 63 68 65 73 28 29 0a 7b 0a 65 63 ted.function.printWatches().{.ec
4c100 68 6f 20 22 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ho."\nWatches:\n";.foreach.($thi
4c120 73 2d 3e 77 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 72 61 6c 49 64 20 3d 3e 20 24 77 61 74 s->watches.as.$literalId.=>.$wat
4c140 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 ch).{.echo.'..'.$this->literalFr
4c160 6f 6d 49 64 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c 6e 22 3b 0a 24 71 75 65 75 65 20 3d 20 omId($literalId)."\n";.$queue.=.
4c180 61 72 72 61 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c 20 24 77 61 74 63 68 29 29 3b 0a 0a 77 array(array('....',.$watch));..w
4c1a0 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 6c 69 73 74 28 24 69 6e hile.(!empty($queue)).{.list($in
4c1c0 64 65 6e 74 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 dent,.$watch).=.array_pop($queue
4c1e0 29 3b 0a 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 61 74 63 68 3b 0a 0a 69 66 20 28 24 77 );..echo.$indent.$watch;..if.($w
4c200 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d 27 2e 24 77 61 74 63 68 2d 3e 67 65 74 atch).{.echo.'.[id='.$watch->get
4c220 49 64 28 29 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 Id().',watch1='.$this->literalFr
4c240 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 31 29 2e 27 2c 77 61 74 63 68 32 3d 27 2e omId($watch->watch1).',watch2='.
4c260 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 $this->literalFromId($watch->wat
4c280 63 68 32 29 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 69 66 20 28 24 77 61 ch2)."]";.}..echo."\n";..if.($wa
4c2a0 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 20 tch.&&.($watch->next1.==.$watch.
4c2c0 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 29 20 7b 0a 69 ||.$watch->next2.==.$watch)).{.i
4c2e0 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 f.($watch->next1.==.$watch).{.ec
4c300 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a ho.$indent."....1.*RECURSION*";.
4c320 7d 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 20 7b }.if.($watch->next2.==.$watch).{
4c340 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 32 20 2a 52 45 43 55 52 53 49 4f 4e 2a .echo.$indent."....2.*RECURSION*
4c360 22 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 ";.}.}.elseif.($watch.&&.($watch
4c380 2d 3e 6e 65 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 20 7b 0a 24 69 6e ->next1.||.$watch->next2)).{.$in
4c3a0 64 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 31 27 2c 20 27 32 dent.=.str_replace(array('1',.'2
4c3c0 27 29 2c 20 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a 0a 61 72 72 61 79 5f 70 75 73 68 28 24 '),.'.',.$indent);..array_push($
4c3e0 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 32 20 27 2c 20 24 queue,.array($indent.'....2.',.$
4c400 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 watch->next2));.array_push($queu
4c420 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 31 20 27 2c 20 24 77 61 74 63 e,.array($indent.'....1.',.$watc
4c440 68 2d 3e 6e 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a h->next1));.}.}..echo."\n";.}.}.
4c460 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
4c480 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c poser\DependencyResolver;.....cl
4c4a0 61 73 73 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c ass.RuleSetIterator.implements.\
4c4c0 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f Iterator.{.protected.$rules;.pro
4c4e0 74 65 63 74 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 tected.$types;..protected.$curre
4c500 6e 74 4f 66 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 ntOffset;.protected.$currentType
4c520 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 3b 0a ;.protected.$currentTypeOffset;.
4c540 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 .public.function.__construct(arr
4c560 61 79 20 24 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 72 75 6c ay.$rules).{.$this->rules.=.$rul
4c580 65 73 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 es;.$this->types.=.array_keys($r
4c5a0 75 6c 65 73 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 29 3b 0a 0a 24 74 68 69 ules);.sort($this->types);..$thi
4c5c0 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s->rewind();.}..public.function.
4c5e0 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b current().{.return.$this->rules[
4c600 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 $this->currentType][$this->curre
4c620 6e 74 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 ntOffset];.}..public.function.ke
4c640 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 3b y().{.return.$this->currentType;
4c660 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 24 74 68 .}..public.function.next().{.$th
4c680 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 is->currentOffset++;..if.(!isset
4c6a0 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 ($this->rules[$this->currentType
4c6c0 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 ])).{.return;.}..if.($this->curr
4c6e0 65 6e 74 4f 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 entOffset.>=.sizeof($this->rules
4c700 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e [$this->currentType])).{.$this->
4c720 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e currentOffset.=.0;..do.{.$this->
4c740 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 currentTypeOffset++;..if.(!isset
4c760 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 ($this->types[$this->currentType
4c780 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d Offset])).{.$this->currentType.=
4c7a0 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 .-1;.break;.}..$this->currentTyp
4c7c0 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 e.=.$this->types[$this->currentT
4c7e0 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 ypeOffset];.}.while.(isset($this
4c800 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 ->types[$this->currentTypeOffset
4c820 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 ]).&&.!sizeof($this->rules[$this
4c840 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ->currentType]));.}.}..public.fu
4c860 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 nction.rewind().{.$this->current
4c880 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f Offset.=.0;..$this->currentTypeO
4c8a0 66 66 73 65 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d ffset.=.-1;.$this->currentType.=
4c8c0 20 2d 31 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 .-1;..do.{.$this->currentTypeOff
4c8e0 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b set++;..if.(!isset($this->types[
4c900 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 $this->currentTypeOffset])).{.$t
4c920 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a his->currentType.=.-1;.break;.}.
4c940 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 .$this->currentType.=.$this->typ
4c960 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 es[$this->currentTypeOffset];.}.
4c980 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d while.(isset($this->types[$this-
4c9a0 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 >currentTypeOffset]).&&.!sizeof(
4c9c0 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d $this->rules[$this->currentType]
4c9e0 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b ));.}..public.function.valid().{
4ca00 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 .return.isset($this->rules[$this
4ca20 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e ->currentType]).&&.isset($this->
4ca40 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d rules[$this->currentType][$this-
4ca60 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a >currentOffset]);.}.}.<?php.....
4ca80 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 .......namespace.Composer\Depend
4caa0 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c encyResolver;..........class.Rul
4cac0 65 57 61 74 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 eWatchChain.extends.\SplDoublyLi
4cae0 6e 6b 65 64 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 66 66 73 65 74 20 3d 20 30 nkedList.{.protected.$offset.=.0
4cb00 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 65 6b 28 24 6f 66 ;.......public.function.seek($of
4cb20 66 73 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 66 6f 72 20 28 24 69 fset).{.$this->rewind();.for.($i
4cb40 20 3d 20 30 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b 20 24 69 2b 2b 2c 20 24 74 68 69 73 2d .=.0;.$i.<.$offset;.$i++,.$this-
4cb60 3e 6e 65 78 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >next());.}..........public.func
4cb80 74 69 6f 6e 20 72 65 6d 6f 76 65 28 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 24 74 68 69 73 2d tion.remove().{.$offset.=.$this-
4cba0 3e 6b 65 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 55 6e 73 65 74 28 24 6f 66 66 73 >key();.$this->offsetUnset($offs
4cbc0 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f 66 66 73 65 74 29 3b 0a 7d 0a 7d 0a 3c et);.$this->seek($offset);.}.}.<
4cbe0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
4cc00 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 er\DependencyResolver;..use.Comp
4cc20 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 oser\Repository\RepositoryInterf
4cc40 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 0a 7b 0a 63 6f 6e 73 74 20 42 52 ace;.....class.Solver.{.const.BR
4cc60 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f ANCH_LITERALS.=.0;.const.BRANCH_
4cc80 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 LEVEL.=.1;..protected.$policy;.p
4cca0 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 rotected.$pool;.protected.$insta
4ccc0 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 lled;.protected.$rules;.protecte
4cce0 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 d.$ruleSetGenerator;.protected.$
4cd00 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 4d 61 70 20 updateAll;..protected.$addedMap.
4cd20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 4d 61 70 20 =.array();.protected.$updateMap.
4cd40 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 47 72 61 70 68 =.array();.protected.$watchGraph
4cd60 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 ;.protected.$decisions;.protecte
4cd80 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f d.$installedMap;..protected.$pro
4cda0 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 pagateIndex;.protected.$branches
4cdc0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 20 .=.array();.protected.$problems.
4cde0 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 64 50 6f 6f =.array();.protected.$learnedPoo
4ce00 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f l.=.array();..public.function.__
4ce20 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 construct(PolicyInterface.$polic
4ce40 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 y,.Pool.$pool,.RepositoryInterfa
4ce60 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d ce.$installed).{.$this->policy.=
4ce80 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 .$policy;.$this->pool.=.$pool;.$
4cea0 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 24 74 this->installed.=.$installed;.$t
4cec0 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 52 75 6c 65 his->ruleSetGenerator.=.new.Rule
4cee0 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 29 3b 0a 7d 0a SetGenerator($policy,.$pool);.}.
4cf00 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 41 73 73 65 72 74 69 6f ...private.function.makeAssertio
4cf20 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 69 73 69 6f 6e 53 74 61 72 nRuleDecisions().{.$decisionStar
4cf40 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 20 2d 20 31 3b t.=.count($this->decisions).-.1;
4cf60 0a 0a 24 72 75 6c 65 73 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c ..$rulesCount.=.count($this->rul
4cf80 65 73 29 3b 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 30 3b 20 24 72 75 6c 65 49 es);.for.($ruleIndex.=.0;.$ruleI
4cfa0 6e 64 65 78 20 3c 20 24 72 75 6c 65 73 43 6f 75 6e 74 3b 20 24 72 75 6c 65 49 6e 64 65 78 2b 2b ndex.<.$rulesCount;.$ruleIndex++
4cfc0 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 ).{.$rule.=.$this->rules->ruleBy
4cfe0 49 64 28 24 72 75 6c 65 49 6e 64 65 78 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 2d 3e 69 73 41 Id($ruleIndex);..if.(!$rule->isA
4d000 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 ssertion().||.$rule->isDisabled(
4d020 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 )).{.continue;.}..$literals.=.$r
4d040 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 ule->getLiterals();.$literal.=.$
4d060 6c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 literals[0];..if.(!$this->decisi
4d080 6f 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 ons->decided(abs($literal))).{.$
4d0a0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c this->decisions->decide($literal
4d0c0 2c 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 ,.1,.$rule);.continue;.}..if.($t
4d0e0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c his->decisions->satisfy($literal
4d100 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 53 65 74 3a )).{.continue;.}....if.(RuleSet:
4d120 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 54 79 70 65 :TYPE_LEARNED.===.$rule->getType
4d140 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 69 6e 75 65 ()).{.$rule->disable();.continue
4d160 3b 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e ;.}..$conflict.=.$this->decision
4d180 73 2d 3e 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 s->decisionRule($literal);..if.(
4d1a0 24 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 $conflict.&&.RuleSet::TYPE_PACKA
4d1c0 47 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 0a GE.===.$conflict->getType()).{..
4d1e0 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f $problem.=.new.Problem($this->po
4d200 6f 6c 29 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c 65 29 3b 0a ol);..$problem->addRule($rule);.
4d220 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 24 74 $problem->addRule($conflict);.$t
4d240 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 75 6c 65 29 3b 0a 24 74 68 69 his->disableProblem($rule);.$thi
4d260 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 63 6f 6e 74 69 6e s->problems[].=.$problem;.contin
4d280 75 65 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 ue;.}....$problem.=.new.Problem(
4d2a0 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 $this->pool);.$problem->addRule(
4d2c0 24 72 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c $rule);.$problem->addRule($confl
4d2e0 69 63 74 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 ict);......foreach.($this->rules
4d300 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a ->getIteratorFor(RuleSet::TYPE_J
4d320 4f 42 29 20 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 61 73 73 65 72 OB).as.$assertRule).{.if.($asser
4d340 74 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 7c 7c 20 21 24 61 73 73 65 72 74 52 tRule->isDisabled().||.!$assertR
4d360 75 6c 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a ule->isAssertion()).{.continue;.
4d380 7d 0a 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 61 73 73 65 72 74 }..$assertRuleLiterals.=.$assert
4d3a0 52 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 61 73 73 65 72 74 52 75 6c 65 Rule->getLiterals();.$assertRule
4d3c0 4c 69 74 65 72 61 6c 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 5b 30 5d Literal.=.$assertRuleLiterals[0]
4d3e0 3b 0a 0a 69 66 20 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 28 24 61 73 ;..if.(abs($literal).!==.abs($as
4d400 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a sertRuleLiteral)).{.continue;.}.
4d420 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b .$problem->addRule($assertRule);
4d440 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 61 73 73 65 72 74 52 75 .$this->disableProblem($assertRu
4d460 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 le);.}.$this->problems[].=.$prob
4d480 6c 65 6d 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 54 6f 4f lem;..$this->decisions->resetToO
4d4a0 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 29 3b 0a 24 72 75 6c 65 49 6e 64 65 ffset($decisionStart);.$ruleInde
4d4c0 78 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 x.=.-1;.}.}..protected.function.
4d4e0 73 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 setupInstalledMap().{.$this->ins
4d500 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 talledMap.=.array();.foreach.($t
4d520 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 his->installed->getPackages().as
4d540 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 .$package).{.$this->installedMap
4d560 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a [$package->getId()].=.$package;.
4d580 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 }..foreach.($this->jobs.as.$job)
4d5a0 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 .{.switch.($job['cmd']).{.case.'
4d5c0 75 70 64 61 74 65 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 update':.foreach.($job['packages
4d5e0 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 '].as.$package).{.if.(isset($thi
4d600 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 s->installedMap[$package->getId(
4d620 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 )])).{.$this->updateMap[$package
4d640 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 ->getId()].=.true;.}.}.break;..c
4d660 61 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ase.'update-all':.foreach.($this
4d680 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 ->installedMap.as.$package).{.$t
4d6a0 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 his->updateMap[$package->getId()
4d6c0 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 73 74 61 6c ].=.true;.}.break;..case.'instal
4d6e0 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 24 70 72 l':.if.(!$job['packages']).{.$pr
4d700 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 oblem.=.new.Problem($this->pool)
4d720 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 6e 65 77 20 52 75 6c 65 28 24 74 68 ;.$problem->addRule(new.Rule($th
4d740 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 is->pool,.array(),.null,.null,.$
4d760 6a 6f 62 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 job));.$this->problems[].=.$prob
4d780 6c 65 6d 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lem;.}.break;.}.}.}..public.func
4d7a0 74 69 6f 6e 20 73 6f 6c 76 65 28 52 65 71 75 65 73 74 20 24 72 65 71 75 65 73 74 29 0a 7b 0a 24 tion.solve(Request.$request).{.$
4d7c0 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 72 65 71 75 65 73 74 2d 3e 67 65 74 4a 6f 62 73 28 29 this->jobs.=.$request->getJobs()
4d7e0 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 3b 0a 0a ;..$this->setupInstalledMap();..
4d800 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 3d 20 6e 65 77 20 44 65 63 69 73 69 6f 6e 73 $this->decisions.=.new.Decisions
4d820 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 ($this->pool);..$this->rules.=.$
4d840 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2d 3e 67 65 74 52 75 6c 65 73 this->ruleSetGenerator->getRules
4d860 46 6f 72 28 24 74 68 69 73 2d 3e 6a 6f 62 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 For($this->jobs,.$this->installe
4d880 64 4d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 20 3d 20 6e 65 77 20 52 dMap);.$this->watchGraph.=.new.R
4d8a0 75 6c 65 57 61 74 63 68 47 72 61 70 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e uleWatchGraph;..foreach.($this->
4d8c0 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 rules.as.$rule).{.$this->watchGr
4d8e0 61 70 68 2d 3e 69 6e 73 65 72 74 28 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 72 aph->insert(new.RuleWatchNode($r
4d900 75 6c 65 29 29 3b 0a 7d 0a 0a 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 ule));.}...$this->makeAssertionR
4d920 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 53 61 74 28 74 uleDecisions();..$this->runSat(t
4d940 72 75 65 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c rue);....foreach.($this->install
4d960 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a edMap.as.$packageId.=>.$void).{.
4d980 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 if.($this->decisions->undecided(
4d9a0 24 70 61 63 6b 61 67 65 49 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d $packageId)).{.$this->decisions-
4d9c0 3e 64 65 63 69 64 65 28 2d 24 70 61 63 6b 61 67 65 49 64 2c 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d >decide(-$packageId,.1,.null);.}
4d9e0 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 7b 0a 74 68 72 6f 77 .}..if.($this->problems).{.throw
4da00 20 6e 65 77 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 28 24 74 68 .new.SolverProblemsException($th
4da20 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 is->problems,.$this->installedMa
4da40 70 29 3b 0a 7d 0a 0a 24 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 6e 65 77 20 54 72 61 6e 73 61 p);.}..$transaction.=.new.Transa
4da60 63 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c ction($this->policy,.$this->pool
4da80 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 74 68 69 73 2d 3e 64 65 ,.$this->installedMap,.$this->de
4daa0 63 69 73 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 2d 3e cisions);..return.$transaction->
4dac0 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 getOperations();.}..protected.fu
4dae0 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 69 64 29 0a 7b 0a 24 70 61 63 nction.literalFromId($id).{.$pac
4db00 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 kage.=.$this->pool->packageById(
4db20 61 62 73 28 24 69 64 29 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 4c 69 74 65 72 61 6c 28 24 abs($id));..return.new.Literal($
4db40 70 61 63 6b 61 67 65 2c 20 24 69 64 20 3e 20 30 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 package,.$id.>.0);.}...........p
4db60 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 rotected.function.propagate($lev
4db80 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 76 el).{.while.($this->decisions->v
4dba0 61 6c 69 64 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 alidOffset($this->propagateIndex
4dbc0 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e )).{.$decision.=.$this->decision
4dbe0 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 s->atOffset($this->propagateInde
4dc00 78 29 3b 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 x);..$conflict.=.$this->watchGra
4dc20 70 68 2d 3e 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 0a 24 64 65 63 69 73 69 6f 6e 5b ph->propagateLiteral(.$decision[
4dc40 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 2c 0a 24 6c Decisions::DECISION_LITERAL],.$l
4dc60 65 76 65 6c 2c 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 evel,.$this->decisions.);..$this
4dc80 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 2b 2b 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 ->propagateIndex++;..if.($confli
4dca0 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 6c 69 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 ct).{.return.$conflict;.}.}..ret
4dcc0 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e urn.null;.}.....private.function
4dce0 20 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d .revert($level).{.while.(!$this-
4dd00 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 >decisions->isEmpty()).{.$litera
4dd20 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 l.=.$this->decisions->lastLitera
4dd40 6c 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 l();..if.($this->decisions->unde
4dd60 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 cided($literal)).{.break;.}..$de
4dd80 63 69 73 69 6f 6e 4c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e cisionLevel.=.$this->decisions->
4dda0 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 64 decisionLevel($literal);..if.($d
4ddc0 65 63 69 73 69 6f 6e 4c 65 76 65 6c 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b ecisionLevel.<=.$level).{.break;
4dde0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 .}..$this->decisions->revertLast
4de00 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 63 6f 75 6e ();.$this->propagateIndex.=.coun
4de20 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 t($this->decisions);.}..while.(!
4de40 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 26 26 20 24 74 68 69 73 2d empty($this->branches).&&.$this-
4de60 3e 62 72 61 6e 63 68 65 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 >branches[count($this->branches)
4de80 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 .-.1][self::BRANCH_LEVEL].>=.$le
4dea0 76 65 6c 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 vel).{.array_pop($this->branches
4dec0 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 );.}.}.................private.f
4dee0 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c unction.setPropagateLearn($level
4df00 2c 20 24 6c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 ,.$literal,.$disableRules,.Rule.
4df20 24 72 75 6c 65 29 0a 7b 0a 24 6c 65 76 65 6c 2b 2b 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 $rule).{.$level++;..$this->decis
4df40 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 ions->decide($literal,.$level,.$
4df60 72 75 6c 65 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 rule);..while.(true).{.$rule.=.$
4df80 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 this->propagate($level);..if.(!$
4dfa0 72 75 6c 65 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 rule).{.break;.}..if.($level.==.
4dfc0 31 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 1).{.return.$this->analyzeUnsolv
4dfe0 61 62 6c 65 28 24 72 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a able($rule,.$disableRules);.}...
4e000 20 6c 69 73 74 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c 2c 20 .list($learnLiteral,.$newLevel,.
4e020 24 6e 65 77 52 75 6c 65 2c 20 24 77 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 $newRule,.$why).=.$this->analyze
4e040 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 6c 20 ($level,.$rule);..if.($newLevel.
4e060 3c 3d 20 30 20 7c 7c 20 24 6e 65 77 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 74 <=.0.||.$newLevel.>=.$level).{.t
4e080 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 hrow.new.SolverBugException(."Tr
4e0a0 79 69 6e 67 20 74 6f 20 72 65 76 65 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 6c 20 ying.to.revert.to.invalid.level.
4e0c0 22 2e 28 69 6e 74 29 20 24 6e 65 77 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c 20 22 ".(int).$newLevel.".from.level."
4e0e0 2e 28 69 6e 74 29 20 24 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 .(int).$level.".".);.}.elseif.(!
4e100 24 6e 65 77 52 75 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 $newRule).{.throw.new.SolverBugE
4e120 78 63 65 70 74 69 6f 6e 28 0a 22 4e 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 20 66 xception(."No.rule.was.learned.f
4e140 72 6f 6d 20 61 6e 61 6c 79 7a 69 6e 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 6c 65 rom.analyzing.$rule.at.level.$le
4e160 76 65 6c 2e 22 0a 29 3b 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c 3b 0a vel.".);.}..$level.=.$newLevel;.
4e180 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e .$this->revert($level);..$this->
4e1a0 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a 54 59 rules->add($newRule,.RuleSet::TY
4e1c0 50 45 5f 4c 45 41 52 4e 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b PE_LEARNED);..$this->learnedWhy[
4e1e0 24 6e 65 77 52 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 77 68 79 3b 0a 0a 24 72 75 6c $newRule->getId()].=.$why;..$rul
4e200 65 4e 6f 64 65 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 6e 65 77 52 75 eNode.=.new.RuleWatchNode($newRu
4e220 6c 65 29 3b 0a 24 72 75 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 le);.$ruleNode->watch2OnHighest(
4e240 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 $this->decisions);.$this->watchG
4e260 72 61 70 68 2d 3e 69 6e 73 65 72 74 28 24 72 75 6c 65 4e 6f 64 65 29 3b 0a 0a 24 74 68 69 73 2d raph->insert($ruleNode);..$this-
4e280 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c >decisions->decide($learnLiteral
4e2a0 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ,.$level,.$newRule);.}..return.$
4e2c0 6c 65 76 65 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 level;.}..private.function.selec
4e2e0 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 tAndInstall($level,.array.$decis
4e300 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 ionQueue,.$disableRules,.Rule.$r
4e320 75 6c 65 29 0a 7b 0a 0a 20 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 ule).{...$literals.=.$this->poli
4e340 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 cy->selectPreferedPackages($this
4e360 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 ->pool,.$this->installedMap,.$de
4e380 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 0a 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 20 cisionQueue);..$selectedLiteral.
4e3a0 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 0a 20 69 66 20 =.array_shift($literals);....if.
4e3c0 28 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e (count($literals)).{.$this->bran
4e3e0 63 68 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 65 76 65 6c ches[].=.array($literals,.$level
4e400 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 );.}..return.$this->setPropagate
4e420 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 2c 20 Learn($level,.$selectedLiteral,.
4e440 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 $disableRules,.$rule);.}..protec
4e460 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 ted.function.analyze($level,.$ru
4e480 6c 65 29 0a 7b 0a 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 24 72 75 le).{.$analyzedRule.=.$rule;.$ru
4e4a0 6c 65 4c 65 76 65 6c 20 3d 20 31 3b 0a 24 6e 75 6d 20 3d 20 30 3b 0a 24 6c 31 6e 75 6d 20 3d 20 leLevel.=.1;.$num.=.0;.$l1num.=.
4e4c0 30 3b 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 0;.$seen.=.array();.$learnedLite
4e4e0 72 61 6c 73 20 3d 20 61 72 72 61 79 28 6e 75 6c 6c 29 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 rals.=.array(null);..$decisionId
4e500 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 0a 24 74 68 .=.count($this->decisions);..$th
4e520 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 is->learnedPool[].=.array();..wh
4e540 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b ile.(true).{.$this->learnedPool[
4e560 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 5d 5b 5d count($this->learnedPool).-.1][]
4e580 20 3d 20 24 72 75 6c 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 67 65 74 4c 69 .=.$rule;..foreach.($rule->getLi
4e5a0 74 65 72 61 6c 73 28 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 terals().as.$literal).{...if.($t
4e5c0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c his->decisions->satisfy($literal
4e5e0 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 )).{.continue;.}..if.(isset($see
4e600 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d n[abs($literal)])).{.continue;.}
4e620 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 24 .$seen[abs($literal)].=.true;..$
4e640 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 l.=.$this->decisions->decisionLe
4e660 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 29 20 7b 0a vel($literal);..if.(1.===.$l).{.
4e680 24 6c 31 6e 75 6d 2b 2b 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 3d 20 24 $l1num++;.}.elseif.($level.===.$
4e6a0 6c 29 20 7b 0a 24 6e 75 6d 2b 2b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 65 61 72 6e 65 64 l).{.$num++;.}.else.{...$learned
4e6c0 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 24 6c 20 3e Literals[].=.$literal;..if.($l.>
4e6e0 20 24 72 75 6c 65 4c 65 76 65 6c 29 20 7b 0a 24 72 75 6c 65 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a .$ruleLevel).{.$ruleLevel.=.$l;.
4e700 7d 0a 7d 0a 7d 0a 0a 24 6c 31 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 77 68 69 6c 65 20 28 24 }.}.}..$l1retry.=.true;.while.($
4e720 6c 31 72 65 74 72 79 29 20 7b 0a 24 6c 31 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 l1retry).{.$l1retry.=.false;..if
4e740 20 28 21 24 6e 75 6d 20 26 26 20 21 2d 2d 24 6c 31 6e 75 6d 29 20 7b 0a 0a 20 62 72 65 61 6b 20 .(!$num.&&.!--$l1num).{...break.
4e760 32 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 69 66 20 28 24 64 65 63 69 73 69 2;.}..while.(true).{.if.($decisi
4e780 6f 6e 49 64 20 3c 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 onId.<=.0).{.throw.new.SolverBug
4e7a0 45 78 63 65 70 74 69 6f 6e 28 0a 22 52 65 61 63 68 65 64 20 69 6e 76 61 6c 69 64 20 64 65 63 69 Exception(."Reached.invalid.deci
4e7c0 73 69 6f 6e 20 69 64 20 24 64 65 63 69 73 69 6f 6e 49 64 20 77 68 69 6c 65 20 6c 6f 6f 6b 69 6e sion.id.$decisionId.while.lookin
4e7e0 67 20 74 68 72 6f 75 67 68 20 24 72 75 6c 65 20 66 6f 72 20 61 20 6c 69 74 65 72 61 6c 20 70 72 g.through.$rule.for.a.literal.pr
4e800 65 73 65 6e 74 20 69 6e 20 74 68 65 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c esent.in.the.analyzed.rule.$anal
4e820 79 7a 65 64 52 75 6c 65 2e 22 0a 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 2d 2d 3b 0a yzedRule.".);.}..$decisionId--;.
4e840 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 .$decision.=.$this->decisions->a
4e860 74 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 49 64 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d tOffset($decisionId);.$literal.=
4e880 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c .$decision[Decisions::DECISION_L
4e8a0 49 54 45 52 41 4c 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c ITERAL];..if.(isset($seen[abs($l
4e8c0 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 75 6e 73 65 74 28 24 iteral)])).{.break;.}.}..unset($
4e8e0 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 20 seen[abs($literal)]);..if.($num.
4e900 26 26 20 30 20 3d 3d 3d 20 2d 2d 24 6e 75 6d 29 20 7b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 &&.0.===.--$num).{.$learnedLiter
4e920 61 6c 73 5b 30 5d 20 3d 20 2d 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 als[0].=.-abs($literal);..if.(!$
4e940 6c 31 6e 75 6d 29 20 7b 0a 62 72 65 61 6b 20 32 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c l1num).{.break.2;.}..foreach.($l
4e960 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 65 61 72 6e 65 64 earnedLiterals.as.$i.=>.$learned
4e980 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 3d 20 30 29 20 7b 0a 75 6e 73 65 74 Literal).{.if.($i.!==.0).{.unset
4e9a0 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 5d 29 3b 0a 7d ($seen[abs($learnedLiteral)]);.}
4e9c0 0a 7d 0a 0a 20 24 6c 31 6e 75 6d 2b 2b 3b 0a 24 6c 31 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a .}...$l1num++;.$l1retry.=.true;.
4e9e0 7d 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e }.}..$decision.=.$this->decision
4ea00 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 49 64 29 3b 0a 24 72 75 6c 65 20 s->atOffset($decisionId);.$rule.
4ea20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f =.$decision[Decisions::DECISION_
4ea40 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e REASON];.}..$why.=.count($this->
4ea60 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 3b 0a 0a 69 66 20 28 21 24 6c 65 61 72 6e 65 64 learnedPool).-.1;..if.(!$learned
4ea80 4c 69 74 65 72 61 6c 73 5b 30 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 Literals[0]).{.throw.new.SolverB
4eaa0 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 44 69 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 6c 65 61 ugException(."Did.not.find.a.lea
4eac0 72 6e 61 62 6c 65 20 6c 69 74 65 72 61 6c 20 69 6e 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 rnable.literal.in.analyzed.rule.
4eae0 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a 29 3b 0a 7d 0a 0a 24 6e 65 77 52 75 6c 65 20 3d $analyzedRule.".);.}..$newRule.=
4eb00 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 65 61 72 6e 65 64 4c .new.Rule($this->pool,.$learnedL
4eb20 69 74 65 72 61 6c 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 2c 20 24 77 68 iterals,.Rule::RULE_LEARNED,.$wh
4eb40 79 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 y);..return.array($learnedLitera
4eb60 6c 73 5b 30 5d 2c 20 24 72 75 6c 65 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 2c 20 24 77 68 ls[0],.$ruleLevel,.$newRule,.$wh
4eb80 79 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 7a 65 55 y);.}..private.function.analyzeU
4eba0 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 63 6f 6e 66 6c 69 63 nsolvableRule($problem,.$conflic
4ebc0 74 52 75 6c 65 29 0a 7b 0a 24 77 68 79 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 tRule).{.$why.=.$conflictRule->g
4ebe0 65 74 49 64 28 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 54 etId();..if.($conflictRule->getT
4ec00 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 ype().==.RuleSet::TYPE_LEARNED).
4ec20 7b 0a 24 6c 65 61 72 6e 65 64 57 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 {.$learnedWhy.=.$this->learnedWh
4ec40 79 5b 24 77 68 79 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e y[$why];.$problemRules.=.$this->
4ec60 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 6c 65 61 72 6e 65 64 57 68 79 5d 3b 0a 0a 66 6f 72 65 61 learnedPool[$learnedWhy];..forea
4ec80 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c ch.($problemRules.as.$problemRul
4eca0 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c e).{.$this->analyzeUnsolvableRul
4ecc0 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 e($problem,.$problemRule);.}..re
4ece0 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 54 turn;.}..if.($conflictRule->getT
4ed00 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 29 20 ype().==.RuleSet::TYPE_PACKAGE).
4ed20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 6e 65 78 74 53 65 63 {...return;.}..$problem->nextSec
4ed40 74 69 6f 6e 28 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c tion();.$problem->addRule($confl
4ed60 69 63 74 52 75 6c 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e ictRule);.}..private.function.an
4ed80 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 alyzeUnsolvable($conflictRule,.$
4eda0 64 69 73 61 62 6c 65 52 75 6c 65 73 29 0a 7b 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 disableRules).{.$problem.=.new.P
4edc0 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 roblem($this->pool);.$problem->a
4ede0 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 ddRule($conflictRule);..$this->a
4ee00 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 nalyzeUnsolvableRule($problem,.$
4ee20 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b conflictRule);..$this->problems[
4ee40 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a ].=.$problem;..$seen.=.array();.
4ee60 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 4c 69 $literals.=.$conflictRule->getLi
4ee80 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 terals();..foreach.($literals.as
4eea0 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 .$literal).{...if.($this->decisi
4eec0 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e ons->satisfy($literal)).{.contin
4eee0 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 ue;.}.$seen[abs($literal)].=.tru
4ef00 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 e;.}..foreach.($this->decisions.
4ef20 61 73 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 as.$decision).{.$literal.=.$deci
4ef40 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c sion[Decisions::DECISION_LITERAL
4ef60 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 ];....if.(!isset($seen[abs($lite
4ef80 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 24 64 ral)])).{.continue;.}..$why.=.$d
4efa0 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 ecision[Decisions::DECISION_REAS
4efc0 4f 4e 5d 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 77 68 79 29 3b 0a 24 ON];..$problem->addRule($why);.$
4efe0 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f this->analyzeUnsolvableRule($pro
4f000 62 6c 65 6d 2c 20 24 77 68 79 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 77 68 79 2d 3e blem,.$why);..$literals.=.$why->
4f020 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 getLiterals();..foreach.($litera
4f040 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 ls.as.$literal).{...if.($this->d
4f060 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 ecisions->satisfy($literal)).{.c
4f080 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 ontinue;.}.$seen[abs($literal)].
4f0a0 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 20 =.true;.}.}..if.($disableRules).
4f0c0 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e 74 {.foreach.($this->problems[count
4f0e0 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 6f ($this->problems).-.1].as.$reaso
4f100 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 73 n).{.$this->disableProblem($reas
4f120 6f 6e 5b 27 72 75 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c 76 on['rule']);.}..$this->resetSolv
4f140 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a er();..return.1;.}..return.0;.}.
4f160 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d .private.function.disableProblem
4f180 28 24 77 68 79 29 0a 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 4a 6f 62 28 29 3b 0a ($why).{.$job.=.$why->getJob();.
4f1a0 0a 69 66 20 28 21 24 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 0a .if.(!$job).{.$why->disable();..
4f1c0 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c return;.}....foreach.($this->rul
4f1e0 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d 3d 3d 20 24 72 75 6c es.as.$rule).{.if.($job.===.$rul
4f200 65 2d 3e 67 65 74 4a 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b e->getJob()).{.$rule->disable();
4f220 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 53 6f .}.}.}..private.function.resetSo
4f240 6c 76 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 lver().{.$this->decisions->reset
4f260 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a ();..$this->propagateIndex.=.0;.
4f280 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 $this->branches.=.array();..$thi
4f2a0 73 2d 3e 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 3b 0a s->enableDisableLearnedRules();.
4f2c0 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e $this->makeAssertionRuleDecision
4f2e0 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 s();.}.........private.function.
4f300 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 0a 7b 0a 66 6f enableDisableLearnedRules().{.fo
4f320 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 reach.($this->rules->getIterator
4f340 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 61 73 20 24 72 For(RuleSet::TYPE_LEARNED).as.$r
4f360 75 6c 65 29 20 7b 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b ule).{.$why.=.$this->learnedWhy[
4f380 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d $rule->getId()];.$problemRules.=
4f3a0 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f 75 .$this->learnedPool[$why];..$fou
4f3c0 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 ndDisabled.=.false;.foreach.($pr
4f3e0 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 66 oblemRules.as.$problemRule).{.if
4f400 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a .($problemRule->isDisabled()).{.
4f420 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a $foundDisabled.=.true;.break;.}.
4f440 7d 0a 0a 69 66 20 28 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e }..if.($foundDisabled.&&.$rule->
4f460 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b isEnabled()).{.$rule->disable();
4f480 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 .}.elseif.(!$foundDisabled.&&.$r
4f4a0 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 62 ule->isDisabled()).{.$rule->enab
4f4c0 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 le();.}.}.}..private.function.ru
4f4e0 6e 53 61 74 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 nSat($disableRules.=.true).{.$th
4f500 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 20 0a 20 0a 20 0a is->propagateIndex.=.0;.........
4f520 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 ...........$decisionQueue.=.arra
4f540 79 28 29 3b 0a 24 64 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 75 65 75 65 20 3d 20 y();.$decisionSupplementQueue.=.
4f560 61 72 72 61 79 28 29 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 array();.$disableRules.=.array()
4f580 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c ;..$level.=.1;.$systemLevel.=.$l
4f5a0 65 76 65 6c 20 2b 20 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 68 evel.+.1;.$installedPos.=.0;..wh
4f5c0 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 ile.(true).{..if.(1.===.$level).
4f5e0 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 {.$conflictRule.=.$this->propaga
4f600 74 65 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c 69 te($level);.if.(null.!==.$confli
4f620 63 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f ctRule).{.if.($this->analyzeUnso
4f640 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 lvable($conflictRule,.$disableRu
4f660 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d les)).{.continue;.}..return;.}.}
4f680 0a 0a 0a 20 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b ....if.($level.<.$systemLevel).{
4f6a0 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 .$iterator.=.$this->rules->getIt
4f6c0 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 6f eratorFor(RuleSet::TYPE_JOB);.fo
4f6e0 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 reach.($iterator.as.$rule).{.if.
4f700 28 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e ($rule->isEnabled()).{.$decision
4f720 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 Queue.=.array();.$noneSatisfied.
4f740 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 =.true;..foreach.($rule->getLite
4f760 72 61 6c 73 28 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d rals().as.$literal).{.if.($this-
4f780 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b >decisions->satisfy($literal)).{
4f7a0 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a .$noneSatisfied.=.false;.break;.
4f7c0 7d 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 }.if.($literal.>.0.&&.$this->dec
4f7e0 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 isions->undecided($literal)).{.$
4f800 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a decisionQueue[].=.$literal;.}.}.
4f820 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 .if.($noneSatisfied.&&.count($de
4f840 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 cisionQueue)).{.....if.(count($t
4f860 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e his->installed).!=.count($this->
4f880 75 70 64 61 74 65 4d 61 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 61 72 72 updateMap)).{.$prunedQueue.=.arr
4f8a0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 ay();.foreach.($decisionQueue.as
4f8c0 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e .$literal).{.if.(isset($this->in
4f8e0 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 stalledMap[abs($literal)])).{.$p
4f900 72 75 6e 65 64 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 69 66 20 28 69 73 73 runedQueue[].=.$literal;.if.(iss
4f920 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c et($this->updateMap[abs($literal
4f940 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 51 )])).{.$prunedQueue.=.$decisionQ
4f960 75 65 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 ueue;.break;.}.}.}.$decisionQueu
4f980 65 20 3d 20 24 70 72 75 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 e.=.$prunedQueue;.}.}..if.($none
4f9a0 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 Satisfied.&&.count($decisionQueu
4f9c0 65 29 29 20 7b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 e)).{..$oLevel.=.$level;.$level.
4f9e0 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c =.$this->selectAndInstall($level
4fa00 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c ,.$decisionQueue,.$disableRules,
4fa20 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 .$rule);..if.(0.===.$level).{.re
4fa40 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 6f 4c 65 76 65 6c 29 20 7b turn;.}.if.($level.<=.$oLevel).{
4fa60 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 .break;.}.}.}.}..$systemLevel.=.
4fa80 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 $level.+.1;....$iterator->next()
4faa0 3b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 63 6f 6e 74 ;.if.($iterator->valid()).{.cont
4fac0 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c inue;.}.}..if.($level.<.$systemL
4fae0 65 76 65 6c 29 20 7b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d evel).{.$systemLevel.=.$level;.}
4fb00 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 24 6e 20 3c 20 63 6f 75 6e ..for.($i.=.0,.$n.=.0;.$n.<.coun
4fb20 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 24 6e 2b 2b 29 20 7b 0a 69 t($this->rules);.$i++,.$n++).{.i
4fb40 66 20 28 24 69 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 29 20 7b 0a f.($i.==.count($this->rules)).{.
4fb60 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d $i.=.0;.}..$rule.=.$this->rules-
4fb80 3e 72 75 6c 65 42 79 49 64 28 24 69 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 >ruleById($i);.$literals.=.$rule
4fba0 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 44 ->getLiterals();..if.($rule->isD
4fbc0 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 63 69 73 isabled()).{.continue;.}..$decis
4fbe0 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a ionQueue.=.array();.............
4fc00 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 .foreach.($literals.as.$literal)
4fc20 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 29 20 7b 0a 69 66 20 28 21 24 74 68 .{.if.($literal.<=.0).{.if.(!$th
4fc40 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 is->decisions->decidedInstall(ab
4fc60 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a s($literal))).{.continue.2;...}.
4fc80 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 }.else.{.if.($this->decisions->d
4fca0 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a ecidedInstall(abs($literal))).{.
4fcc0 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 continue.2;...}.if.($this->decis
4fce0 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 ions->undecided(abs($literal))).
4fd00 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d {.$decisionQueue[].=.$literal;.}
4fd20 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 .}.}....if.(count($decisionQueue
4fd40 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 ).<.2).{.continue;.}..$oLevel.=.
4fd60 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 41 6e $level;.$level.=.$this->selectAn
4fd80 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c dInstall($level,.$decisionQueue,
4fda0 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 30 20 3d .$disableRules,.$rule);..if.(0.=
4fdc0 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 6e 20 3d 20 2d ==.$level).{.return;.}....$n.=.-
4fde0 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 1;.}..if.($level.<.$systemLevel)
4fe00 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 .{.continue;.}....if.(count($thi
4fe20 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 s->branches)).{..$lastLiteral.=.
4fe40 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 42 72 null;.$lastLevel.=.null;.$lastBr
4fe60 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 anchIndex.=.0;.$lastBranchOffset
4fe80 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 63 6f 75 6e 74 28 24 .=.0;.$l.=.0;..for.($i.=.count($
4fea0 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 3b 20 24 69 20 3e 3d 20 30 3b 20 24 69 this->branches).-.1;.$i.>=.0;.$i
4fec0 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 29 20 3d 20 24 74 68 69 --).{.list($literals,.$l).=.$thi
4fee0 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 s->branches[$i];..foreach.($lite
4ff00 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 rals.as.$offset.=>.$literal).{.i
4ff20 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 f.($literal.&&.$literal.>.0.&&.$
4ff40 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 this->decisions->decisionLevel($
4ff60 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 72 61 literal).>.$l.+.1).{.$lastLitera
4ff80 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d l.=.$literal;.$lastBranchIndex.=
4ffa0 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 65 74 .$i;.$lastBranchOffset.=.$offset
4ffc0 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c ;.$lastLevel.=.$l;.}.}.}..if.($l
4ffe0 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 astLiteral).{.unset($this->branc
50000 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e hes[$lastBranchIndex][self::BRAN
50020 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 5d 29 CH_LITERALS][$lastBranchOffset])
50040 3b 0a 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 ;.array_values($this->branches[$
50060 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 lastBranchIndex][self::BRANCH_LI
50080 54 45 52 41 4c 53 5d 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 65 6c 3b 0a TERALS]);..$level.=.$lastLevel;.
500a0 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 20 3d 20 24 $this->revert($level);..$why.=.$
500c0 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 29 3b 0a 0a this->decisions->lastReason();..
500e0 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 $oLevel.=.$level;.$level.=.$this
50100 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 61 73 ->setPropagateLearn($level,.$las
50120 74 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 79 29 3b 0a tLiteral,.$disableRules,.$why);.
50140 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 63 .if.($level.==.0).{.return;.}..c
50160 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 ontinue;.}.}..break;.}.}.}.<?php
50180 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
501a0 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ependencyResolver;..use.Composer
501c0 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 \Package\LinkConstraint\LinkCons
501e0 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 65 traintInterface;.....class.Reque
50200 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 st.{.protected.$jobs;.protected.
50220 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 $pool;..public.function.__constr
50240 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 uct(Pool.$pool).{.$this->pool.=.
50260 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a $pool;.$this->jobs.=.array();.}.
50280 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 .public.function.install($packag
502a0 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 eName,.LinkConstraintInterface.$
502c0 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a constraint.=.null).{.$this->addJ
502e0 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e ob($packageName,.'install',.$con
50300 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 straint);.}..public.function.upd
50320 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 ate($packageName,.LinkConstraint
50340 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a Interface.$constraint.=.null).{.
50360 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 75 70 64 $this->addJob($packageName,.'upd
50380 61 74 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ate',.$constraint);.}..public.fu
503a0 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b nction.remove($packageName,.Link
503c0 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 ConstraintInterface.$constraint.
503e0 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 =.null).{.$this->addJob($package
50400 4e 61 6d 65 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a Name,.'remove',.$constraint);.}.
50420 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b .protected.function.addJob($pack
50440 61 67 65 4e 61 6d 65 2c 20 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 ageName,.$cmd,.LinkConstraintInt
50460 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 erface.$constraint.=.null).{.$pa
50480 63 6b 61 67 65 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e ckageName.=.strtolower($packageN
504a0 61 6d 65 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 ame);.$packages.=.$this->pool->w
504c0 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 hatProvides($packageName,.$const
504e0 72 61 69 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a raint);..$this->jobs[].=.array(.
50500 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 2c 0a 27 63 6d 64 27 20 3d 'packages'.=>.$packages,.'cmd'.=
50520 3e 20 24 63 6d 64 2c 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 >.$cmd,.'packageName'.=>.$packag
50540 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 eName,.'constraint'.=>.$constrai
50560 6e 74 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 nt,.);.}..public.function.update
50580 41 6c 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 63 All().{.$this->jobs[].=.array('c
505a0 6d 64 27 20 3d 3e 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 2c 20 27 70 61 63 6b 61 67 65 73 27 20 md'.=>.'update-all',.'packages'.
505c0 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 =>.array());.}..public.function.
505e0 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a getJobs().{.return.$this->jobs;.
50600 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
50620 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a omposer\DependencyResolver;.....
50640 0a 0a 63 6c 61 73 73 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ..class.Problem.{.....protected.
50660 24 72 65 61 73 6f 6e 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 $reasonSeen;......protected.$rea
50680 73 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 63 74 sons.=.array();..protected.$sect
506a0 69 6f 6e 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c ion.=.0;..protected.$pool;..publ
506c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 70 6f ic.function.__construct(Pool.$po
506e0 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a ol).{.$this->pool.=.$pool;.}....
50700 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 52 75 6c 65 20 ...public.function.addRule(Rule.
50720 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 61 73 6f 6e 28 24 72 75 6c 65 2d $rule).{.$this->addReason($rule-
50740 3e 67 65 74 49 64 28 29 2c 20 61 72 72 61 79 28 0a 27 72 75 6c 65 27 20 3d 3e 20 24 72 75 6c 65 >getId(),.array(.'rule'.=>.$rule
50760 2c 0a 27 6a 6f 62 27 20 3d 3e 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 2c 0a 29 29 3b 0a ,.'job'.=>.$rule->getJob(),.));.
50780 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f }.......public.function.getReaso
507a0 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 3b 0a 7d 0a ns().{.return.$this->reasons;.}.
507c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 ......public.function.getPrettyS
507e0 74 72 69 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 tring(array.$installedMap.=.arra
50800 79 28 29 29 0a 7b 0a 24 72 65 61 73 6f 6e 73 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 y()).{.$reasons.=.call_user_func
50820 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 61 72 72 61 79 5f 72 65 76 65 _array('array_merge',.array_reve
50840 72 73 65 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 29 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 rse($this->reasons));..if.(count
50860 28 24 72 65 61 73 6f 6e 73 29 20 3d 3d 3d 20 31 29 20 7b 0a 72 65 73 65 74 28 24 72 65 61 73 6f ($reasons).===.1).{.reset($reaso
50880 6e 73 29 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 63 75 72 72 65 6e 74 28 24 72 65 61 73 6f 6e 73 29 ns);.$reason.=.current($reasons)
508a0 3b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 ;..$rule.=.$reason['rule'];.$job
508c0 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f 62 20 26 26 20 .=.$reason['job'];..if.($job.&&.
508e0 24 6a 6f 62 5b 27 63 6d 64 27 5d 20 3d 3d 3d 20 27 69 6e 73 74 61 6c 6c 27 20 26 26 20 65 6d 70 $job['cmd'].===.'install'.&&.emp
50900 74 79 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 ty($job['packages'])).{...if.(0.
50920 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c ===.stripos($job['packageName'],
50940 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 6a 6f 62 5b 27 .'ext-')).{.$ext.=.substr($job['
50960 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 packageName'],.4);.$error.=.exte
50980 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 24 65 78 74 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 nsion_loaded($ext).?.'has.the.wr
509a0 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 2e 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 2e ong.version.('.phpversion($ext).
509c0 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d ').installed'.:.'is.missing.from
509e0 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 .your.system';..return."\n....-.
50a00 54 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 22 2e 24 6a The.requested.PHP.extension.".$j
50a20 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 ob['packageName'].$this->constra
50a40 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 intToText($job['constraint']).'.
50a60 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 '.$error.'.';.}....if.(0.===.str
50a80 69 70 6f 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 6c 69 62 2d 27 ipos($job['packageName'],.'lib-'
50aa0 29 29 20 7b 0a 24 6c 69 62 20 3d 20 73 75 62 73 74 72 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 )).{.$lib.=.substr($job['package
50ac0 4e 61 6d 65 27 5d 2c 20 34 29 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 Name'],.4);..return."\n....-.The
50ae0 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a 6f 62 .requested.linked.library.".$job
50b00 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e ['packageName'].$this->constrain
50b20 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 68 61 tToText($job['constraint']).'.ha
50b40 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 s.the.wrong.version.installed.or
50b60 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 .is.missing.from.your.system,.ma
50b80 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 ke.sure.to.have.the.extension.pr
50ba0 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 6f 6f oviding.it.';.}..if.(!$this->poo
50bc0 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d l->whatProvides($job['packageNam
50be0 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 e'])).{.return."\n....-.The.requ
50c00 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d ested.package.".$job['packageNam
50c20 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 e'].'.could.not.be.found.in.any.
50c40 76 65 72 73 69 6f 6e 2c 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 61 20 74 79 70 6f 20 69 6e 20 version,.there.may.be.a.typo.in.
50c60 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c the.package.name.';.}..return."\
50c80 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 n....-.The.requested.package.".$
50ca0 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 job['packageName'].$this->constr
50cc0 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 aintToText($job['constraint']).'
50ce0 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 .could.not.be.found.';.}.}..$mes
50d00 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 73 sages.=.array();..foreach.($reas
50d20 6f 6e 73 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f ons.as.$reason).{.$rule.=.$reaso
50d40 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d n['rule'];.$job.=.$reason['job']
50d60 3b 0a 0a 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 ;..if.($job).{.$messages[].=.$th
50d80 69 73 2d 3e 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 is->jobToText($job);.}.elseif.($
50da0 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c rule).{.if.($rule.instanceof.Rul
50dc0 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 e).{.$messages[].=.$rule->getPre
50de0 74 74 79 53 74 72 69 6e 67 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 7d 0a 7d 0a ttyString($installedMap);.}.}.}.
50e00 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 .return."\n....-.".implode("\n..
50e20 20 20 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ..-.",.$messages);.}........prot
50e40 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 69 64 2c 20 24 72 ected.function.addReason($id,.$r
50e60 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f eason).{.if.(!isset($this->reaso
50e80 6e 53 65 65 6e 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e nSeen[$id])).{.$this->reasonSeen
50ea0 5b 24 69 64 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 74 68 [$id].=.true;.$this->reasons[$th
50ec0 69 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 is->section][].=.$reason;.}.}..p
50ee0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 ublic.function.nextSection().{.$
50f00 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 2b 2b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 this->section++;.}........protec
50f20 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 0a 7b 0a 73 ted.function.jobToText($job).{.s
50f40 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 witch.($job['cmd']).{.case.'inst
50f60 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 72 all':.if.(!$job['packages']).{.r
50f80 65 74 75 72 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 20 74 6f 20 73 61 74 69 73 eturn.'No.package.found.to.satis
50fa0 66 79 20 69 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 fy.install.request.for.'.$job['p
50fc0 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f ackageName'].$this->constraintTo
50fe0 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 0a 0a 72 65 74 Text($job['constraint']);.}..ret
51000 75 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e urn.'Installation.request.for.'.
51020 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 $job['packageName'].$this->const
51040 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e raintToText($job['constraint']).
51060 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 '.->.satisfiable.by.'.$this->get
51080 50 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 2e PackageList($job['packages']).'.
510a0 27 3b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 65 ';.case.'update':.return.'Update
510c0 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 .request.for.'.$job['packageName
510e0 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b '].$this->constraintToText($job[
51100 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 'constraint']).'.';.case.'remove
51120 27 3a 0a 72 65 74 75 72 6e 20 27 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 ':.return.'Removal.request.for.'
51140 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 .$job['packageName'].$this->cons
51160 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 traintToText($job['constraint'])
51180 2e 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 2e 24 6a 6f 62 5b 27 .'';.}..return.'Job(cmd='.$job['
511a0 63 6d 64 27 5d 2e 27 2c 20 74 61 72 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e cmd'].',.target='.$job['packageN
511c0 61 6d 65 27 5d 2e 27 2c 20 70 61 63 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 ame'].',.packages=['.$this->getP
511e0 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 5d 29 ackageList($job['packages']).'])
51200 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b ';.}..protected.function.getPack
51220 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c ageList($packages).{.return.impl
51240 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 6d 61 70 ode(',.',.array_unique(array_map
51260 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 (function.($package).{.return.$p
51280 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 2c 0a 24 70 ackage->getPrettyString();.},.$p
512a0 61 63 6b 61 67 65 73 0a 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ackages.)));.}........protected.
512c0 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 function.constraintToText($const
512e0 72 61 69 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 raint).{.return.($constraint).?.
51300 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 '.'.$constraint->getPrettyString
51320 28 29 20 3a 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ().:.'';.}.}.<?php............na
51340 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c mespace.Composer\DependencyResol
51360 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 ver;............class.RuleWatchG
51380 72 61 70 68 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 raph.{.protected.$watchChains.=.
513a0 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e array();..............public.fun
513c0 63 74 69 6f 6e 20 69 6e 73 65 72 74 28 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 ction.insert(RuleWatchNode.$node
513e0 29 0a 7b 0a 69 66 20 28 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 ).{.if.($node->getRule()->isAsse
51400 72 74 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 rtion()).{.return;.}..foreach.(a
51420 72 72 61 79 28 24 6e 6f 64 65 2d 3e 77 61 74 63 68 31 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 rray($node->watch1,.$node->watch
51440 32 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 2).as.$literal).{.if.(!isset($th
51460 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 is->watchChains[$literal])).{.$t
51480 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 his->watchChains[$literal].=.new
514a0 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 .RuleWatchChain;.}..$this->watch
514c0 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 Chains[$literal]->unshift($node)
514e0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ;.}.}.........................pu
51500 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 blic.function.propagateLiteral($
51520 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f decidedLiteral,.$level,.$decisio
51540 6e 73 29 0a 7b 0a 0a 20 0a 20 0a 20 24 6c 69 74 65 72 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 ns).{.......$literal.=.-$decided
51560 4c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 Literal;..if.(!isset($this->watc
51580 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c hChains[$literal])).{.return.nul
515a0 6c 3b 0a 7d 0a 0a 24 63 68 61 69 6e 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e l;.}..$chain.=.$this->watchChain
515c0 73 5b 24 6c 69 74 65 72 61 6c 5d 3b 0a 0a 24 63 68 61 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a s[$literal];..$chain->rewind();.
515e0 77 68 69 6c 65 20 28 24 63 68 61 69 6e 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 while.($chain->valid()).{.$node.
51600 3d 20 24 63 68 61 69 6e 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 =.$chain->current();.$otherWatch
51620 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c .=.$node->getOtherWatch($literal
51640 29 3b 0a 0a 69 66 20 28 21 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 );..if.(!$node->getRule()->isDis
51660 61 62 6c 65 64 28 29 20 26 26 20 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 abled().&&.!$decisions->satisfy(
51680 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 $otherWatch)).{.$ruleLiterals.=.
516a0 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b $node->getRule()->getLiterals();
516c0 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 5f 66 ..$alternativeLiterals.=.array_f
516e0 69 6c 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 ilter($ruleLiterals,.function.($
51700 72 75 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 20 28 24 6c 69 74 65 72 61 6c 2c 20 24 6f 74 68 ruleLiteral).use.($literal,.$oth
51720 65 72 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c erWatch,.$decisions).{.return.$l
51740 69 74 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 26 0a 24 6f 74 68 65 iteral.!==.$ruleLiteral.&&.$othe
51760 72 57 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 26 0a 21 24 64 65 63 rWatch.!==.$ruleLiteral.&&.!$dec
51780 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 3b 0a isions->conflict($ruleLiteral);.
517a0 7d 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 20 7b });..if.($alternativeLiterals).{
517c0 0a 72 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 3b 0a 24 74 .reset($alternativeLiterals);.$t
517e0 68 69 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 2c 20 63 75 72 72 65 6e 74 his->moveWatch($literal,.current
51800 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 2c 20 24 6e 6f 64 65 29 3b 0a ($alternativeLiterals),.$node);.
51820 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e continue;.}..if.($decisions->con
51840 66 6c 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 6f flict($otherWatch)).{.return.$no
51860 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 de->getRule();.}..$decisions->de
51880 63 69 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 6f 64 65 2d cide($otherWatch,.$level,.$node-
518a0 3e 67 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a 24 63 68 61 69 6e 2d 3e 6e 65 78 74 28 29 3b 0a >getRule());.}..$chain->next();.
518c0 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 }..return.null;.}...........prot
518e0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 ected.function.moveWatch($fromLi
51900 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 2c 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 teral,.$toLiteral,.$node).{.if.(
51920 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 !isset($this->watchChains[$toLit
51940 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f eral])).{.$this->watchChains[$to
51960 4c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d Literal].=.new.RuleWatchChain;.}
51980 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c ..$node->moveWatch($fromLiteral,
519a0 20 24 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 .$toLiteral);.$this->watchChains
519c0 5b 24 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e 72 65 6d 6f 76 65 28 29 3b 0a 24 74 68 69 73 2d [$fromLiteral]->remove();.$this-
519e0 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 >watchChains[$toLiteral]->unshif
51a00 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e t($node);.}.}.<?php............n
51a20 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 69 6e amespace.Composer\Config;.....in
51a40 74 65 72 66 61 63 65 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a terface.ConfigSourceInterface.{.
51a60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e public.function.addRepository($n
51a80 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ame,.$config);..public.function.
51aa0 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 0a 70 75 62 6c 69 63 removeRepository($name);..public
51ac0 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 .function.addConfigSetting($name
51ae0 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f ,.$value);..public.function.remo
51b00 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a veConfigSetting($name);.}.<?php.
51b20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f ...........namespace.Composer\Co
51b40 6e 66 69 67 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e nfig;..use.Composer\Json\JsonMan
51b60 69 70 75 6c 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e ipulator;.use.Composer\Json\Json
51b80 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 File;.....class.JsonConfigSource
51ba0 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 .implements.ConfigSourceInterfac
51bc0 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 69 e.{.private.$file;.private.$mani
51be0 70 75 6c 61 74 6f 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 pulator;..public.function.__cons
51c00 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 66 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 truct(JsonFile.$file).{.$this->f
51c20 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ile.=.$file;.}..public.function.
51c40 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a addRepository($name,.$config).{.
51c60 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 52 65 70 6f 73 69 $this->manipulateJson('addReposi
51c80 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 2c 20 66 75 6e 63 74 69 6f 6e 20 tory',.$name,.$config,.function.
51ca0 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b (&$config,.$repo,.$repoConfig).{
51cc0 0a 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 20 .$config['repositories'][$repo].
51ce0 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e =.$repoConfig;.});.}..public.fun
51d00 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a ction.removeRepository($name).{.
51d20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 52 65 70 $this->manipulateJson('removeRep
51d40 6f 73 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e ository',.$name,.function.(&$con
51d60 66 69 67 2c 20 24 72 65 70 6f 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 fig,.$repo).{.unset($config['rep
51d80 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 75 62 6c ositories'][$repo]);.});.}..publ
51da0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 ic.function.addConfigSetting($na
51dc0 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a me,.$value).{.$this->manipulateJ
51de0 73 6f 6e 28 27 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 24 son('addConfigSetting',.$name,.$
51e00 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 2c value,.function.(&$config,.$key,
51e20 20 24 76 61 6c 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d .$val).{.$config['config'][$key]
51e40 20 3d 20 24 76 61 6c 3b 0a 7d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.$val;.});.}..public.function.
51e60 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 removeConfigSetting($name).{.$th
51e80 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 43 6f 6e 66 69 67 is->manipulateJson('removeConfig
51ea0 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e Setting',.$name,.function.(&$con
51ec0 66 69 67 2c 20 24 6b 65 79 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 fig,.$key).{.unset($config['conf
51ee0 69 67 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ig'][$key]);.});.}..protected.fu
51f00 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 24 6d 65 74 68 6f 64 2c 20 24 nction.manipulateJson($method,.$
51f20 61 72 67 73 2c 20 24 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 61 72 67 73 20 3d 20 66 75 6e 63 5f args,.$fallback).{.$args.=.func_
51f40 67 65 74 5f 61 72 67 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 73 29 get_args();...array_shift($args)
51f60 3b 0a 24 66 61 6c 6c 62 61 63 6b 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 61 72 67 73 29 3b 0a ;.$fallback.=.array_pop($args);.
51f80 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 63 .if.($this->file->exists()).{.$c
51fa0 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 ontents.=.file_get_contents($thi
51fc0 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 s->file->getPath());.}.else.{.$c
51fe0 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c 6e 20 20 20 20 5c 22 63 6f 6e 66 69 67 5c 22 3a 20 7b 5c ontents.=."{\n....\"config\":.{\
52000 6e 20 20 20 20 7d 5c 6e 7d 5c 6e 22 3b 0a 7d 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 20 3d 20 6e n....}\n}\n";.}.$manipulator.=.n
52020 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a ew.JsonManipulator($contents);..
52040 24 6e 65 77 46 69 6c 65 20 3d 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 $newFile.=.!$this->file->exists(
52060 29 3b 0a 0a 0a 20 69 66 20 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 61 );....if.(call_user_func_array(a
52080 72 72 61 79 28 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 6d 65 74 68 6f 64 29 2c 20 24 61 72 rray($manipulator,.$method),.$ar
520a0 67 73 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e gs)).{.file_put_contents($this->
520c0 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 file->getPath(),.$manipulator->g
520e0 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 6f 6e 66 69 etContents());.}.else.{...$confi
52100 67 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 61 72 72 61 79 5f 75 g.=.$this->file->read();.array_u
52120 6e 73 68 69 66 74 28 24 61 72 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 63 61 6c 6c 5f 75 73 65 nshift($args,.$config);.call_use
52140 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 24 66 61 6c 6c 62 61 63 6b 2c 20 24 61 72 67 73 29 3b 0a r_func_array($fallback,.$args);.
52160 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a $this->file->write($config);.}..
52180 69 66 20 28 24 6e 65 77 46 69 6c 65 29 20 7b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 66 69 6c if.($newFile).{.chmod($this->fil
521a0 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 e->getPath(),.0600);.}.}.}.<?php
521c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a ............namespace.Composer;.
521e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 .use.Composer\Config\JsonConfigS
52200 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c ource;.use.Composer\Json\JsonFil
52220 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a e;.use.Composer\IO\IOInterface;.
52240 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 use.Composer\Repository\Composer
52260 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 Repository;.use.Composer\Reposit
52280 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f ory\RepositoryManager;.use.Compo
522a0 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f ser\Util\ProcessExecutor;.use.Co
522c0 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a mposer\Util\RemoteFilesystem;...
522e0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 ......class.Factory.{....public.
52300 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 0a 7b static.function.createConfig().{
52320 0a 0a 20 69 66 20 28 21 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 ...if.(!$home.=.getenv('COMPOSER
52340 5f 48 4f 4d 45 27 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 _HOME')).{.if.(defined('PHP_WIND
52360 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 24 68 6f 6d 65 20 3d 20 67 OWS_VERSION_MAJOR')).{.$home.=.g
52380 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a etenv('APPDATA')...'/Composer';.
523a0 7d 20 65 6c 73 65 20 7b 0a 24 68 6f 6d 65 20 3d 20 72 74 72 69 6d 28 67 65 74 65 6e 76 28 27 48 }.else.{.$home.=.rtrim(getenv('H
523c0 4f 4d 45 27 29 2c 20 27 2f 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a OME'),.'/')...'/.composer';.}.}.
523e0 0a 0a 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 68 6f 6d 65 20 2e 20 27 2f 2e 68 ...if.(!file_exists($home...'/.h
52400 74 61 63 63 65 73 73 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 68 6f 6d 65 29 29 taccess')).{.if.(!is_dir($home))
52420 20 7b 0a 40 6d 6b 64 69 72 28 24 68 6f 6d 65 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a .{.@mkdir($home,.0777,.true);.}.
52440 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 68 6f 6d 65 20 2e 20 27 2f 2e 68 74 @file_put_contents($home...'/.ht
52460 61 63 63 65 73 73 27 2c 20 27 44 65 6e 79 20 66 72 6f 6d 20 61 6c 6c 27 29 3b 0a 7d 0a 0a 24 63 access',.'Deny.from.all');.}..$c
52480 6f 6e 66 69 67 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 28 29 3b 0a 0a 0a 20 24 63 6f 6e 66 69 67 onfig.=.new.Config();....$config
524a0 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 ->merge(array('config'.=>.array(
524c0 27 68 6f 6d 65 27 20 3d 3e 20 24 68 6f 6d 65 29 29 29 3b 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 'home'.=>.$home)));..$file.=.new
524e0 20 4a 73 6f 6e 46 69 6c 65 28 24 68 6f 6d 65 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 3b .JsonFile($home.'/config.json');
52500 0a 69 66 20 28 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 63 6f 6e 66 69 67 2d .if.($file->exists()).{.$config-
52520 3e 6d 65 72 67 65 28 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 >merge($file->read());.}.$config
52540 2d 3e 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 ->setConfigSource(new.JsonConfig
52560 53 6f 75 72 63 65 28 24 66 69 6c 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 3b Source($file));..return.$config;
52580 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 46 .}..public.function.getComposerF
525a0 69 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 ile().{.return.getenv('COMPOSER'
525c0 29 20 3f 3a 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ).?:.'composer.json';.}..public.
525e0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 static.function.createDefaultRep
52600 6f 73 69 74 6f 72 69 65 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c ositories(IOInterface.$io.=.null
52620 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 52 65 70 6f 73 69 74 ,.Config.$config.=.null,.Reposit
52640 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 70 6f 73 20 oryManager.$rm.=.null).{.$repos.
52660 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e =.array();..if.(!$config).{.$con
52680 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a fig.=.static::createConfig();.}.
526a0 69 66 20 28 21 24 72 6d 29 20 7b 0a 69 66 20 28 21 24 69 6f 29 20 7b 0a 74 68 72 6f 77 20 6e 65 if.(!$rm).{.if.(!$io).{.throw.ne
526c0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 w.\InvalidArgumentException('Thi
526e0 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 65 69 74 68 65 72 20 61 6e 20 49 4f s.function.requires.either.an.IO
52700 49 6e 74 65 72 66 61 63 65 20 6f 72 20 61 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 Interface.or.a.RepositoryManager
52720 27 29 3b 0a 7d 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 3b 0a 24 72 6d ');.}.$factory.=.new.static;.$rm
52740 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e .=.$factory->createRepositoryMan
52760 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 ager($io,.$config);.}..foreach.(
52780 24 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 69 $config->getRepositories().as.$i
527a0 6e 64 65 78 20 3d 3e 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 ndex.=>.$repo).{.if.(!is_array($
527c0 72 65 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 repo)).{.throw.new.\UnexpectedVa
527e0 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 69 6e 64 65 lueException('Repository.'.$inde
52800 78 2e 27 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 29 20 73 68 6f x.'.('.json_encode($repo).').sho
52820 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 72 65 70 6f uld.be.an.array,.'.gettype($repo
52840 29 2e 27 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 5b ).'.given');.}.if.(!isset($repo[
52860 27 74 79 70 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 'type'])).{.throw.new.\Unexpecte
52880 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 69 dValueException('Repository.'.$i
528a0 6e 64 65 78 2e 27 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 29 20 ndex.'.('.json_encode($repo).').
528c0 6d 75 73 74 20 68 61 76 65 20 61 20 74 79 70 65 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 24 6e must.have.a.type.defined');.}.$n
528e0 61 6d 65 20 3d 20 69 73 5f 69 6e 74 28 24 69 6e 64 65 78 29 20 26 26 20 69 73 73 65 74 28 24 72 ame.=.is_int($index).&&.isset($r
52900 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3f 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 68 74 epo['url']).?.preg_replace('{^ht
52920 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 27 27 2c 20 24 72 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3a 20 tps?://}i',.'',.$repo['url']).:.
52940 24 69 6e 64 65 78 3b 0a 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 72 65 70 6f 73 5b 24 6e 61 6d $index;.while.(isset($repos[$nam
52960 65 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 2e 3d 20 27 32 27 3b 0a 7d 0a 24 72 65 70 6f 73 5b 24 6e e])).{.$name..=.'2';.}.$repos[$n
52980 61 6d 65 5d 20 3d 20 24 72 6d 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 ame].=.$rm->createRepository($re
529a0 70 6f 5b 27 74 79 70 65 27 5d 2c 20 24 72 65 70 6f 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 po['type'],.$repo);.}..return.$r
529c0 65 70 6f 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f epos;.}...........public.functio
529e0 6e 20 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f n.createComposer(IOInterface.$io
52a00 2c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 6e ,.$localConfig.=.null).{...if.(n
52a20 75 6c 6c 20 3d 3d 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f ull.===.$localConfig).{.$localCo
52a40 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b nfig.=.$this->getComposerFile();
52a60 0a 7d 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 29 .}..if.(is_string($localConfig))
52a80 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b .{.$composerFile.=.$localConfig;
52aa0 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 .$file.=.new.JsonFile($localConf
52ac0 69 67 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 3b 0a ig,.new.RemoteFilesystem($io));.
52ae0 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 6c 6f .if.(!$file->exists()).{.if.($lo
52b00 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 20 7b calConfig.===.'composer.json').{
52b20 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 .$message.=.'Composer.could.not.
52b40 66 69 6e 64 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 27 2e 67 find.a.composer.json.file.in.'.g
52b60 65 74 63 77 64 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f etcwd();.}.else.{.$message.=.'Co
52b80 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 63 6f 6e 66 69 67 mposer.could.not.find.the.config
52ba0 20 66 69 6c 65 3a 20 27 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a 24 69 6e 73 74 72 75 .file:.'.$localConfig;.}.$instru
52bc0 63 74 69 6f 6e 73 20 3d 20 27 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 70 72 6f 6a 65 63 ctions.=.'To.initialize.a.projec
52be0 74 2c 20 70 6c 65 61 73 65 20 63 72 65 61 74 65 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e t,.please.create.a.composer.json
52c00 20 66 69 6c 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 68 74 74 70 3a 2f .file.as.described.in.the.http:/
52c20 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 22 47 65 74 74 69 6e 67 20 53 74 61 72 74 /getcomposer.org/."Getting.Start
52c40 65 64 22 20 73 65 63 74 69 6f 6e 27 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ed".section';.throw.new.\Invalid
52c60 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2e 50 48 50 5f 45 ArgumentException($message.PHP_E
52c80 4f 4c 2e 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 76 61 6c OL.$instructions);.}..$file->val
52ca0 69 64 61 74 65 53 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 idateSchema(JsonFile::LAX_SCHEMA
52cc0 29 3b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b );.$localConfig.=.$file->read();
52ce0 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f .}....$config.=.static::createCo
52d00 6e 66 69 67 28 29 3b 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 6c 6f 63 61 6c 43 6f 6e nfig();.$config->merge($localCon
52d20 66 69 67 29 3b 0a 0a 0a 20 69 66 20 28 24 74 6f 6b 65 6e 73 20 3d 20 24 63 6f 6e 66 69 67 2d 3e fig);....if.($tokens.=.$config->
52d40 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 get('github-oauth')).{.foreach.(
52d60 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a $tokens.as.$domain.=>.$token).{.
52d80 24 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 $io->setAuthorization($domain,.$
52da0 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 7d 0a 0a 24 76 token,.'x-oauth-basic');.}.}..$v
52dc0 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d endorDir.=.$config->get('vendor-
52de0 64 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 62 dir');.$binDir.=.$config->get('b
52e00 69 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 73 65 in-dir');....ProcessExecutor::se
52e20 74 54 69 6d 65 6f 75 74 28 28 69 6e 74 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 6f tTimeout((int).$config->get('pro
52e40 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 29 29 3b 0a 0a 0a 20 24 72 6d 20 3d 20 24 74 68 69 73 2d cess-timeout'));....$rm.=.$this-
52e60 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 >createRepositoryManager($io,.$c
52e80 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 onfig);....$this->addLocalReposi
52ea0 74 6f 72 79 28 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 0a 20 24 6c 6f 61 64 65 tory($rm,.$vendorDir);....$loade
52ec0 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b 61 r.=.new.Package\Loader\RootPacka
52ee0 67 65 4c 6f 61 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 70 61 63 6b 61 67 65 geLoader($rm,.$config);.$package
52f00 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a .=.$loader->load($localConfig);.
52f20 0a 0a 20 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 ...$dm.=.$this->createDownloadMa
52f40 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 69 6d 20 3d 20 24 74 nager($io,.$config);....$im.=.$t
52f60 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 his->createInstallationManager($
52f80 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 6f 6d 70 config);....$composer.=.new.Comp
52fa0 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 67 28 24 63 6f oser();.$composer->setConfig($co
52fc0 6e 66 69 67 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b 61 67 65 28 24 70 61 nfig);.$composer->setPackage($pa
52fe0 63 6b 61 67 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 ckage);.$composer->setRepository
53000 4d 61 6e 61 67 65 72 28 24 72 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 44 6f 77 6e Manager($rm);.$composer->setDown
53020 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 loadManager($dm);.$composer->set
53040 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 69 6d 29 3b 0a 0a 0a 20 24 74 68 InstallationManager($im);....$th
53060 69 73 2d 3e 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 24 69 6d 2c is->createDefaultInstallers($im,
53080 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 75 72 67 .$composer,.$io);....$this->purg
530a0 65 50 61 63 6b 61 67 65 73 28 24 72 6d 2c 20 24 69 6d 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 ePackages($rm,.$im);....if.(isse
530c0 74 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 7b 0a 24 6c 6f 63 6b 46 69 6c 65 20 3d 20 t($composerFile)).{.$lockFile.=.
530e0 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c "json".===.pathinfo($composerFil
53100 65 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 0a 3f 20 73 75 62 73 74 72 28 e,.PATHINFO_EXTENSION).?.substr(
53120 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 30 2c 20 2d 34 29 2e 27 6c 6f 63 6b 27 0a 3a 20 24 $composerFile,.0,.-4).'lock'.:.$
53140 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 2e 20 27 2e 6c 6f 63 6b 27 3b 0a 24 6c 6f 63 6b 65 72 20 composerFile...'.lock';.$locker.
53160 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 28 6e 65 77 20 4a 73 6f 6e 46 69 6c =.new.Package\Locker(new.JsonFil
53180 65 28 24 6c 6f 63 6b 46 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 e($lockFile,.new.RemoteFilesyste
531a0 6d 28 24 69 6f 29 29 2c 20 24 72 6d 2c 20 24 69 6d 2c 20 6d 64 35 5f 66 69 6c 65 28 24 63 6f 6d m($io)),.$rm,.$im,.md5_file($com
531c0 70 6f 73 65 72 46 69 6c 65 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 4c 6f 63 6b 65 poserFile));.$composer->setLocke
531e0 72 28 24 6c 6f 63 6b 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 3b r($locker);.}..return.$composer;
53200 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 .}.......protected.function.crea
53220 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 teRepositoryManager(IOInterface.
53240 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 72 6d 20 3d 20 6e 65 77 $io,.Config.$config).{.$rm.=.new
53260 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 .RepositoryManager($io,.$config)
53280 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 63 6f 6d 70 6f ;.$rm->setRepositoryClass('compo
532a0 73 65 72 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f ser',.'Composer\Repository\Compo
532c0 73 65 72 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 serRepository');.$rm->setReposit
532e0 6f 72 79 43 6c 61 73 73 28 27 76 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 oryClass('vcs',.'Composer\Reposi
53300 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 tory\VcsRepository');.$rm->setRe
53320 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 61 63 6b 61 67 65 27 2c 20 27 43 6f 6d 70 6f 73 positoryClass('package',.'Compos
53340 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 27 er\Repository\PackageRepository'
53360 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 65 61 72 );.$rm->setRepositoryClass('pear
53380 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 52 65 70 6f ',.'Composer\Repository\PearRepo
533a0 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 sitory');.$rm->setRepositoryClas
533c0 73 28 27 67 69 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 s('git',.'Composer\Repository\Vc
533e0 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 sRepository');.$rm->setRepositor
53400 79 43 6c 61 73 73 28 27 73 76 6e 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f yClass('svn',.'Composer\Reposito
53420 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f ry\VcsRepository');.$rm->setRepo
53440 73 69 74 6f 72 79 43 6c 61 73 73 28 27 68 67 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f sitoryClass('hg',.'Composer\Repo
53460 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 0a 72 65 74 75 72 6e 20 sitory\VcsRepository');..return.
53480 24 72 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 $rm;.}......protected.function.a
534a0 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 ddLocalRepository(RepositoryMana
534c0 67 65 72 20 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 24 72 6d 2d 3e 73 65 74 4c ger.$rm,.$vendorDir).{.$rm->setL
534e0 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e ocalRepository(new.Repository\In
53500 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 stalledFilesystemRepository(new.
53520 4a 73 6f 6e 46 69 6c 65 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 JsonFile($vendorDir.'/composer/i
53540 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 29 29 3b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c nstalled.json')));.$rm->setLocal
53560 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 DevRepository(new.Repository\Ins
53580 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a talledFilesystemRepository(new.J
535a0 73 6f 6e 46 69 6c 65 28 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e sonFile($vendorDir.'/composer/in
535c0 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 stalled_dev.json')));.}.......pu
535e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 blic.function.createDownloadMana
53600 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e ger(IOInterface.$io,.Config.$con
53620 66 69 67 29 0a 7b 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e fig).{.$dm.=.new.Downloader\Down
53640 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 loadManager();.$dm->setDownloade
53660 72 28 27 67 69 74 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c r('git',.new.Downloader\GitDownl
53680 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f oader($io,.$config));.$dm->setDo
536a0 77 6e 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 wnloader('svn',.new.Downloader\S
536c0 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d vnDownloader($io,.$config));.$dm
536e0 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f ->setDownloader('hg',.new.Downlo
53700 61 64 65 72 5c 48 67 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 ader\HgDownloader($io,.$config))
53720 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 7a 69 70 27 2c 20 6e 65 77 20 ;.$dm->setDownloader('zip',.new.
53740 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 Downloader\ZipDownloader($io,.$c
53760 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 72 onfig));.$dm->setDownloader('tar
53780 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 ',.new.Downloader\TarDownloader(
537a0 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 $io,.$config));.$dm->setDownload
537c0 65 72 28 27 70 68 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 72 44 6f er('phar',.new.Downloader\PharDo
537e0 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 wnloader($io,.$config));.$dm->se
53800 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 66 69 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 tDownloader('file',.new.Download
53820 65 72 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 er\FileDownloader($io,.$config))
53840 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ;..return.$dm;.}......protected.
53860 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 function.createInstallationManag
53880 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 er(Config.$config).{.return.new.
538a0 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 63 Installer\InstallationManager($c
538c0 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 7d 0a 0a 0a 0a onfig->get('vendor-dir'));.}....
538e0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 ...protected.function.createDefa
53900 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 ultInstallers(Installer\Installa
53920 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f tionManager.$im,.Composer.$compo
53940 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 ser,.IOInterface.$io).{.$im->add
53960 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 Installer(new.Installer\LibraryI
53980 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b nstaller($io,.$composer,.null));
539a0 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 .$im->addInstaller(new.Installer
539c0 5c 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 \PearInstaller($io,.$composer,.'
539e0 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c pear-library'));.$im->addInstall
53a00 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c er(new.Installer\InstallerInstal
53a20 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e ler($io,.$composer));.$im->addIn
53a40 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 staller(new.Installer\Metapackag
53a60 65 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 eInstaller($io));.}......protect
53a80 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 52 65 70 6f 73 69 ed.function.purgePackages(Reposi
53aa0 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 49 6e 73 74 tory\RepositoryManager.$rm,.Inst
53ac0 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b aller\InstallationManager.$im).{
53ae0 0a 66 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 .foreach.($rm->getLocalRepositor
53b00 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 ies().as.$repo).{..foreach.($rep
53b20 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a o->getPackages().as.$package).{.
53b40 69 66 20 28 21 24 69 6d 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 if.(!$im->isPackageInstalled($re
53b60 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 po,.$package)).{.$repo->removePa
53b80 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ckage($package);.}.}.}.}........
53ba0 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f public.static.function.create(IO
53bc0 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 29 0a 7b Interface.$io,.$config.=.null).{
53be0 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 0a 72 65 74 75 72 .$factory.=.new.static();..retur
53c00 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 24 69 6f 2c 20 n.$factory->createComposer($io,.
53c20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e $config);.}.}.<?php............n
53c40 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 63 6c 61 amespace.Composer\Util;......cla
53c60 73 73 20 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 ss.Filesystem.{.private.$process
53c80 45 78 65 63 75 74 6f 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e Executor;..public.function.__con
53ca0 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 65 78 65 63 75 74 6f 72 struct(ProcessExecutor.$executor
53cc0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f .=.null).{.$this->processExecuto
53ce0 72 20 3d 20 24 65 78 65 63 75 74 6f 72 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 r.=.$executor.?:.new.ProcessExec
53d00 75 74 6f 72 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 utor();.}..public.function.remov
53d20 65 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 6c 65 29 29 20 7b 0a e($file).{.if.(is_dir($file)).{.
53d40 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 66 return.$this->removeDirectory($f
53d60 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 ile);.}..if.(file_exists($file))
53d80 20 7b 0a 72 65 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 .{.return.unlink($file);.}..retu
53da0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d rn.false;.}..public.function.rem
53dc0 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 21 oveDirectory($directory).{.if.(!
53de0 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 is_dir($directory)).{.return.tru
53e00 65 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 e;.}..if.(defined('PHP_WINDOWS_V
53e20 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 ERSION_BUILD')).{.$cmd.=.sprintf
53e40 28 27 72 6d 64 69 72 20 2f 53 20 2f 51 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 ('rmdir./S./Q.%s',.escapeshellar
53e60 67 28 72 65 61 6c 70 61 74 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 65 6c 73 65 g(realpath($directory)));.}.else
53e80 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 20 2d 72 66 20 25 73 27 2c 20 65 .{.$cmd.=.sprintf('rm.-rf.%s',.e
53ea0 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 64 69 72 65 63 74 6f 72 79 29 29 3b 0a 7d 0a 0a 24 scapeshellarg($directory));.}..$
53ec0 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 2d 3e 65 78 result.=.$this->getProcess()->ex
53ee0 65 63 75 74 65 28 24 63 6d 64 29 20 3d 3d 3d 20 30 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 ecute($cmd).===.0;....clearstatc
53f00 61 63 68 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 26 26 20 21 69 73 5f 64 ache();..return.$result.&&.!is_d
53f20 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ir($directory);.}..public.functi
53f40 6f 6e 20 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 64 69 72 65 63 74 on.ensureDirectoryExists($direct
53f60 6f 72 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 ory).{.if.(!is_dir($directory)).
53f80 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b {.if.(file_exists($directory)).{
53fa0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 .throw.new.\RuntimeException(.$d
53fc0 69 72 65 63 74 6f 72 79 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 irectory.'.exists.and.is.not.a.d
53fe0 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 6d 6b 64 69 72 28 24 64 69 72 65 irectory.'.);.}.if.(!mkdir($dire
54000 63 74 6f 72 79 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ctory,.0777,.true)).{.throw.new.
54020 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 2e 27 20 \RuntimeException(.$directory.'.
54040 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 does.not.exist.and.could.not.be.
54060 63 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 created.'.);.}.}.}..public.funct
54080 69 6f 6e 20 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 ion.rename($source,.$target).{.i
540a0 66 20 28 74 72 75 65 20 3d 3d 3d 20 40 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 f.(true.===.@rename($source,.$ta
540c0 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 rget)).{.return;.}..if.(defined(
540e0 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 'PHP_WINDOWS_VERSION_BUILD')).{.
54100 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 78 63 6f 70 79 20 25 73 20 25 ..$command.=.sprintf('xcopy.%s.%
54120 73 20 2f 45 20 2f 49 20 2f 51 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 s./E./I./Q',.escapeshellarg($sou
54140 72 63 65 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 29 29 3b 0a rce),.escapeshellarg($target));.
54160 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 if.(0.===.$this->processExecutor
54180 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 ->execute($command)).{.$this->re
541a0 6d 6f 76 65 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 65 6c 73 65 move($source);..return;.}.}.else
541c0 20 7b 0a 0a 20 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 6d 76 20 25 73 .{.....$command.=.sprintf('mv.%s
541e0 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 29 2c 20 65 .%s',.escapeshellarg($source),.e
54200 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 29 29 3b 0a 69 66 20 28 30 20 3d scapeshellarg($target));.if.(0.=
54220 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 ==.$this->processExecutor->execu
54240 74 65 28 24 63 6f 6d 6d 61 6e 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 74 68 72 te($command)).{.return;.}.}..thr
54260 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 ow.new.\RuntimeException(sprintf
54280 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 6e 61 6d 65 20 22 25 73 22 20 74 6f 20 22 25 73 22 2e ('Could.not.rename."%s".to."%s".
542a0 27 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ',.$source,.$target));.}........
542c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 ..public.function.findShortestPa
542e0 74 68 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d 20 66 61 th($from,.$to,.$directories.=.fa
54300 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 lse).{.if.(!$this->isAbsolutePat
54320 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 h($from).||.!$this->isAbsolutePa
54340 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 th($to)).{.throw.new.\InvalidArg
54360 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 umentException(sprintf('$from.(%
54380 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 s).and.$to.(%s).must.be.absolute
543a0 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d .paths.',.$from,.$to));.}..$from
543c0 20 3d 20 6c 63 66 69 72 73 74 28 72 74 72 69 6d 28 73 74 72 74 72 28 24 66 72 6f 6d 2c 20 27 5c .=.lcfirst(rtrim(strtr($from,.'\
543e0 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 72 \',.'/'),.'/'));.$to.=.lcfirst(r
54400 74 72 69 6d 28 73 74 72 74 72 28 24 74 6f 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 trim(strtr($to,.'\\',.'/'),.'/')
54420 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 29 20 7b 0a 24 66 72 6f 6d 20 2e 3d );..if.($directories).{.$from..=
54440 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 27 3b 0a 7d 0a 0a 69 66 20 28 64 69 72 6e 61 6d 65 28 24 .'/dummy_file';.}..if.(dirname($
54460 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 20 7b 0a 72 65 74 75 72 6e from).===.dirname($to)).{.return
54480 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 74 6f 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 .'./'.basename($to);.}..$commonP
544a0 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 ath.=.$to;.while.(strpos($from,.
544c0 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 $commonPath).!==.0.&&.'/'.!==.$c
544e0 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a ommonPath.&&.!preg_match('{^[a-z
54500 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 26 26 20 27 2e 27 20 21 3d ]:/?$}i',.$commonPath).&&.'.'.!=
54520 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 =.$commonPath).{.$commonPath.=.s
54540 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c trtr(dirname($commonPath),.'\\',
54560 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d .'/');.}..if.(0.!==.strpos($from
54580 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f ,.$commonPath).||.'/'.===.$commo
545a0 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a nPath.||.'.'.===.$commonPath).{.
545c0 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 return.$to;.}..$commonPath.=.rtr
545e0 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 24 73 6f 75 im($commonPath,.'/')...'/';.$sou
54600 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 rcePathDepth.=.substr_count(subs
54620 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 tr($from,.strlen($commonPath)),.
54640 27 2f 27 29 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 '/');.$commonPathCode.=.str_repe
54660 61 74 28 27 2e 2e 2f 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 0a 72 65 at('../',.$sourcePathDepth);..re
54680 74 75 72 6e 20 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 73 75 62 73 74 72 28 24 turn.($commonPathCode...substr($
546a0 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 29 20 3f 3a 20 27 2e 2f to,.strlen($commonPath))).?:.'./
546c0 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 ';.}..........public.function.fi
546e0 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 ndShortestPathCode($from,.$to,.$
54700 64 69 72 65 63 74 6f 72 69 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 directories.=.false).{.if.(!$thi
54720 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 s->isAbsolutePath($from).||.!$th
54740 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 is->isAbsolutePath($to)).{.throw
54760 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
54780 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 printf('$from.(%s).and.$to.(%s).
547a0 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c must.be.absolute.paths.',.$from,
547c0 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 73 74 72 74 72 .$to));.}..$from.=.lcfirst(strtr
547e0 28 24 66 72 6f 6d 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 ($from,.'\\',.'/'));.$to.=.lcfir
54800 73 74 28 73 74 72 74 72 28 24 74 6f 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 3b 0a 0a 69 66 20 28 st(strtr($to,.'\\',.'/'));..if.(
54820 24 66 72 6f 6d 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f $from.===.$to).{.return.$directo
54840 72 69 65 73 20 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d ries.?.'__DIR__'.:.'__FILE__';.}
54860 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 ..$commonPath.=.$to;.while.(strp
54880 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 21 3d 3d 20 30 20 26 26 20 os($from,.$commonPath).!==.0.&&.
548a0 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 '/'.!==.$commonPath.&&.!preg_mat
548c0 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 ch('{^[a-z]:/?$}i',.$commonPath)
548e0 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d .&&.'.'.!==.$commonPath).{.$comm
54900 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 onPath.=.strtr(dirname($commonPa
54920 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 th),.'\\',.'/');.}..if.(0.!==.st
54940 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 rpos($from,.$commonPath).||.'/'.
54960 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d ===.$commonPath.||.'.'.===.$comm
54980 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 74 6f 2c onPath).{.return.var_export($to,
549a0 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 .true);.}..$commonPath.=.rtrim($
549c0 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 74 72 70 commonPath,.'/')...'/';.if.(strp
549e0 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 os($to,.$from.'/').===.0).{.retu
54a00 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 75 62 73 74 rn.'__DIR__...'.var_export(subst
54a20 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 3b 0a 7d 0a r($to,.strlen($from)),.true);.}.
54a40 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 $sourcePathDepth.=.substr_count(
54a60 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 substr($from,.strlen($commonPath
54a80 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f 6d 6d 6f 6e )),.'/').+.$directories;.$common
54aa0 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 64 69 72 6e 61 6d 65 28 27 PathCode.=.str_repeat('dirname('
54ac0 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 ,.$sourcePathDepth).'__DIR__'.st
54ae0 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b r_repeat(')',.$sourcePathDepth);
54b00 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e .$relTarget.=.substr($to,.strlen
54b20 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 ($commonPath));..return.$commonP
54b40 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 65 6c 54 61 72 67 65 74 29 20 3f 20 athCode...(strlen($relTarget).?.
54b60 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 61 72 67 65 '.'...var_export('/'...$relTarge
54b80 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 t,.true).:.'');.}........public.
54ba0 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b function.isAbsolutePath($path).{
54bc0 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 .return.substr($path,.0,.1).===.
54be0 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 '/'.||.substr($path,.1,.1).===.'
54c00 3a 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f :';.}..protected.function.getPro
54c20 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 cess().{.return.new.ProcessExecu
54c40 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 tor;.}.}.<?php............namesp
54c60 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ace.Composer\Util;..use.Composer
54c80 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f \IO\IOInterface;.use.Composer\Co
54ca0 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 nfig;.use.Composer\Downloader\Tr
54cc0 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a ansportException;.use.Composer\J
54ce0 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b son\JsonFile;.....class.GitHub.{
54d00 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 .protected.$io;.protected.$confi
54d20 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 g;.protected.$process;.protected
54d40 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .$remoteFilesystem;..........pub
54d60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 lic.function.__construct(IOInter
54d80 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 face.$io,.Config.$config,.Proces
54da0 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 sExecutor.$process.=.null,.Remot
54dc0 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 eFilesystem.$remoteFilesystem.=.
54de0 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e null).{.$this->io.=.$io;.$this->
54e00 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 config.=.$config;.$this->process
54e20 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 .=.$process.?:.new.ProcessExecut
54e40 6f 72 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 or;.$this->remoteFilesystem.=.$r
54e60 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c emoteFilesystem.?:.new.RemoteFil
54e80 65 73 79 73 74 65 6d 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 esystem($io);.}........public.fu
54ea0 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 6f 72 69 67 69 6e 55 72 6c nction.authorizeOAuth($originUrl
54ec0 29 0a 7b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 21 3d 3d 20 24 6f 72 69 67 69 6e ).{.if.('github.com'.!==.$origin
54ee0 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 Url).{.return.false;.}....if.(0.
54f00 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 ===.$this->process->execute('git
54f20 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2e 61 63 63 65 73 73 74 6f 6b 65 6e 27 2c 20 24 6f 75 .config.github.accesstoken',.$ou
54f40 74 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 tput)).{.$this->io->setAuthoriza
54f60 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 tion($originUrl,.trim($output),.
54f80 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 'x-oauth-basic');..return.true;.
54fa0 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 }..return.false;.}.........publi
54fc0 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 c.function.authorizeOAuthInterac
54fe0 74 69 76 65 6c 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 tively($originUrl,.$message.=.nu
55000 6c 6c 29 0a 7b 0a 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 69 66 20 28 ll).{.$attemptCounter.=.0;..if.(
55020 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 65 $message).{.$this->io->write($me
55040 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 54 68 65 20 ssage);.}.$this->io->write('The.
55060 63 72 65 64 65 6e 74 69 61 6c 73 20 77 69 6c 6c 20 62 65 20 73 77 61 70 70 65 64 20 66 6f 72 20 credentials.will.be.swapped.for.
55080 61 6e 20 4f 41 75 74 68 20 74 6f 6b 65 6e 20 73 74 6f 72 65 64 20 69 6e 20 27 2e 24 74 68 69 73 an.OAuth.token.stored.in.'.$this
550a0 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 6f 6e 66 69 67 2e 6a ->config->get('home').'/config.j
550c0 73 6f 6e 2c 20 79 6f 75 72 20 70 61 73 73 77 6f 72 64 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 73 son,.your.password.will.not.be.s
550e0 74 6f 72 65 64 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 54 6f 20 72 65 tored');.$this->io->write('To.re
55100 76 6f 6b 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 69 73 20 74 6f 6b 65 6e 20 79 6f 75 20 63 61 voke.access.to.this.token.you.ca
55120 6e 20 76 69 73 69 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 n.visit.https://github.com/setti
55140 6e 67 73 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 3b 0a 77 68 69 6c 65 20 28 24 61 74 74 65 ngs/applications');.while.($atte
55160 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 20 3c 20 35 29 20 7b 0a 74 72 79 20 7b 0a 24 75 73 65 72 6e mptCounter++.<.5).{.try.{.$usern
55180 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 ame.=.$this->io->ask('Username:.
551a0 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e ');.$password.=.$this->io->askAn
551c0 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 dHideAnswer('Password:.');.$this
551e0 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 ->io->setAuthorization($originUr
55200 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 0a 0a 20 24 61 70 l,.$username,.$password);....$ap
55220 70 4e 61 6d 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 pName.=.'Composer';.if.(0.===.$t
55240 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 6f 73 74 6e 61 6d 65 27 his->process->execute('hostname'
55260 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 61 70 70 4e 61 6d 65 20 2e 3d 20 27 20 6f 6e 20 27 ,.$output)).{.$appName..=.'.on.'
55280 20 2e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 73 20 3d ...trim($output);.}..$contents.=
552a0 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 72 65 6d 6f .JsonFile::parseJson($this->remo
552c0 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 teFilesystem->getContents($origi
552e0 6e 55 72 6c 2c 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 61 75 nUrl,.'https://api.github.com/au
55300 74 68 6f 72 69 7a 61 74 69 6f 6e 73 27 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 0a 27 68 74 thorizations',.false,.array(.'ht
55320 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 tp'.=>.array(.'method'.=>.'POST'
55340 2c 0a 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 68 ,.'follow_location'.=>.false,.'h
55360 65 61 64 65 72 27 20 3d 3e 20 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 eader'.=>."Content-Type:.applica
55380 74 69 6f 6e 2f 6a 73 6f 6e 5c 72 5c 6e 22 2c 0a 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 6a 73 6f tion/json\r\n",.'content'.=>.jso
553a0 6e 5f 65 6e 63 6f 64 65 28 61 72 72 61 79 28 0a 27 73 63 6f 70 65 73 27 20 3d 3e 20 61 72 72 61 n_encode(array(.'scopes'.=>.arra
553c0 79 28 27 72 65 70 6f 27 29 2c 0a 27 6e 6f 74 65 27 20 3d 3e 20 24 61 70 70 4e 61 6d 65 2c 0a 27 y('repo'),.'note'.=>.$appName,.'
553e0 6e 6f 74 65 5f 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 note_url'.=>.'https://getcompose
55400 72 2e 6f 72 67 2f 27 2c 0a 29 29 2c 0a 29 0a 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 r.org/',.)),.).)));.}.catch.(Tra
55420 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 nsportException.$e).{.if.(in_arr
55440 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 61 72 72 61 79 28 34 30 33 2c 20 34 30 31 ay($e->getCode(),.array(403,.401
55460 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 76 61 6c 69 64 20 ))).{.$this->io->write('Invalid.
55480 63 72 65 64 65 6e 74 69 61 6c 73 2e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 credentials.');.continue;.}..thr
554a0 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a ow.$e;.}..$this->io->setAuthoriz
554c0 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f 6b ation($originUrl,.$contents['tok
554e0 65 6e 27 5d 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 0a 0a 20 24 67 69 74 68 en'],.'x-oauth-basic');....$gith
55500 75 62 54 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 ubTokens.=.$this->config->get('g
55520 69 74 68 75 62 2d 6f 61 75 74 68 27 29 20 3f 3a 20 61 72 72 61 79 28 29 3b 0a 24 67 69 74 68 75 ithub-oauth').?:.array();.$githu
55540 62 54 6f 6b 65 6e 73 5b 24 6f 72 69 67 69 6e 55 72 6c 5d 20 3d 20 24 63 6f 6e 74 65 6e 74 73 5b bTokens[$originUrl].=.$contents[
55560 27 74 6f 6b 65 6e 27 5d 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 43 6f 6e 66 'token'];.$this->config->getConf
55580 69 67 53 6f 75 72 63 65 28 29 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 igSource()->addConfigSetting('gi
555a0 74 68 75 62 2d 6f 61 75 74 68 27 2c 20 24 67 69 74 68 75 62 54 6f 6b 65 6e 73 29 3b 0a 0a 72 65 thub-oauth',.$githubTokens);..re
555c0 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 turn.true;.}..throw.new.\Runtime
555e0 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 47 69 74 48 75 62 20 63 72 65 64 65 6e Exception("Invalid.GitHub.creden
55600 74 69 61 6c 73 20 35 20 74 69 6d 65 73 20 69 6e 20 61 20 72 6f 77 2c 20 61 62 6f 72 74 69 6e 67 tials.5.times.in.a.row,.aborting
55620 2e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 .");.}.}.<?php............namesp
55640 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ace.Composer\Util;..use.Symfony\
55660 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 63 Component\Process\Process;.....c
55680 6c 61 73 73 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 lass.ProcessExecutor.{.protected
556a0 20 73 74 61 74 69 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 33 30 30 3b 0a 0a 70 72 6f 74 65 63 74 .static.$timeout.=.300;..protect
556c0 65 64 20 24 63 61 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 ed.$captureOutput;.protected.$er
556e0 72 6f 72 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rorOutput;...........public.func
55700 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 26 24 6f 75 74 70 75 74 20 tion.execute($command,.&$output.
55720 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 =.null,.$cwd.=.null).{.$this->ca
55740 70 74 75 72 65 4f 75 74 70 75 74 20 3d 20 63 6f 75 6e 74 28 66 75 6e 63 5f 67 65 74 5f 61 72 67 ptureOutput.=.count(func_get_arg
55760 73 28 29 29 20 3e 20 31 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 6e s()).>.1;.$this->errorOutput.=.n
55780 75 6c 6c 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6f 6d ull;.$process.=.new.Process($com
557a0 6d 61 6e 64 2c 20 24 63 77 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a mand,.$cwd,.null,.null,.static::
557c0 67 65 74 54 69 6d 65 6f 75 74 28 29 29 3b 0a 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 getTimeout());..$callback.=.is_c
557e0 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 allable($output).?.$output.:.arr
55800 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f ay($this,.'outputHandler');.$pro
55820 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 cess->run($callback);..if.($this
55840 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 26 26 20 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 ->captureOutput.&&.!is_callable(
55860 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e $output)).{.$output.=.$process->
55880 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 getOutput();.}..$this->errorOutp
558a0 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b ut.=.$process->getErrorOutput();
558c0 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 ..return.$process->getExitCode()
558e0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 ;.}..public.function.splitLines(
55900 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 28 73 74 72 69 6e 67 29 20 24 6f 75 74 $output).{.return.((string).$out
55920 70 75 74 20 3d 3d 3d 20 27 27 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 70 72 65 67 5f 73 70 6c put.===.'').?.array().:.preg_spl
55940 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a it('{\r?\n}',.$output);.}.......
55960 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 public.function.getErrorOutput()
55980 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 7d 0a .{.return.$this->errorOutput;.}.
559a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 28 24 .public.function.outputHandler($
559c0 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 type,.$buffer).{.if.($this->capt
559e0 75 72 65 4f 75 74 70 75 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 65 63 68 6f 20 24 62 75 ureOutput).{.return;.}..echo.$bu
55a00 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 ffer;.}..public.static.function.
55a20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 24 74 getTimeout().{.return.static::$t
55a40 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f imeout;.}..public.static.functio
55a60 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 73 74 61 74 69 63 3a n.setTimeout($timeout).{.static:
55a80 3a 24 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a :$timeout.=.$timeout;.}.}.<?php.
55aa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ...........namespace.Composer\Ut
55ac0 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 il;..use.Composer\Composer;.use.
55ae0 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d Composer\IO\IOInterface;.use.Com
55b00 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 poser\Downloader\TransportExcept
55b20 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a ion;.....class.RemoteFilesystem.
55b40 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 66 69 72 73 74 43 61 6c {.private.$io;.private.$firstCal
55b60 6c 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 4d 61 78 3b 0a 70 72 69 76 61 74 65 20 24 6f l;.private.$bytesMax;.private.$o
55b80 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 55 72 6c 3b 0a 70 72 69 76 riginUrl;.private.$fileUrl;.priv
55ba0 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 73 75 6c 74 3b 0a ate.$fileName;.private.$result;.
55bc0 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 private.$progress;.private.$last
55be0 50 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a Progress;.private.$options;.....
55c00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 ...public.function.__construct(I
55c20 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 OInterface.$io,.$options.=.array
55c40 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 6f 70 ()).{.$this->io.=.$io;.$this->op
55c60 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tions.=.$options;.}.............
55c80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c public.function.copy($originUrl,
55ca0 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 20 .$fileUrl,.$fileName,.$progress.
55cc0 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 =.true,.$options.=.array()).{.$t
55ce0 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 his->get($originUrl,.$fileUrl,.$
55d00 6f 70 74 69 6f 6e 73 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a options,.$fileName,.$progress);.
55d20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .return.$this->result;.}........
55d40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 ....public.function.getContents(
55d60 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 $originUrl,.$fileUrl,.$progress.
55d80 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 =.true,.$options.=.array()).{.$t
55da0 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 his->get($originUrl,.$fileUrl,.$
55dc0 6f 70 74 69 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 0a 72 65 74 75 options,.null,.$progress);..retu
55de0 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$this->result;.}.............
55e00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6f 72 69 67 69 6e 55 72 protected.function.get($originUr
55e20 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 20 l,.$fileUrl,.$additionalOptions.
55e40 3d 20 61 72 72 61 79 28 29 2c 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 =.array(),.$fileName.=.null,.$pr
55e60 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 ogress.=.true).{.$this->bytesMax
55e80 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 .=.0;.$this->result.=.null;.$thi
55ea0 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 s->originUrl.=.$originUrl;.$this
55ec0 2d 3e 66 69 6c 65 55 72 6c 20 3d 20 24 66 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c ->fileUrl.=.$fileUrl;.$this->fil
55ee0 65 4e 61 6d 65 20 3d 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 eName.=.$fileName;.$this->progre
55f00 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 ss.=.$progress;.$this->lastProgr
55f20 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 ess.=.null;..$options.=.$this->g
55f40 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 etOptionsForUrl($originUrl,.$add
55f60 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f itionalOptions);.$ctx.=.StreamCo
55f80 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 6f 70 74 69 6f 6e ntextFactory::getContext($option
55fa0 73 2c 20 61 72 72 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 27 20 3d 3e 20 61 72 72 61 79 s,.array('notification'.=>.array
55fc0 28 24 74 68 69 73 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 29 29 3b 0a 0a 69 66 20 28 24 ($this,.'callbackGet')));..if.($
55fe0 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 this->progress).{.$this->io->wri
56000 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 63 6f te("....Downloading:.<comment>co
56020 6e 6e 65 63 74 69 6f 6e 2e 2e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a nnection...</comment>",.false);.
56040 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 24 65 72 72 6f 72 43 6f 64 }..$errorMessage.=.'';.$errorCod
56060 65 20 3d 20 30 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f e.=.0;.set_error_handler(functio
56080 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 n.($code,.$msg).use.(&$errorMess
560a0 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 age).{.if.($errorMessage).{.$err
560c0 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 orMessage..=."\n";.}.$errorMessa
560e0 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 67 65 74 5f 63 ge..=.preg_replace('{^file_get_c
56100 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d ontents\(.*?\):.}',.'',.$msg);.}
56120 29 3b 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 );.try.{.$result.=.file_get_cont
56140 65 6e 74 73 28 24 66 69 6c 65 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 7d 20 63 ents($fileUrl,.false,.$ctx);.}.c
56160 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e atch.(\Exception.$e).{.if.($e.in
56180 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 stanceof.TransportException.&&.!
561a0 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 empty($http_response_header[0]))
561c0 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 .{.$e->setHeaders($http_response
561e0 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 _header);.}.}.if.($errorMessage.
56200 26 26 20 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 &&.!ini_get('allow_url_fopen')).
56220 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 {.$errorMessage.=.'allow_url_fop
56240 65 6e 20 6d 75 73 74 20 62 65 20 65 6e 61 62 6c 65 64 20 69 6e 20 70 68 70 2e 69 6e 69 20 28 27 en.must.be.enabled.in.php.ini.('
56260 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2e 27 29 27 3b 0a 7d 0a 72 65 73 74 6f 72 65 5f 65 72 .$errorMessage.')';.}.restore_er
56280 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 29 20 7b 0a ror_handler();.if.(isset($e)).{.
562a0 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f throw.$e;.}....if.(!empty($http_
562c0 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 response_header[0]).&&.preg_matc
562e0 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 28 5b 34 35 5d 5c 64 5c 64 29 7d 69 27 2c 20 24 68 74 h('{^HTTP/\S+.([45]\d\d)}i',.$ht
56300 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 2c 20 24 6d 61 74 63 68 29 29 20 tp_response_header[0],.$match)).
56320 7b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 {.$result.=.false;.$errorCode.=.
56340 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 $match[1];.}....if.(false.!==.$r
56360 65 73 75 6c 74 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 esult.&&.extension_loaded('zlib'
56380 29 20 26 26 20 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 ).&&.substr($fileUrl,.0,.4).===.
563a0 27 68 74 74 70 27 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 'http').{.$decode.=.false;.forea
563c0 63 68 20 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 73 20 24 68 65 ch.($http_response_header.as.$he
563e0 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e ader).{.if.(preg_match('{^conten
56400 74 2d 65 6e 63 6f 64 69 6e 67 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 65 61 64 65 72 t-encoding:.*gzip.*$}i',.$header
56420 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d )).{.$decode.=.true;.continue;.}
56440 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 7d 69 27 2c .elseif.(preg_match('{^HTTP/}i',
56460 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a .$header)).{.$decode.=.false;.}.
56480 7d 0a 0a 69 66 20 28 24 64 65 63 6f 64 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f }..if.($decode).{.if.(version_co
564a0 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 2e 30 27 2c 20 27 3e 3d 27 mpare(PHP_VERSION,.'5.4.0',.'>='
564c0 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 65 28 24 72 65 73 75 )).{.$result.=.zlib_decode($resu
564e0 6c 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 lt);.}.else.{...$result.=.file_g
56500 65 74 5f 63 6f 6e 74 65 6e 74 73 28 27 63 6f 6d 70 72 65 73 73 2e 7a 6c 69 62 3a 2f 2f 64 61 74 et_contents('compress.zlib://dat
56520 61 3a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 3b 62 61 73 65 36 a:application/octet-stream;base6
56540 34 2c 27 2e 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 7d 4,'.base64_encode($result));.}.}
56560 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 .}..if.($this->progress).{.$this
56580 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 ->io->overwrite("....Downloading
565a0 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 31 30 30 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 29 3b 0a 7d 0a 0a :.<comment>100%</comment>");.}..
565c0 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 65 73 75 6c 74 20 26 26 20 6e 75 6c 6c 20 ..if.(false.!==.$result.&&.null.
565e0 21 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d !==.$fileName).{.$errorMessage.=
56600 20 27 27 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 .'';.set_error_handler(function.
56620 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 ($code,.$msg).use.(&$errorMessag
56640 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 e).{.if.($errorMessage).{.$error
56660 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 Message..=."\n";.}.$errorMessage
56680 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e ..=.preg_replace('{^file_put_con
566a0 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b tents\(.*?\):.}',.'',.$msg);.});
566c0 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 .$result.=.(bool).file_put_conte
566e0 6e 74 73 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 72 65 73 75 6c 74 29 3b 0a 72 65 73 74 6f 72 65 nts($fileName,.$result);.restore
56700 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 _error_handler();.if.(false.===.
56720 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 $result).{.throw.new.TransportEx
56740 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 ception('The."'.$fileUrl.'".file
56760 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 .could.not.be.written.to.'.$file
56780 4e 61 6d 65 2e 27 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a Name.':.'.$errorMessage);.}.}...
567a0 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 20 7b 0a 24 .if.(null.===.$this->result).{.$
567c0 74 68 69 73 2d 3e 72 65 73 75 6c 74 20 3d 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 20 28 66 this->result.=.$result;.}..if.(f
567e0 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 29 20 7b 0a 24 65 20 3d 20 6e alse.===.$this->result).{.$e.=.n
56800 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 66 ew.TransportException('The."'.$f
56820 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e ileUrl.'".file.could.not.be.down
56840 6c 6f 61 64 65 64 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 65 72 72 6f 72 43 loaded:.'.$errorMessage,.$errorC
56860 6f 64 65 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f ode);.if.(!empty($http_response_
56880 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 header[0])).{.$e->setHeaders($ht
568a0 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 tp_response_header);.}..throw.$e
568c0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ;.}.}............protected.funct
568e0 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 47 65 74 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 ion.callbackGet($notificationCod
56900 65 2c 20 24 73 65 76 65 72 69 74 79 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 65 73 73 61 67 65 e,.$severity,.$message,.$message
56920 43 6f 64 65 2c 20 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 2c 20 24 62 79 74 65 73 4d Code,.$bytesTransferred,.$bytesM
56940 61 78 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 29 ax).{.switch.($notificationCode)
56960 20 7b 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 41 49 4c 55 52 45 3a 0a 74 .{.case.STREAM_NOTIFY_FAILURE:.t
56980 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 hrow.new.TransportException('The
569a0 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 ."'.$this->fileUrl.'".file.could
569c0 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 28 27 2e 74 72 69 6d 28 24 6d 65 73 73 .not.be.downloaded.('.trim($mess
569e0 61 67 65 29 2e 27 29 27 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 3b 0a 62 72 65 61 6b 3b 0a age).')',.$messageCode);.break;.
56a00 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 52 45 .case.STREAM_NOTIFY_AUTH_REQUIRE
56a20 44 3a 0a 69 66 20 28 34 30 31 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 69 D:.if.(401.===.$messageCode).{.i
56a40 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 f.(!$this->io->isInteractive()).
56a60 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 {.$message.=."The.'"...$this->fi
56a80 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 72 65 71 75 69 72 65 64 20 61 75 74 68 65 6e 74 69 leUrl..."'.URL.required.authenti
56aa0 63 61 74 69 6f 6e 2e 5c 6e 59 6f 75 20 6d 75 73 74 20 62 65 20 75 73 69 6e 67 20 74 68 65 20 69 cation.\nYou.must.be.using.the.i
56ac0 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6e 73 6f 6c 65 22 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 nteractive.console";..throw.new.
56ae0 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 34 30 31 TransportException($message,.401
56b00 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 20 20 20 20 );.}..$this->io->overwrite('....
56b20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 Authentication.required.(<info>'
56b40 2e 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 50 48 50 5f 55 .parse_url($this->fileUrl,.PHP_U
56b60 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 6e 61 6d 65 RL_HOST).'</info>):');.$username
56b80 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e 61 6d .=.$this->io->ask('......Usernam
56ba0 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 e:.');.$password.=.$this->io->as
56bc0 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 3a 20 kAndHideAnswer('......Password:.
56be0 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 ');.$this->io->setAuthorization(
56c00 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 $this->originUrl,.$username,.$pa
56c20 73 73 77 6f 72 64 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 ssword);..$this->get($this->orig
56c40 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 inUrl,.$this->fileUrl,.$this->fi
56c60 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 62 72 65 61 leName,.$this->progress);.}.brea
56c80 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 53 55 k;..case.STREAM_NOTIFY_AUTH_RESU
56ca0 4c 54 3a 0a 69 66 20 28 34 30 33 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a LT:.if.(403.===.$messageCode).{.
56cc0 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 throw.new.TransportException($me
56ce0 73 73 61 67 65 2c 20 34 30 33 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 ssage,.403);.}.break;..case.STRE
56d00 41 4d 5f 4e 4f 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 AM_NOTIFY_FILE_SIZE_IS:.if.($thi
56d20 73 2d 3e 62 79 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 s->bytesMax.<.$bytesMax).{.$this
56d40 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b ->bytesMax.=.$bytesMax;.}.break;
56d60 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 ..case.STREAM_NOTIFY_PROGRESS:.i
56d80 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d f.($this->bytesMax.>.0.&&.$this-
56da0 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 30 3b 0a 0a >progress).{.$progression.=.0;..
56dc0 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 29 20 7b 0a 24 70 72 6f 67 if.($this->bytesMax.>.0).{.$prog
56de0 72 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 ression.=.round($bytesTransferre
56e00 64 20 2f 20 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 2a 20 31 30 30 29 3b 0a 7d 0a 0a 69 d./.$this->bytesMax.*.100);.}..i
56e20 66 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 25 20 35 29 20 26 26 20 24 f.((0.===.$progression.%.5).&&.$
56e40 70 72 6f 67 72 65 73 73 69 6f 6e 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 progression.!==.$this->lastProgr
56e60 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 72 ess).{.$this->lastProgress.=.$pr
56e80 6f 67 72 65 73 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 ogression;.$this->io->overwrite(
56ea0 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 24 70 72 6f 67 "....Downloading:.<comment>$prog
56ec0 72 65 73 73 69 6f 6e 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d ression%</comment>",.false);.}.}
56ee0 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 .break;..default:.break;.}.}..pr
56f00 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 otected.function.getOptionsForUr
56f20 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 l($originUrl,.$additionalOptions
56f40 29 0a 7b 0a 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 73 70 72 69 6e 74 66 28 0a 27 ).{.$headers.=.array(.sprintf(.'
56f60 55 73 65 72 2d 41 67 65 6e 74 3a 20 43 6f 6d 70 6f 73 65 72 2f 25 73 20 28 25 73 3b 20 25 73 3b User-Agent:.Composer/%s.(%s;.%s;
56f80 20 50 48 50 20 25 73 2e 25 73 2e 25 73 29 27 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 .PHP.%s.%s.%s)',.Composer::VERSI
56fa0 4f 4e 20 3d 3d 3d 20 27 31 36 38 32 35 33 32 27 20 3f 20 27 73 6f 75 72 63 65 27 20 3a 20 43 6f ON.===.'1682532'.?.'source'.:.Co
56fc0 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c mposer::VERSION,.php_uname('s'),
56fe0 0a 70 68 70 5f 75 6e 61 6d 65 28 27 72 27 29 2c 0a 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 .php_uname('r'),.PHP_MAJOR_VERSI
57000 4f 4e 2c 0a 50 48 50 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 52 45 4c 45 41 ON,.PHP_MINOR_VERSION,.PHP_RELEA
57020 53 45 5f 56 45 52 53 49 4f 4e 0a 29 0a 29 3b 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c SE_VERSION.).);..if.(extension_l
57040 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 oaded('zlib')).{.$headers[].=.'A
57060 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 70 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 ccept-Encoding:.gzip';.}..if.($t
57080 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6f 72 69 67 69 his->io->hasAuthorization($origi
570a0 6e 55 72 6c 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 nUrl)).{.$auth.=.$this->io->getA
570c0 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 24 61 75 74 68 53 uthorization($originUrl);.$authS
570e0 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 tr.=.base64_encode($auth['userna
57100 6d 65 27 5d 20 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b me']...':'...$auth['password']);
57120 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 .$headers[].=.'Authorization:.Ba
57140 73 69 63 20 27 2e 24 61 75 74 68 53 74 72 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 sic.'.$authStr;.}..$options.=.ar
57160 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 74 68 69 73 2d 3e 6f 70 74 ray_replace_recursive($this->opt
57180 69 6f 6e 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 ions,.$additionalOptions);..if.(
571a0 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d isset($options['http']['header']
571c0 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b ).&&.!is_array($options['http'][
571e0 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 'header'])).{.$options['http']['
57200 68 65 61 64 65 72 27 5d 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 74 72 69 6d 28 header'].=.explode("\r\n",.trim(
57220 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 2c 20 22 5c 72 5c $options['http']['header'],."\r\
57240 6e 22 29 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 n"));.}.foreach.($headers.as.$he
57260 61 64 65 72 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 ader).{.$options['http']['header
57280 27 5d 5b 5d 20 3d 20 24 68 65 61 64 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f '][].=.$header;.}..return.$optio
572a0 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ns;.}.}.<?php............namespa
572c0 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c ce.Composer\Util;.......final.cl
572e0 61 73 73 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 0a ass.StreamContextFactory.{......
57300 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e ...public.static.function.getCon
57320 74 65 78 74 28 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 text(array.$defaultOptions.=.arr
57340 61 79 28 29 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 20 3d 20 61 72 72 ay(),.array.$defaultParams.=.arr
57360 61 79 28 29 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 ay()).{.$options.=.array('http'.
57380 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 =>.array());....if.(!empty($_SER
573a0 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 VER['HTTP_PROXY']).||.!empty($_S
573c0 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 ERVER['http_proxy'])).{...$proxy
573e0 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 .=.parse_url(!empty($_SERVER['ht
57400 74 70 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f tp_proxy']).?.$_SERVER['http_pro
57420 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a xy'].:.$_SERVER['HTTP_PROXY']);.
57440 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f 78 79 55 }..if.(!empty($proxy)).{.$proxyU
57460 52 4c 20 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 RL.=.isset($proxy['scheme']).?.$
57480 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 3a 20 27 27 3b 0a 24 70 proxy['scheme']...'://'.:.'';.$p
574a0 72 6f 78 79 55 52 4c 20 2e 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 29 roxyURL..=.isset($proxy['host'])
574c0 20 3f 20 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 20 28 69 73 73 .?.$proxy['host'].:.'';..if.(iss
574e0 65 74 28 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 et($proxy['port'])).{.$proxyURL.
57500 2e 3d 20 22 3a 22 20 2e 20 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 .=.":"...$proxy['port'];.}.elsei
57520 66 20 28 27 68 74 74 70 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c f.('http://'.==.substr($proxyURL
57540 2c 20 30 2c 20 37 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 30 22 3b 0a 7d ,.0,.7)).{.$proxyURL..=.":80";.}
57560 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 .elseif.('https://'.==.substr($p
57580 72 6f 78 79 55 52 4c 2c 20 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 roxyURL,.0,.8)).{.$proxyURL..=."
575a0 3a 34 34 33 22 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 5f 72 65 70 6c :443";.}....$proxyURL.=.str_repl
575c0 61 63 65 28 61 72 72 61 79 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 3a 2f 2f 27 29 ace(array('http://',.'https://')
575e0 2c 20 61 72 72 61 79 28 27 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 2c 20 24 70 72 ,.array('tcp://',.'ssl://'),.$pr
57600 6f 78 79 55 52 4c 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 72 6f 78 oxyURL);..if.(0.===.strpos($prox
57620 79 55 52 4c 2c 20 27 73 73 6c 3a 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 yURL,.'ssl:').&&.!extension_load
57640 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 ed('openssl')).{.throw.new.\Runt
57660 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 imeException('You.must.enable.th
57680 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 61 20 70 72 6f e.openssl.extension.to.use.a.pro
576a0 78 79 20 6f 76 65 72 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 xy.over.https');.}..$options['ht
576c0 74 70 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 78 79 27 20 3d 3e 20 24 70 72 6f 78 79 55 tp'].=.array(.'proxy'.=>.$proxyU
576e0 52 4c 2c 0a 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 74 72 75 65 2c 0a 29 RL,.'request_fulluri'.=>.true,.)
57700 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a ;..if.(isset($proxy['user'])).{.
57720 24 61 75 74 68 20 3d 20 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 69 73 73 65 $auth.=.$proxy['user'];.if.(isse
57740 74 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d 20 27 3a t($proxy['pass'])).{.$auth..=.':
57760 27 20 2e 20 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a 24 61 75 74 68 20 3d 20 62 61 '...$proxy['pass'];.}.$auth.=.ba
57780 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 se64_encode($auth);....if.(isset
577a0 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 ($defaultOptions['http']['header
577c0 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 '])).{.$defaultOptions['http']['
577e0 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f header'][].=."Proxy-Authorizatio
57800 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 70 74 n:.Basic.{$auth}";.}.else.{.$opt
57820 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 22 ions['http']['header'].=.array("
57840 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 Proxy-Authorization:.Basic.{$aut
57860 68 7d 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 h}");.}.}.}..$options.=.array_re
57880 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 place_recursive($options,.$defau
578a0 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 ltOptions);..return.stream_conte
578c0 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 50 61 72 61 xt_create($options,.$defaultPara
578e0 6d 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ms);.}.}.<?php............namesp
57900 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ace.Composer\Util;..use.Composer
57920 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 \Package\Loader\ArrayLoader;.use
57940 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 .Composer\Package\Loader\Validat
57960 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ingArrayLoader;.use.Composer\Pac
57980 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 kage\Loader\InvalidPackageExcept
579a0 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 ion;.use.Composer\Json\JsonValid
579c0 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c ationException;.use.Composer\IO\
579e0 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a IOInterface;.use.Composer\Json\J
57a00 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 56 61 6c 69 sonFile;........class.ConfigVali
57a20 64 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e dator.{.private.$io;..public.fun
57a40 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 ction.__construct(IOInterface.$i
57a60 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a o).{.$this->io.=.$io;.}.........
57a80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 29 0a public.function.validate($file).
57aa0 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 75 62 6c 69 73 68 45 72 72 {.$errors.=.array();.$publishErr
57ac0 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 ors.=.array();.$warnings.=.array
57ae0 28 29 3b 0a 0a 0a 20 24 6c 61 78 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 24 76 61 6c 69 64 ();....$laxValid.=.false;.$valid
57b00 20 3d 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e .=.false;.try.{.$json.=.new.Json
57b20 46 69 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d File($file,.new.RemoteFilesystem
57b40 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 24 6a 73 6f 6e 2d ($this->io));.$manifest.=.$json-
57b60 3e 72 65 61 64 28 29 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 >read();..$json->validateSchema(
57b80 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 78 56 61 6c 69 64 JsonFile::LAX_SCHEMA);.$laxValid
57ba0 20 3d 20 74 72 75 65 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 29 .=.true;.$json->validateSchema()
57bc0 3b 0a 24 76 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f 6e 56 61 ;.$valid.=.true;.}.catch.(JsonVa
57be0 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 lidationException.$e).{.foreach.
57c00 28 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a ($e->getErrors().as.$message).{.
57c20 69 66 20 28 24 6c 61 78 56 61 6c 69 64 29 20 7b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 5b if.($laxValid).{.$publishErrors[
57c40 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 5b 5d ].=.$message;.}.else.{.$errors[]
57c60 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 .=.$message;.}.}.}.catch.(\Excep
57c80 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 65 2d 3e 67 65 74 4d 65 tion.$e).{.$errors[].=.$e->getMe
57ca0 73 73 61 67 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 ssage();..return.array($errors,.
57cc0 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 0a 0a $publishErrors,.$warnings);.}...
57ce0 20 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d .if.(!empty($manifest['license']
57d00 29 29 20 7b 0a 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 )).{.$licenseValidator.=.new.Spd
57d20 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 69 66 20 28 21 24 6c 69 63 65 xLicenseIdentifier();.if.(!$lice
57d40 6e 73 65 56 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 6d 61 6e 69 66 65 73 74 nseValidator->validate($manifest
57d60 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 ['license'])).{.$warnings[].=.sp
57d80 72 69 6e 74 66 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 rintf(.'License.%s.is.not.a.vali
57da0 64 20 53 50 44 58 20 6c 69 63 65 6e 73 65 20 69 64 65 6e 74 69 66 69 65 72 2c 20 73 65 65 20 68 d.SPDX.license.identifier,.see.h
57dc0 74 74 70 3a 2f 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 20 69 66 20 ttp://www.spdx.org/licenses/.if.
57de0 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 27 2c 0a 6a 73 6f 6e 5f 65 you.use.an.open.license',.json_e
57e00 6e 63 6f 64 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d ncode($manifest['license']).);.}
57e20 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 .}.else.{.$warnings[].=.'No.lice
57e40 6e 73 65 20 73 70 65 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 nse.specified,.it.is.recommended
57e60 20 74 6f 20 64 6f 20 73 6f 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 .to.do.so';.}..if.(!empty($manif
57e80 65 73 74 5b 27 6e 61 6d 65 27 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d est['name']).&&.preg_match('{[A-
57ea0 5a 5d 7d 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 Z]}',.$manifest['name'])).{.$sug
57ec0 67 65 73 74 4e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 gestName.=.preg_replace('{(?:([a
57ee0 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 -z])([A-Z])|([A-Z])([A-Z][a-z]))
57f00 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 }',.'\\1\\3-\\2\\4',.$manifest['
57f20 6e 61 6d 65 27 5d 29 3b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 name']);.$suggestName.=.strtolow
57f40 65 72 28 24 73 75 67 67 65 73 74 4e 61 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d er($suggestName);..$warnings[].=
57f60 20 73 70 72 69 6e 74 66 28 0a 27 4e 61 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 .sprintf(.'Name."%s".does.not.ma
57f80 74 63 68 20 74 68 65 20 62 65 73 74 20 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 65 tch.the.best.practice.(e.g..lowe
57fa0 72 2d 63 61 73 65 64 2f 77 69 74 68 2d 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 74 r-cased/with-dashes)..We.suggest
57fc0 20 75 73 69 6e 67 20 22 25 73 22 20 69 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f 75 .using."%s".instead..As.such.you
57fe0 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 74 .will.not.be.able.to.submit.it.t
58000 6f 20 50 61 63 6b 61 67 69 73 74 2e 27 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d o.Packagist.',.$manifest['name']
58020 2c 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 ,.$suggestName.);.}..try.{.$load
58040 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e er.=.new.ValidatingArrayLoader(n
58060 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 69 ew.ArrayLoader(),.false);.if.(!i
58080 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 6d sset($manifest['version'])).{.$m
580a0 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a anifest['version'].=.'1.0.0';.}.
580c0 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b if.(!isset($manifest['name'])).{
580e0 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 64 75 6d 6d 79 2f 64 75 6d 6d .$manifest['name'].=.'dummy/dumm
58100 79 27 3b 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 61 6e 69 66 65 73 74 29 3b 0a y';.}.$loader->load($manifest);.
58120 7d 20 63 61 74 63 68 20 28 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e }.catch.(InvalidPackageException
58140 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 .$e).{.$errors.=.array_merge($er
58160 72 6f 72 73 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 rors,.$e->getErrors());.}..retur
58180 6e 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c n.array($errors,.$publishErrors,
581a0 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$warnings);.}.}.<?php..........
581c0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a ..namespace.Composer\Util;......
581e0 0a 63 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .class.ErrorHandler.{...........
58200 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 28 24 .public.static.function.handle($
58220 6c 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 0a 7b level,.$message,.$file,.$line).{
58240 0a 0a 20 69 66 20 28 21 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 29 29 20 7b 0a 72 65 74 ...if.(!error_reporting()).{.ret
58260 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 urn;.}..if.(ini_get('xdebug.scre
58280 61 6d 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 57 61 72 6e 69 6e 67 am')).{.$message..=."\n\nWarning
582a0 3a 20 59 6f 75 20 68 61 76 65 20 78 64 65 62 75 67 2e 73 63 72 65 61 6d 20 65 6e 61 62 6c 65 64 :.You.have.xdebug.scream.enabled
582c0 2c 20 74 68 65 20 77 61 72 6e 69 6e 67 20 61 62 6f 76 65 20 6d 61 79 20 62 65 22 2e 0a 22 5c 6e ,.the.warning.above.may.be".."\n
582e0 61 20 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 75 70 70 72 65 73 73 65 64 20 65 72 72 6f 72 20 a.legitimately.suppressed.error.
58300 74 68 61 74 20 79 6f 75 20 77 65 72 65 20 6e 6f 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 73 65 that.you.were.not.supposed.to.se
58320 65 2e 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f e.";.}..throw.new.\ErrorExceptio
58340 6e 28 24 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 6c 65 76 65 6c 2c 20 24 66 69 6c 65 2c 20 24 6c n($message,.0,.$level,.$file,.$l
58360 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 ine);.}.......public.static.func
58380 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 tion.register().{.set_error_hand
583a0 6c 65 72 28 61 72 72 61 79 28 5f 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 61 6e 64 6c 65 27 29 29 3b ler(array(__CLASS__,.'handle'));
583c0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
583e0 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f Composer\Util;..use.Composer\Jso
58400 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 64 78 4c 69 63 n\JsonFile;........class.SpdxLic
58420 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 64 65 enseIdentifier.{....private.$ide
58440 6e 74 69 66 69 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ntifiers;..public.function.__con
58460 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 49 64 65 6e 74 69 66 69 65 72 struct().{.$this->initIdentifier
58480 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 s();.}........public.function.va
584a0 6c 69 64 61 74 65 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 lidate($license).{.if.(is_array(
584c0 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 6c 69 63 $license)).{.$count.=.count($lic
584e0 65 6e 73 65 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d 20 63 6f 75 6e 74 28 61 72 72 61 ense);.if.($count.!==.count(arra
58500 79 5f 66 69 6c 74 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 73 5f 73 74 72 69 6e 67 27 29 29 y_filter($license,.'is_string'))
58520 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
58540 63 65 70 74 69 6f 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 20 65 78 70 65 63 74 ception('Array.of.strings.expect
58560 65 64 2e 27 29 3b 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 63 6f 75 6e 74 20 3e 20 31 20 3f ed.');.}.$license.=.$count.>.1.?
58580 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 20 6f 72 20 27 2c 20 24 6c 69 63 65 6e 73 65 29 2e 27 .'('.implode('.or.',.$license).'
585a0 29 27 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d )'.:.(string).reset($license);.}
585c0 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 74 68 72 .if.(!is_string($license)).{.thr
585e0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
58600 28 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 74 72 69 6e 67 20 65 78 70 65 63 (sprintf(.'Array.or.String.expec
58620 74 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 20 67 65 74 74 79 70 65 28 24 6c 69 63 65 6e 73 ted,.%s.given.',.gettype($licens
58640 65 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c e).));.}..return.$this->isValidL
58660 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 icenseString($license);.}.....pr
58680 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 49 64 65 6e 74 69 66 69 65 72 73 28 29 ivate.function.initIdentifiers()
586a0 0a 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 5f 5f 44 49 .{.$jsonFile.=.new.JsonFile(__DI
586c0 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 73 70 64 78 2d 69 64 65 6e 74 69 R__...'/../../../res/spdx-identi
586e0 66 69 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 20 fier.json');.$this->identifiers.
58700 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 =.$jsonFile->read();.}.......pri
58720 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 49 64 65 6e vate.function.isValidLicenseIden
58740 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6e 5f tifier($identifier).{.return.in_
58760 61 72 72 61 79 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 69 64 65 6e 74 69 array($identifier,.$this->identi
58780 66 69 65 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f fiers);.}........private.functio
587a0 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 n.isValidLicenseString($license)
587c0 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 70 6f 27 20 3d 3e 20 27 5c 28 27 .{.$tokens.=.array(.'po'.=>.'\('
587e0 2c 0a 27 70 63 27 20 3d 3e 20 27 5c 29 27 2c 0a 27 6f 70 27 20 3d 3e 20 27 28 3f 3a 6f 72 7c 61 ,.'pc'.=>.'\)',.'op'.=>.'(?:or|a
58800 6e 64 29 27 2c 0a 27 6c 69 78 27 20 3d 3e 20 27 28 3f 3a 4e 4f 4e 45 7c 4e 4f 41 53 53 45 52 54 nd)',.'lix'.=>.'(?:NONE|NOASSERT
58820 49 4f 4e 29 27 2c 0a 27 6c 69 72 27 20 3d 3e 20 27 4c 69 63 65 6e 73 65 52 65 66 2d 5c 64 2b 27 ION)',.'lir'.=>.'LicenseRef-\d+'
58840 2c 0a 27 6c 69 63 27 20 3d 3e 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 2d 5a 30 2d 39 5d 7b 33 2c 7d 27 ,.'lic'.=>.'[-+_.a-zA-Z0-9]{3,}'
58860 2c 0a 27 77 73 27 20 3d 3e 20 27 5c 73 2b 27 2c 0a 27 5f 27 20 3d 3e 20 27 2e 27 2c 0a 29 3b 0a ,.'ws'.=>.'\s+',.'_'.=>.'.',.);.
58880 0a 24 6e 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 73 65 20 28 24 6c 69 63 65 6e .$next.=.function.().use.($licen
588a0 73 65 2c 20 24 74 6f 6b 65 6e 73 29 20 7b 0a 73 74 61 74 69 63 20 24 6f 66 66 73 65 74 20 3d 20 se,.$tokens).{.static.$offset.=.
588c0 30 3b 0a 0a 69 66 20 28 24 6f 66 66 73 65 74 20 3e 3d 20 73 74 72 6c 65 6e 28 24 6c 69 63 65 6e 0;..if.($offset.>=.strlen($licen
588e0 73 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 se)).{.return.null;.}..foreach.(
58900 24 74 6f 6b 65 6e 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 $tokens.as.$name.=>.$token).{.if
58920 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 20 .(false.===.$r.=.preg_match('{'.
58940 2e 20 24 74 6f 6b 65 6e 20 2e 20 27 7d 27 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 6d 61 74 63 68 ..$token...'}',.$license,.$match
58960 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 45 2c 20 24 6f 66 66 73 65 74 es,.PREG_OFFSET_CAPTURE,.$offset
58980 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e )).{.throw.new.\RuntimeException
589a0 28 27 50 61 74 74 65 72 6e 20 66 6f 72 20 74 6f 6b 65 6e 20 25 73 20 66 61 69 6c 65 64 20 28 72 ('Pattern.for.token.%s.failed.(r
589c0 65 67 65 78 20 65 72 72 6f 72 29 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 69 66 20 28 24 72 20 egex.error).',.$name);.}.if.($r.
589e0 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6d 61 74 63 68 65 ===.0).{.continue;.}.if.($matche
58a00 73 5b 30 5d 5b 31 5d 20 21 3d 3d 20 24 6f 66 66 73 65 74 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b s[0][1].!==.$offset).{.continue;
58a20 0a 7d 0a 24 6f 66 66 73 65 74 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b 30 5d .}.$offset.+=.strlen($matches[0]
58a40 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 6d 61 74 63 [0]);..return.array($name,.$matc
58a60 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d hes[0][0]);.}..throw.new.\Runtim
58a80 65 45 78 63 65 70 74 69 6f 6e 28 27 41 74 20 6c 65 61 73 74 20 74 68 65 20 6c 61 73 74 20 70 61 eException('At.least.the.last.pa
58aa0 74 74 65 72 6e 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 2c 20 62 75 74 20 69 74 20 64 69 64 ttern.needs.to.match,.but.it.did
58ac0 20 6e 6f 74 20 28 64 6f 74 2d 6d 61 74 63 68 2d 61 6c 6c 20 69 73 20 6d 69 73 73 69 6e 67 3f 29 .not.(dot-match-all.is.missing?)
58ae0 2e 27 29 3b 0a 7d 3b 0a 0a 24 6f 70 65 6e 20 3d 20 30 3b 0a 24 72 65 71 75 69 72 65 20 3d 20 31 .');.};..$open.=.0;.$require.=.1
58b00 3b 0a 24 6c 61 73 74 6f 70 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 6c 69 73 74 28 24 ;.$lastop.=.null;..while.(list($
58b20 74 6f 6b 65 6e 2c 20 24 73 74 72 69 6e 67 29 20 3d 20 24 6e 65 78 74 28 29 29 20 7b 0a 73 77 69 token,.$string).=.$next()).{.swi
58b40 74 63 68 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 63 61 73 65 20 27 70 6f 27 3a 0a 69 66 20 28 24 6f tch.($token).{.case.'po':.if.($o
58b60 70 65 6e 20 7c 7c 20 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 pen.||.!$require).{.return.false
58b80 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 63 27 3a ;.}.$open.=.1;.break;.case.'pc':
58ba0 0a 69 66 20 28 24 6f 70 65 6e 20 21 3d 3d 20 31 20 7c 7c 20 24 72 65 71 75 69 72 65 20 7c 7c 20 .if.($open.!==.1.||.$require.||.
58bc0 21 24 6c 61 73 74 6f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 !$lastop).{.return.false;.}.$ope
58be0 6e 20 3d 20 32 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 70 27 3a 0a 69 66 20 28 24 72 65 n.=.2;.break;.case.'op':.if.($re
58c00 71 75 69 72 65 20 7c 7c 20 21 24 6f 70 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b quire.||.!$open).{.return.false;
58c20 0a 7d 0a 24 6c 61 73 74 6f 70 20 7c 7c 20 24 6c 61 73 74 6f 70 20 3d 20 24 73 74 72 69 6e 67 3b .}.$lastop.||.$lastop.=.$string;
58c40 0a 69 66 20 28 24 6c 61 73 74 6f 70 20 21 3d 3d 20 24 73 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 .if.($lastop.!==.$string).{.retu
58c60 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d 20 31 3b 0a 62 72 65 61 6b 3b rn.false;.}.$require.=.1;.break;
58c80 0a 63 61 73 65 20 27 6c 69 78 27 3a 0a 69 66 20 28 24 6f 70 65 6e 29 20 7b 0a 72 65 74 75 72 6e .case.'lix':.if.($open).{.return
58ca0 20 66 61 6c 73 65 3b 0a 7d 0a 67 6f 74 6f 20 6c 69 72 3b 0a 63 61 73 65 20 27 6c 69 63 27 3a 0a .false;.}.goto.lir;.case.'lic':.
58cc0 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 if.(!$this->isValidLicenseIdenti
58ce0 66 69 65 72 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d fier($string)).{.return.false;.}
58d00 0a 0a 20 63 61 73 65 20 27 6c 69 72 27 3a 0a 6c 69 72 3a 0a 69 66 20 28 21 24 72 65 71 75 69 72 ...case.'lir':.lir:.if.(!$requir
58d20 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d 20 e).{.return.false;.}.$require.=.
58d40 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 77 73 27 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 0;.break;.case.'ws':.break;.case
58d60 20 27 5f 27 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 .'_':.return.false;.default:.thr
58d80 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 ow.new.\RuntimeException(sprintf
58da0 28 27 55 6e 70 61 72 73 65 64 20 74 6f 6b 65 6e 3a 20 25 73 2e 27 2c 20 70 72 69 6e 74 5f 72 28 ('Unparsed.token:.%s.',.print_r(
58dc0 24 74 6f 6b 65 6e 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 28 24 $token,.true)));.}.}..return.!($
58de0 6f 70 65 6e 20 25 20 32 20 7c 7c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 open.%.2.||.$require);.}.}.<?php
58e00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 ............namespace.Composer\U
58e20 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 til;..use.Composer\IO\IOInterfac
58e40 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 e;......class.Svn.{....protected
58e60 20 24 63 72 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 .$credentials;.....protected.$ha
58e80 73 41 75 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 sAuth;.....protected.$io;.....pr
58ea0 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 otected.$url;.....protected.$cac
58ec0 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 heCredentials.=.true;.....protec
58ee0 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ted.$process;.......public.funct
58f00 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 ion.__construct($url,.IOInterfac
58f20 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 e.$io,.ProcessExecutor.$process.
58f40 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 =.null).{.$this->url.=.$url;.$th
58f60 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 is->io.=.$io;.$this->process.=.$
58f80 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a process.?:.new.ProcessExecutor;.
58fa0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e }................public.function
58fc0 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 .execute($command,.$url,.$cwd.=.
58fe0 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 62 6f 73 65 20 3d 20 66 null,.$path.=.null,.$verbose.=.f
59000 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 alse).{.$svnCommand.=.$this->get
59020 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 29 3b 0a Command($command,.$url,.$path);.
59040 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b $output.=.null;.$io.=.$this->io;
59060 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 62 75 .$handler.=.function.($type,.$bu
59080 66 66 65 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c 20 24 69 6f 2c 20 24 76 65 72 62 6f ffer).use.(&$output,.$io,.$verbo
590a0 73 65 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 6f 75 74 27 29 20 7b 0a 72 65 74 se).{.if.($type.!==.'out').{.ret
590c0 75 72 6e 3b 0a 7d 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 62 75 66 66 65 72 3b 0a 69 66 20 28 24 urn;.}.$output..=.$buffer;.if.($
590e0 76 65 72 62 6f 73 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 24 62 75 66 66 65 72 2c 20 66 verbose).{.$io->write($buffer,.f
59100 61 6c 73 65 29 3b 0a 7d 0a 7d 3b 0a 24 73 74 61 74 75 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f alse);.}.};.$status.=.$this->pro
59120 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 73 76 6e 43 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 cess->execute($svnCommand,.$hand
59140 6c 65 72 2c 20 24 63 77 64 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 73 74 61 74 75 73 29 20 7b ler,.$cwd);.if.(0.===.$status).{
59160 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6f .return.$output;.}..if.(empty($o
59180 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 utput)).{.$output.=.$this->proce
591a0 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 ss->getErrorOutput();.}....if.(f
591c0 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 43 6f 75 6c 64 alse.===.stripos($output,.'Could
591e0 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 29 20 .not.authenticate.to.server:')).
59200 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6f {.throw.new.\RuntimeException($o
59220 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 utput);.}....if.(!$this->io->isI
59240 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 nteractive()).{.throw.new.\Runti
59260 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 61 75 meException(.'can.not.ask.for.au
59280 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 thentication.in.non.interactive.
592a0 6d 6f 64 65 20 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 20 0a 0a 0a 20 mode.('.$output.')'.);.}........
592c0 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e if.(!$this->hasAuth()).{.$this->
592e0 64 6f 41 75 74 68 44 61 6e 63 65 28 29 3b 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e doAuthDance();....return.$this->
59300 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 execute($command,.$url,.$cwd,.$p
59320 61 74 68 2c 20 24 76 65 72 62 6f 73 65 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ath,.$verbose);.}..throw.new.\Ru
59340 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 77 72 6f 6e 67 20 63 72 65 64 65 6e 74 69 61 ntimeException(.'wrong.credentia
59360 6c 73 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a ls.provided.('.$output.')'.);.}.
59380 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 75 74 68 44 ......protected.function.doAuthD
593a0 61 6e 63 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 54 68 65 20 53 ance().{.$this->io->write("The.S
593c0 75 62 76 65 72 73 69 6f 6e 20 73 65 72 76 65 72 20 28 7b 24 74 68 69 73 2d 3e 75 72 6c 7d 29 20 ubversion.server.({$this->url}).
593e0 72 65 71 75 65 73 74 65 64 20 63 72 65 64 65 6e 74 69 61 6c 73 3a 22 29 3b 0a 0a 24 74 68 69 73 requested.credentials:");..$this
59400 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 ->hasAuth.=.true;.$this->credent
59420 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 ials['username'].=.$this->io->as
59440 6b 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 29 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 k("Username:.");.$this->credenti
59460 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b als['password'].=.$this->io->ask
59480 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 22 50 61 73 73 77 6f 72 64 3a 20 22 29 3b 0a 0a 24 74 AndHideAnswer("Password:.");..$t
594a0 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 69 his->cacheCredentials.=.$this->i
594c0 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 22 53 68 6f 75 6c 64 20 53 75 62 76 65 o->askConfirmation("Should.Subve
594e0 72 73 69 6f 6e 20 63 61 63 68 65 20 74 68 65 73 65 20 63 72 65 64 65 6e 74 69 61 6c 73 3f 20 28 rsion.cache.these.credentials?.(
59500 79 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b yes/no).",.true);..return.$this;
59520 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .}...........protected.function.
59540 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 6e getCommand($cmd,.$url,.$path.=.n
59560 75 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 25 73 20 25 ull).{.$cmd.=.sprintf('%s.%s%s.%
59580 73 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 27 2c 0a s',.$cmd,.'--non-interactive.',.
595a0 24 74 68 69 73 2d 3e 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 2c 0a 65 73 $this->getCredentialString(),.es
595c0 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 0a 29 3b 0a 0a 69 66 20 28 24 70 61 74 68 capeshellarg($url).);..if.($path
595e0 29 20 7b 0a 24 63 6d 64 20 2e 3d 20 27 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 ).{.$cmd..=.'.'...escapeshellarg
59600 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6d 64 3b 0a 7d 0a 0a 0a 0a 0a 0a ($path);.}..return.$cmd;.}......
59620 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 72 65 64 65 6e 74 ...protected.function.getCredent
59640 69 61 6c 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 ialString().{.if.(!$this->hasAut
59660 68 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 h()).{.return.'';.}..return.spri
59680 6e 74 66 28 0a 27 20 25 73 2d 2d 75 73 65 72 6e 61 6d 65 20 25 73 20 2d 2d 70 61 73 73 77 6f 72 ntf(.'.%s--username.%s.--passwor
596a0 64 20 25 73 20 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 43 61 63 68 65 28 29 2c 0a 65 d.%s.',.$this->getAuthCache(),.e
596c0 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 6e 61 6d 65 scapeshellarg($this->getUsername
596e0 28 29 29 2c 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 67 65 74 50 61 ()),.escapeshellarg($this->getPa
59700 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ssword()).);.}........protected.
59720 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 20 28 24 74 68 function.getPassword().{.if.($th
59740 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f is->credentials.===.null).{.thro
59760 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 w.new.\LogicException("No.svn.au
59780 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 th.detected.");.}..return.isset(
597a0 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 $this->credentials['password']).
597c0 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d ?.$this->credentials['password']
597e0 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .:.'';.}........protected.functi
59800 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 72 on.getUsername().{.if.($this->cr
59820 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 edentials.===.null).{.throw.new.
59840 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 20 64 65 74 \LogicException("No.svn.auth.det
59860 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 65 64 65 ected.");.}..return.$this->crede
59880 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ntials['username'];.}.......prot
598a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 28 29 0a 7b 0a 69 66 20 28 6e ected.function.hasAuth().{.if.(n
598c0 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 29 20 7b 0a 72 65 74 75 72 6e ull.!==.$this->hasAuth).{.return
598e0 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a 0a 24 75 72 69 20 3d 20 70 61 72 73 65 .$this->hasAuth;.}..$uri.=.parse
59900 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 69 _url($this->url);.if.(empty($uri
59920 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 ['user'])).{.return.$this->hasAu
59940 74 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c th.=.false;.}..$this->credential
59960 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 75 72 69 5b 27 75 73 65 72 27 5d 3b 0a 69 66 s['username'].=.$uri['user'];.if
59980 20 28 21 65 6d 70 74 79 28 24 75 72 69 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d .(!empty($uri['pass'])).{.$this-
599a0 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 75 72 69 5b >credentials['password'].=.$uri[
599c0 27 70 61 73 73 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 'pass'];.}..return.$this->hasAut
599e0 68 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 h.=.true;.}.......protected.func
59a00 74 69 6f 6e 20 67 65 74 41 75 74 68 43 61 63 68 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getAuthCache().{.return.$th
59a20 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3f 20 27 27 20 3a 20 27 2d 2d 6e is->cacheCredentials.?.''.:.'--n
59a40 6f 2d 61 75 74 68 2d 63 61 63 68 65 20 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a o-auth-cache.';.}.}.<?php.......
59a60 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f .....namespace.Composer;..use.Co
59a80 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 mposer\Package\RootPackageInterf
59aa0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 ace;.use.Composer\Package\Locker
59ac0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 ;.use.Composer\Repository\Reposi
59ae0 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c toryManager;.use.Composer\Instal
59b00 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d ler\InstallationManager;.use.Com
59b20 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 poser\Downloader\DownloadManager
59b40 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 56 45 ;......class.Composer.{.const.VE
59b60 52 53 49 4f 4e 20 3d 20 27 31 36 38 32 35 33 32 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 RSION.=.'1682532';.....private.$
59b80 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a package;.....private.$locker;...
59ba0 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a ..private.$repositoryManager;...
59bc0 0a 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a ..private.$downloadManager;.....
59be0 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a private.$installationManager;...
59c00 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ..private.$config;......public.f
59c20 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 63 6b 61 67 65 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e unction.setPackage(RootPackageIn
59c40 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 terface.$package).{.$this->packa
59c60 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ge.=.$package;.}.....public.func
59c80 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getPackage().{.return.$this
59ca0 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ->package;.}.....public.function
59cc0 20 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 .setConfig(Config.$config).{.$th
59ce0 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c is->config.=.$config;.}.....publ
59d00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e ic.function.getConfig().{.return
59d20 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$this->config;.}.....public.fun
59d40 63 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 65 72 28 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 29 0a ction.setLocker(Locker.$locker).
59d60 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a {.$this->locker.=.$locker;.}....
59d80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 72 28 29 0a 7b 0a 72 .public.function.getLocker().{.r
59da0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 eturn.$this->locker;.}.....publi
59dc0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 c.function.setRepositoryManager(
59de0 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 RepositoryManager.$manager).{.$t
59e00 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 his->repositoryManager.=.$manage
59e20 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f r;.}.....public.function.getRepo
59e40 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e sitoryManager().{.return.$this->
59e60 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 repositoryManager;.}.....public.
59e80 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e function.setDownloadManager(Down
59ea0 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 loadManager.$manager).{.$this->d
59ec0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a ownloadManager.=.$manager;.}....
59ee0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 .public.function.getDownloadMana
59f00 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 ger().{.return.$this->downloadMa
59f20 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 nager;.}.....public.function.set
59f40 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e InstallationManager(Installation
59f60 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 Manager.$manager).{.$this->insta
59f80 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a llationManager.=.$manager;.}....
59fa0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e .public.function.getInstallation
59fc0 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c Manager().{.return.$this->instal
59fe0 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a lationManager;.}.}.<?php........
5a000 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a ....namespace.Composer\Json;....
5a020 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 .class.JsonManipulator.{.private
5a040 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 20 3d 20 27 28 3f 3a 5b 5e .static.$RECURSE_BLOCKS.=.'(?:[^
5a060 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 {}]*|\{(?:[^{}]*|\{(?:[^{}]*|\{(
5a080 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 5b 5e 7b 7d 5d 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 ?:[^{}]*|\{[^{}]*\})*\})*\})*\})
5a0a0 2a 27 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 *';..private.$contents;.private.
5a0c0 24 6e 65 77 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 64 65 6e 74 3b 0a 0a 70 75 62 6c $newline;.private.$indent;..publ
5a0e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 ic.function.__construct($content
5a100 73 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 74 72 69 6d 28 24 63 6f 6e 74 65 6e 74 73 29 s).{.$contents.=.trim($contents)
5a120 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 7b 28 2e 2a 29 5c 7d 24 23 73 ;.if.(!preg_match('#^\{(.*)\}$#s
5a140 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 ',.$contents)).{.throw.new.\Inva
5a160 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 6a 73 6f 6e 20 66 lidArgumentException('The.json.f
5a180 69 6c 65 20 6d 75 73 74 20 62 65 20 61 6e 20 6f 62 6a 65 63 74 20 28 7b 7d 29 27 29 3b 0a 7d 0a ile.must.be.an.object.({})');.}.
5a1a0 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f $this->newline.=.false.!==.strpo
5a1c0 73 28 22 5c 72 5c 6e 22 2c 20 24 63 6f 6e 74 65 6e 74 73 29 20 3f 20 22 5c 72 5c 6e 22 3a 20 22 s("\r\n",.$contents).?."\r\n":."
5a1e0 5c 6e 22 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 \n";.$this->contents.=.$contents
5a200 3b 0a 24 74 68 69 73 2d 3e 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b 0a 7d 0a 0a 70 ;.$this->detectIndenting();.}..p
5a220 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 72 ublic.function.getContents().{.r
5a240 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 69 73 2d 3e 6e eturn.$this->contents...$this->n
5a260 65 77 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 ewline;.}..public.function.addLi
5a280 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 nk($type,.$package,.$constraint)
5a2a0 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 74 79 70 65 2e .{...if.(!preg_match('#"'.$type.
5a2c0 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a '":\s*\{#',.$this->contents)).{.
5a2e0 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e $this->addMainKey($type,.$this->
5a300 66 6f 72 6d 61 74 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 format(array($package.=>.$constr
5a320 61 69 6e 74 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 aint)));..return.true;.}..$links
5a340 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 74 79 70 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 5b 5e Regex.=.'#("'.$type.'":\s*\{)([^
5a360 7d 5d 2b 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6c 69 }]+)(\})#s';.if.(!preg_match($li
5a380 6e 6b 73 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 nksRegex,.$this->contents,.$matc
5a3a0 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 20 3d 20 h)).{.return.false;.}..$links.=.
5a3c0 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 70 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 5f 72 $match[2];.$packageRegex.=.str_r
5a3e0 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 eplace('/',.'\\\\?/',.preg_quote
5a400 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ($package));....if.(preg_match('
5a420 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 6c 69 {"'.$packageRegex.'"\s*:}i',.$li
5a440 6e 6b 73 29 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b nks)).{.$links.=.preg_replace('{
5a460 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 28 5c 73 2a 3a 5c 73 2a 29 22 5b 5e 22 "'.$packageRegex.'"(\s*:\s*)"[^"
5a480 5d 2b 22 7d 69 27 2c 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 ]+"}i',.JsonFile::encode($packag
5a4a0 65 29 2e 27 24 7b 31 7d 22 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 2c 20 24 6c 69 6e e).'${1}"'.$constraint.'"',.$lin
5a4c0 6b 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 5c 73 ks);.}.elseif.(preg_match('#[^\s
5a4e0 5d 28 5c 73 2a 29 24 23 27 2c 20 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 ](\s*)$#',.$links,.$match)).{...
5a500 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 $links.=.preg_replace(.'#'.$matc
5a520 68 5b 31 5d 2e 27 24 23 27 2c 0a 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 h[1].'$#',.','...$this->newline.
5a540 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 ..$this->indent...$this->indent.
5a560 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 ..JsonFile::encode($package).':.
5a580 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 '.JsonFile::encode($constraint).
5a5a0 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ..$match[1],.$links.);.}.else.{.
5a5c0 0a 20 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 ..$links.=.$this->newline...$thi
5a5e0 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e s->indent...$this->indent...Json
5a600 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e File::encode($package).':.'.Json
5a620 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6c 69 6e File::encode($constraint)...$lin
5a640 6b 73 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 ks;.}..$this->contents.=.preg_re
5a660 70 6c 61 63 65 28 24 6c 69 6e 6b 73 52 65 67 65 78 2c 20 27 24 7b 31 7d 27 2e 24 6c 69 6e 6b 73 place($linksRegex,.'${1}'.$links
5a680 2e 27 24 33 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e .'$3',.$this->contents);..return
5a6a0 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 .true;.}..public.function.addRep
5a6c0 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e ository($name,.$config).{.return
5a6e0 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 .$this->addSubNode('repositories
5a700 27 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ',.$name,.$config);.}..public.fu
5a720 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b nction.removeRepository($name).{
5a740 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 72 65 .return.$this->removeSubNode('re
5a760 70 6f 73 69 74 6f 72 69 65 73 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 positories',.$name);.}..public.f
5a780 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 unction.addConfigSetting($name,.
5a7a0 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f $value).{.return.$this->addSubNo
5a7c0 64 65 28 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a de('config',.$name,.$value);.}..
5a7e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 public.function.removeConfigSett
5a800 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 ing($name).{.return.$this->remov
5a820 65 53 75 62 4e 6f 64 65 28 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 eSubNode('config',.$name);.}..pu
5a840 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f blic.function.addSubNode($mainNo
5a860 64 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 de,.$name,.$value).{...if.(!preg
5a880 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 _match('#"'.$mainNode.'":\s*\{#'
5a8a0 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 ,.$this->contents)).{.$this->add
5a8c0 4d 61 69 6e 4b 65 79 28 27 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 27 2c 20 24 74 68 69 73 2d 3e MainKey(''.$mainNode.'',.$this->
5a8e0 66 6f 72 6d 61 74 28 61 72 72 61 79 28 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 29 29 3b format(array($name.=>.$value)));
5a900 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d ..return.true;.}....$nodeRegex.=
5a920 20 27 23 28 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c .'#("'.$mainNode.'":\s*\{)('.sel
5a940 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 23 73 27 3b 0a 69 66 f::$RECURSE_BLOCKS.')(\})#s';.if
5a960 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d .(!preg_match($nodeRegex,.$this-
5a980 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c >contents,.$match)).{.return.fal
5a9a0 73 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a se;.}..$children.=.$match[2];...
5a9c0 20 69 66 20 28 21 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e .if.(!json_decode('{'.$children.
5a9e0 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 '}')).{.return.false;.}....if.(p
5aa00 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 reg_match('{("'.preg_quote($name
5aa20 29 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 ).'"\s*:\s*)([0-9.]+|null|true|f
5aa40 61 6c 73 65 7c 22 5b 5e 22 5d 2b 22 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f alse|"[^"]+"|\{'.self::$RECURSE_
5aa60 42 4c 4f 43 4b 53 2e 27 5c 7d 29 28 2c 3f 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d BLOCKS.'\})(,?)}',.$children,.$m
5aa80 61 74 63 68 65 73 29 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c atches)).{.$children.=.preg_repl
5aaa0 61 63 65 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 ace('{("'.preg_quote($name).'"\s
5aac0 2a 3a 5c 73 2a 29 28 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 22 *:\s*)([0-9.]+|null|true|false|"
5aae0 5b 5e 22 5d 2b 22 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 [^"]+"|\{'.self::$RECURSE_BLOCKS
5ab00 2e 27 5c 7d 29 28 2c 3f 29 7d 27 2c 20 27 24 7b 31 7d 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 .'\})(,?)}',.'${1}'.$this->forma
5ab20 74 28 24 76 61 6c 75 65 2c 20 31 29 2e 27 24 33 27 2c 20 24 63 68 69 6c 64 72 65 6e 29 3b 0a 7d t($value,.1).'$3',.$children);.}
5ab40 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 5c 73 5d 28 5c 73 2a 29 .elseif.(preg_match('#[^\s](\s*)
5ab60 24 23 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 63 68 $#',.$children,.$match)).{...$ch
5ab80 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 ildren.=.preg_replace(.'#'.$matc
5aba0 68 5b 31 5d 2e 27 24 23 27 2c 0a 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 h[1].'$#',.','...$this->newline.
5abc0 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 ..$this->indent...$this->indent.
5abe0 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 ..JsonFile::encode($name).':.'.$
5ac00 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e 20 24 6d 61 74 63 68 this->format($value,.1)...$match
5ac20 5b 31 5d 2c 0a 24 63 68 69 6c 64 72 65 6e 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 68 [1],.$children.);.}.else.{...$ch
5ac40 69 6c 64 72 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d ildren.=.$this->newline...$this-
5ac60 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 >indent...$this->indent...JsonFi
5ac80 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f le::encode($name).':.'.$this->fo
5aca0 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a rmat($value,.1)...$children;.}..
5acc0 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 $this->contents.=.preg_replace($
5ace0 6e 6f 64 65 52 65 67 65 78 2c 20 27 24 7b 31 7d 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 24 33 27 nodeRegex,.'${1}'.$children.'$3'
5ad00 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 ,.$this->contents);..return.true
5ad20 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 53 75 62 4e 6f ;.}..public.function.removeSubNo
5ad40 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 de($mainNode,.$name).{...if.(!pr
5ad60 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b eg_match('#"'.$mainNode.'":\s*\{
5ad80 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 #',.$this->contents)).{.return.t
5ada0 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 6d rue;.}....if.(preg_match('#"'.$m
5adc0 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 5c 73 2a 5c 7d 23 73 27 2c 20 24 74 68 69 73 2d ainNode.'":\s*\{\s*\}#s',.$this-
5ade0 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 >contents)).{.return.true;.}....
5ae00 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a $nodeRegex.=.'#("'.$mainNode.'":
5ae20 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 \s*\{)('.self::$RECURSE_BLOCKS.'
5ae40 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6e 6f 64 65 52 )(\})#s';.if.(!preg_match($nodeR
5ae60 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 egex,.$this->contents,.$match)).
5ae80 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 {.return.false;.}..$children.=.$
5aea0 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a 20 69 66 20 28 21 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b match[2];....if.(!json_decode('{
5aec0 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 '.$children.'}')).{.return.false
5aee0 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 ;.}..if.(preg_match('{"'.preg_qu
5af00 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 24 63 68 69 6c 64 72 65 6e 29 ote($name).'"\s*:}i',.$children)
5af20 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 22 27 2e 70 72 65 67 ).{.if.(preg_match_all('{"'.preg
5af40 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 28 3f 3a 5b 30 2d 39 2e 5d _quote($name).'"\s*:\s*(?:[0-9.]
5af60 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 22 5b 5e 22 5d 2b 22 7c 5c 7b 27 2e 73 65 +|null|true|false|"[^"]+"|\{'.se
5af80 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 7d 27 2c 20 24 63 68 69 lf::$RECURSE_BLOCKS.'\})}',.$chi
5afa0 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d ldren,.$matches)).{.$bestMatch.=
5afc0 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 20 24 6d 61 .'';.foreach.($matches[0].as.$ma
5afe0 74 63 68 29 20 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 62 65 73 74 4d 61 74 63 68 29 20 3c 20 tch).{.if.(strlen($bestMatch).<.
5b000 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 24 strlen($match)).{.$bestMatch.=.$
5b020 6d 61 74 63 68 3b 0a 7d 0a 7d 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c match;.}.}.$children.=.preg_repl
5b040 61 63 65 28 27 7b 2c 5c 73 2a 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 ace('{,\s*'.preg_quote($bestMatc
5b060 68 29 2e 27 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 2d 31 2c 20 24 63 6f 75 h).'}i',.'',.$children,.-1,.$cou
5b080 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 24 63 68 69 6c 64 72 nt);.if.(1.!==.$count).{.$childr
5b0a0 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 en.=.preg_replace('{'.preg_quote
5b0c0 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 5c 73 2a 2c 3f 5c 73 2a 7d 69 27 2c 20 27 27 2c 20 24 ($bestMatch).'\s*,?\s*}i',.'',.$
5b0e0 63 68 69 6c 64 72 65 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d children,.-1,.$count);.if.(1.!==
5b100 20 24 63 6f 75 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 7d .$count).{.return.false;.}.}.}.}
5b120 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 68 69 6c 64 72 65 6e 29 29 20 7b 0a 24 74 68 69 73 2d ..if.(!trim($children)).{.$this-
5b140 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 >contents.=.preg_replace($nodeRe
5b160 67 65 78 2c 20 27 24 31 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2e 24 74 68 69 73 2d 3e gex,.'$1'.$this->newline.$this->
5b180 69 6e 64 65 6e 74 2e 27 7d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 indent.'}',.$this->contents);..r
5b1a0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d eturn.true;.}..$this->contents.=
5b1c0 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 27 24 7b 31 7d 27 .preg_replace($nodeRegex,.'${1}'
5b1e0 2e 24 63 68 69 6c 64 72 65 6e 2e 27 24 33 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 .$children.'$3',.$this->contents
5b200 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 );..return.true;.}..public.funct
5b220 69 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b 65 79 2c 20 24 63 6f 6e 74 65 6e 74 29 0a 7b ion.addMainKey($key,.$content).{
5b240 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 2a 29 5c 7d 24 .if.(preg_match('#[^{\s](\s*)\}$
5b260 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a #',.$this->contents,.$match)).{.
5b280 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a $this->contents.=.preg_replace(.
5b2a0 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 27 2c 27 20 2e 20 24 74 68 69 '#'.$match[1].'\}$#',.','...$thi
5b2c0 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f s->newline...$this->indent...Jso
5b2e0 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 20 24 63 6f 6e 74 nFile::encode($key)..':.'..$cont
5b300 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 0a 24 74 68 69 ent...$this->newline...'}',.$thi
5b320 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 s->contents.);.}.else.{.$this->c
5b340 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 27 2c ontents.=.preg_replace(.'#\}$#',
5b360 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 .$this->indent...JsonFile::encod
5b380 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e e($key)..':.'.$content...$this->
5b3a0 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 newline...'}',.$this->contents.)
5b3c0 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 ;.}.}..protected.function.format
5b3e0 28 24 64 61 74 61 2c 20 24 64 65 70 74 68 20 3d 20 30 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 ($data,.$depth.=.0).{.if.(is_arr
5b400 61 79 28 24 64 61 74 61 29 29 20 7b 0a 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 ay($data)).{.reset($data);..if.(
5b420 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 72 65 74 75 72 6e is_numeric(key($data))).{.return
5b440 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 64 61 74 61 29 2e 27 5d 27 3b 0a 7d .'['.implode(',.',.$data).']';.}
5b460 0a 0a 24 6f 75 74 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 66 ..$out.=.'{'...$this->newline;.f
5b480 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b oreach.($data.as.$key.=>.$val).{
5b4a0 0a 24 65 6c 65 6d 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e .$elems[].=.str_repeat($this->in
5b4c0 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 32 29 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e dent,.$depth.+.2)...JsonFile::en
5b4e0 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 code($key)..':.'.$this->format($
5b500 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 val,.$depth.+.1);.}..return.$out
5b520 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2c 20 24 ...implode(','.$this->newline,.$
5b540 65 6c 65 6d 73 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 73 74 72 5f 72 65 elems)...$this->newline...str_re
5b560 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 31 29 20 peat($this->indent,.$depth.+.1).
5b580 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 ..'}';.}..return.JsonFile::encod
5b5a0 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 e($data);.}..protected.function.
5b5c0 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 detectIndenting().{.if.(preg_mat
5b5e0 63 68 28 27 7b 5e 28 5c 73 2b 29 22 7d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c ch('{^(\s+)"}',.$this->contents,
5b600 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 24 6d 61 74 .$match)).{.$this->indent.=.$mat
5b620 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 ch[1];.}.else.{.$this->indent.=.
5b640 27 20 20 20 20 27 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e '....';.}.}.}.<?php............n
5b660 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d amespace.Composer\Json;..use.Com
5b680 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 poser\Composer;.use.JsonSchema\V
5b6a0 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e alidator;.use.Seld\JsonLint\Json
5b6c0 50 61 72 73 65 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e Parser;.use.Seld\JsonLint\Parsin
5b6e0 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 gException;.use.Composer\Util\Re
5b700 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 moteFilesystem;.use.Composer\Dow
5b720 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a nloader\TransportException;.....
5b740 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 69 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 ...class.JsonFile.{.const.LAX_SC
5b760 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 HEMA.=.1;.const.STRICT_SCHEMA.=.
5b780 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 2;..const.JSON_UNESCAPED_SLASHES
5b7a0 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d .=.64;.const.JSON_PRETTY_PRINT.=
5b7c0 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f .128;.const.JSON_UNESCAPED_UNICO
5b7e0 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 DE.=.256;..private.$path;.privat
5b800 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f e.$rfs;........public.function._
5b820 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 _construct($path,.RemoteFilesyst
5b840 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 em.$rfs.=.null).{.$this->path.=.
5b860 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 $path;..if.(null.===.$rfs.&&.pre
5b880 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 g_match('{^https?://}i',.$path))
5b8a0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
5b8c0 65 70 74 69 6f 6e 28 27 68 74 74 70 20 75 72 6c 73 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f eption('http.urls.require.a.Remo
5b8e0 74 65 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 73 74 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 teFilesystem.instance.to.be.pass
5b900 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a ed');.}.$this->rfs.=.$rfs;.}....
5b920 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 .public.function.getPath().{.ret
5b940 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urn.$this->path;.}.......public.
5b960 66 75 6e 63 74 69 6f 6e 20 65 78 69 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 function.exists().{.return.is_fi
5b980 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 le($this->path);.}.......public.
5b9a0 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 function.read().{.try.{.if.($thi
5b9c0 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 s->rfs).{.$json.=.$this->rfs->ge
5b9e0 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 tContents($this->path,.$this->pa
5ba00 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c th,.false);.}.else.{.$json.=.fil
5ba20 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d e_get_contents($this->path);.}.}
5ba40 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b .catch.(TransportException.$e).{
5ba60 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 2d .throw.new.\RuntimeException($e-
5ba80 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 >getMessage(),.0,.$e);.}.catch.(
5baa0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 \Exception.$e).{.throw.new.\Runt
5bac0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 imeException('Could.not.read.'.$
5bae0 74 68 69 73 2d 3e 70 61 74 68 2e 22 5c 6e 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 this->path."\n\n".$e->getMessage
5bb00 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 70 61 72 73 65 4a 73 6f 6e ());.}..return.static::parseJson
5bb20 28 24 6a 73 6f 6e 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ($json,.$this->path);.}........p
5bb40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 61 72 72 61 79 20 24 68 61 73 68 ublic.function.write(array.$hash
5bb60 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 ,.$options.=.448).{.$dir.=.dirna
5bb80 6d 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 me($this->path);.if.(!is_dir($di
5bba0 72 29 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 29 29 20 7b 0a 74 r)).{.if.(file_exists($dir)).{.t
5bbc0 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 hrow.new.\UnexpectedValueExcepti
5bbe0 6f 6e 28 0a 24 64 69 72 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 on(.$dir.'.exists.and.is.not.a.d
5bc00 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 6d 6b 64 69 72 28 24 64 69 72 2c irectory.'.);.}.if.(!mkdir($dir,
5bc20 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 .0777,.true)).{.throw.new.\Unexp
5bc40 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 ectedValueException(.$dir.'.does
5bc60 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 .not.exist.and.could.not.be.crea
5bc80 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 ted.'.);.}.}.file_put_contents($
5bca0 74 68 69 73 2d 3e 70 61 74 68 2c 20 73 74 61 74 69 63 3a 3a 65 6e 63 6f 64 65 28 24 68 61 73 68 this->path,.static::encode($hash
5bcc0 2c 20 24 6f 70 74 69 6f 6e 73 29 2e 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a ,.$options)..($options.&.self::J
5bce0 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3f 20 22 5c 6e 22 20 3a 20 27 27 29 29 3b 0a SON_PRETTY_PRINT.?."\n".:.''));.
5bd00 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 }.........public.function.valida
5bd20 74 65 53 63 68 65 6d 61 28 24 73 63 68 65 6d 61 20 3d 20 73 65 6c 66 3a 3a 53 54 52 49 43 54 5f teSchema($schema.=.self::STRICT_
5bd40 53 43 48 45 4d 41 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f SCHEMA).{.$content.=.file_get_co
5bd60 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f ntents($this->path);.$data.=.jso
5bd80 6e 5f 64 65 63 6f 64 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d n_decode($content);..if.(null.==
5bda0 3d 20 24 64 61 74 61 20 26 26 20 27 6e 75 6c 6c 27 20 21 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 =.$data.&&.'null'.!==.$content).
5bdc0 7b 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 63 6f 6e 74 65 6e 74 2c {.self::validateSyntax($content,
5bde0 20 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 24 73 63 68 65 6d 61 46 69 6c 65 20 3d 20 .$this->path);.}..$schemaFile.=.
5be00 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 63 6f 6d 70 6f 73 65 __DIR__...'/../../../res/compose
5be20 72 2d 73 63 68 65 6d 61 2e 6a 73 6f 6e 27 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 20 3d 20 6a 73 r-schema.json';.$schemaData.=.js
5be40 6f 6e 5f 64 65 63 6f 64 65 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 73 63 68 on_decode(file_get_contents($sch
5be60 65 6d 61 46 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 73 63 68 65 6d 61 20 3d 3d 3d 20 73 65 6c 66 emaFile));..if.($schema.===.self
5be80 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 20 7b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 61 64 64 ::LAX_SCHEMA).{.$schemaData->add
5bea0 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3d 20 74 72 75 65 3b 0a 24 73 63 68 65 6d itionalProperties.=.true;.$schem
5bec0 61 44 61 74 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 2d 3e 6e 61 6d 65 2d 3e 72 65 71 75 69 72 65 aData->properties->name->require
5bee0 64 20 3d 20 66 61 6c 73 65 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 70 72 6f 70 65 72 74 69 d.=.false;.$schemaData->properti
5bf00 65 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 72 65 71 75 69 72 65 64 20 3d 20 66 61 6c 73 es->description->required.=.fals
5bf20 65 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 6f 72 e;.}..$validator.=.new.Validator
5bf40 28 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 64 61 74 61 2c 20 24 73 63 ();.$validator->check($data,.$sc
5bf60 68 65 6d 61 44 61 74 61 29 3b 0a 0a 0a 0a 69 66 20 28 21 24 76 61 6c 69 64 61 74 6f 72 2d 3e 69 hemaData);....if.(!$validator->i
5bf80 73 56 61 6c 69 64 28 29 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 sValid()).{.$errors.=.array();.f
5bfa0 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 oreach.((array).$validator->getE
5bfc0 72 72 6f 72 73 28 29 20 61 73 20 24 65 72 72 6f 72 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d rrors().as.$error).{.$errors[].=
5bfe0 20 28 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 72 74 79 27 5d 20 3f 20 24 65 72 72 6f 72 5b 27 70 .($error['property'].?.$error['p
5c000 72 6f 70 65 72 74 79 27 5d 2e 27 20 3a 20 27 20 3a 20 27 27 29 2e 24 65 72 72 6f 72 5b 27 6d 65 roperty'].'.:.'.:.'').$error['me
5c020 73 73 61 67 65 27 5d 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 ssage'];.}.throw.new.JsonValidat
5c040 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 27 22 20 ionException('"'.$this->path.'".
5c060 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 65 78 70 65 63 74 65 64 20 4a 53 4f 4e does.not.match.the.expected.JSON
5c080 20 73 63 68 65 6d 61 27 2c 20 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 .schema',.$errors);.}..return.tr
5c0a0 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 ue;.}..............public.static
5c0c0 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 .function.encode($data,.$options
5c0e0 20 3d 20 34 34 38 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 .=.448).{.if.(version_compare(PH
5c100 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 72 65 74 75 72 P_VERSION,.'5.4',.'>=')).{.retur
5c120 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a n.json_encode($data,.$options);.
5c140 7d 0a 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 0a }..$json.=.json_encode($data);..
5c160 24 70 72 65 74 74 79 50 72 69 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 $prettyPrint.=.(bool).($options.
5c180 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 29 3b 0a 24 75 6e 65 &.self::JSON_PRETTY_PRINT);.$une
5c1a0 73 63 61 70 65 55 6e 69 63 6f 64 65 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 scapeUnicode.=.(bool).($options.
5c1c0 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b &.self::JSON_UNESCAPED_UNICODE);
5c1e0 0a 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 .$unescapeSlashes.=.(bool).($opt
5c200 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 ions.&.self::JSON_UNESCAPED_SLAS
5c220 48 45 53 29 3b 0a 0a 69 66 20 28 21 24 70 72 65 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e HES);..if.(!$prettyPrint.&&.!$un
5c240 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 escapeUnicode.&&.!$unescapeSlash
5c260 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d es).{.return.$json;.}..$result.=
5c280 20 27 27 3b 0a 24 70 6f 73 20 3d 20 30 3b 0a 24 73 74 72 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 .'';.$pos.=.0;.$strLen.=.strlen(
5c2a0 24 6a 73 6f 6e 29 3b 0a 24 69 6e 64 65 6e 74 53 74 72 20 3d 20 27 20 20 20 20 27 3b 0a 24 6e 65 $json);.$indentStr.=.'....';.$ne
5c2c0 77 4c 69 6e 65 20 3d 20 22 5c 6e 22 3b 0a 24 6f 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 74 72 75 wLine.=."\n";.$outOfQuotes.=.tru
5c2e0 65 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 74 72 75 e;.$buffer.=.'';.$noescape.=.tru
5c300 65 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 3d 20 24 73 74 72 4c 65 6e 3b 20 e;..for.($i.=.0;.$i.<=.$strLen;.
5c320 24 69 2b 2b 29 20 7b 0a 0a 20 24 63 68 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 $i++).{...$char.=.substr($json,.
5c340 24 69 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 27 22 27 20 3d 3d 3d 20 24 63 68 61 72 20 26 26 20 $i,.1);....if.('"'.===.$char.&&.
5c360 24 6e 6f 65 73 63 61 70 65 29 20 7b 0a 24 6f 75 74 4f 66 51 75 6f 74 65 73 20 3d 20 21 24 6f 75 $noescape).{.$outOfQuotes.=.!$ou
5c380 74 4f 66 51 75 6f 74 65 73 3b 0a 7d 0a 0a 69 66 20 28 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 29 tOfQuotes;.}..if.(!$outOfQuotes)
5c3a0 20 7b 0a 24 62 75 66 66 65 72 20 2e 3d 20 24 63 68 61 72 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d .{.$buffer..=.$char;.$noescape.=
5c3c0 20 27 5c 5c 27 20 3d 3d 3d 20 24 63 68 61 72 20 3f 20 21 24 6e 6f 65 73 63 61 70 65 20 3a 20 74 .'\\'.===.$char.?.!$noescape.:.t
5c3e0 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 27 20 21 3d 3d 20 rue;.continue;.}.elseif.(''.!==.
5c400 24 62 75 66 66 65 72 29 20 7b 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 $buffer).{.if.($unescapeSlashes)
5c420 20 7b 0a 24 62 75 66 66 65 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2f 27 2c 20 .{.$buffer.=.str_replace('\\/',.
5c440 27 2f 27 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 75 6e 65 73 63 61 70 65 55 '/',.$buffer);.}..if.($unescapeU
5c460 6e 69 63 6f 64 65 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 63 6f nicode.&&.function_exists('mb_co
5c480 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 27 29 29 20 7b 0a 0a 20 24 62 75 66 66 65 72 20 3d 20 nvert_encoding')).{...$buffer.=.
5c4a0 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 2f 5c 5c 5c 5c 75 28 5b 30 preg_replace_callback('/\\\\u([0
5c4c0 2d 39 61 2d 66 5d 7b 34 7d 29 2f 69 27 2c 20 66 75 6e 63 74 69 6f 6e 28 24 6d 61 74 63 68 29 20 -9a-f]{4})/i',.function($match).
5c4e0 7b 0a 72 65 74 75 72 6e 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 70 61 63 {.return.mb_convert_encoding(pac
5c500 6b 28 27 48 2a 27 2c 20 24 6d 61 74 63 68 5b 31 5d 29 2c 20 27 55 54 46 2d 38 27 2c 20 27 55 43 k('H*',.$match[1]),.'UTF-8',.'UC
5c520 53 2d 32 42 45 27 29 3b 0a 7d 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 S-2BE');.},.$buffer);.}..$result
5c540 20 2e 3d 20 24 62 75 66 66 65 72 2e 24 63 68 61 72 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b ..=.$buffer.$char;.$buffer.=.'';
5c560 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 3a 27 20 3d 3d 3d 20 24 63 68 61 72 29 .continue;.}..if.(':'.===.$char)
5c580 20 7b 0a 0a 20 24 63 68 61 72 20 2e 3d 20 27 20 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 27 7d .{...$char..=.'.';.}.elseif.(('}
5c5a0 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5d 27 20 3d 3d 3d 20 24 63 68 61 72 29 29 20 7b '.===.$char.||.']'.===.$char)).{
5c5c0 0a 24 70 6f 73 2d 2d 3b 0a 24 70 72 65 76 43 68 61 72 20 3d 20 73 75 62 73 74 72 28 24 6a 73 6f .$pos--;.$prevChar.=.substr($jso
5c5e0 6e 2c 20 24 69 20 2d 20 31 2c 20 31 29 3b 0a 0a 69 66 20 28 27 7b 27 20 21 3d 3d 20 24 70 72 65 n,.$i.-.1,.1);..if.('{'.!==.$pre
5c600 76 43 68 61 72 20 26 26 20 27 5b 27 20 21 3d 3d 20 24 70 72 65 76 43 68 61 72 29 20 7b 0a 0a 20 vChar.&&.'['.!==.$prevChar).{...
5c620 0a 20 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 66 6f 72 20 28 24 6a 20 3d ..$result..=.$newLine;.for.($j.=
5c640 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e .0;.$j.<.$pos;.$j++).{.$result..
5c660 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 =.$indentStr;.}.}.else.{...$resu
5c680 6c 74 20 3d 20 72 74 72 69 6d 28 24 72 65 73 75 6c 74 29 2e 22 5c 6e 5c 6e 22 2e 24 69 6e 64 65 lt.=.rtrim($result)."\n\n".$inde
5c6a0 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a 0a ntStr;.}.}..$result..=.$char;...
5c6c0 20 0a 20 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d 20 ...if.(','.===.$char.||.'{'.===.
5c6e0 24 63 68 61 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 6c $char.||.'['.===.$char).{.$resul
5c700 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 3b 0a 0a 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 61 t..=.$newLine;..if.('{'.===.$cha
5c720 72 20 7c 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d 0a r.||.'['.===.$char).{.$pos++;.}.
5c740 0a 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b .for.($j.=.0;.$j.<.$pos;.$j++).{
5c760 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 .$result..=.$indentStr;.}.}.}..r
5c780 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 eturn.$result;.}..........public
5c7a0 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e .static.function.parseJson($json
5c7c0 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 ,.$file.=.null).{.$data.=.json_d
5c7e0 65 63 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d ecode($json,.true);.if.(null.===
5c800 20 24 64 61 74 61 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e 45 20 21 3d 3d 20 6a 73 .$data.&&.JSON_ERROR_NONE.!==.js
5c820 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 73 65 6c 66 3a 3a 76 61 6c 69 64 61 74 on_last_error()).{.self::validat
5c840 65 53 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e eSyntax($json,.$file);.}..return
5c860 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 .$data;.}...........protected.st
5c880 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 6a 73 atic.function.validateSyntax($js
5c8a0 6f 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 on,.$file.=.null).{.$parser.=.ne
5c8c0 77 20 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 70 61 72 73 65 w.JsonParser();.$result.=.$parse
5c8e0 72 2d 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 r->lint($json);.if.(null.===.$re
5c900 73 75 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f 45 52 52 4f 52 5f sult).{.if.(defined('JSON_ERROR_
5c920 55 54 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 20 3d 3d 3d 20 6a 73 UTF8').&&.JSON_ERROR_UTF8.===.js
5c940 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e on_last_error()).{.throw.new.\Un
5c960 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 66 69 6c 65 expectedValueException('"'.$file
5c980 2e 27 22 20 69 73 20 6e 6f 74 20 55 54 46 2d 38 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 .'".is.not.UTF-8,.could.not.pars
5c9a0 65 20 61 73 20 4a 53 4f 4e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a e.as.JSON');.}..return.true;.}..
5c9c0 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 throw.new.ParsingException('"'.$
5c9e0 66 69 6c 65 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 76 61 6c 69 64 20 4a file.'".does.not.contain.valid.J
5ca00 53 4f 4e 27 2e 22 5c 6e 22 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c SON'."\n".$result->getMessage(),
5ca20 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 44 65 74 61 69 6c 73 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 .$result->getDetails());.}.}.<?p
5ca40 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
5ca60 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 \Json;..use.Exception;.....class
5ca80 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 .JsonValidationException.extends
5caa0 20 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 3b 0a .Exception.{.protected.$errors;.
5cac0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 .public.function.__construct($me
5cae0 73 73 61 67 65 2c 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 ssage,.$errors.=.array()).{.$thi
5cb00 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 s->errors.=.$errors;.parent::__c
5cb20 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 onstruct($message);.}..public.fu
5cb40 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 nction.getErrors().{.return.$thi
5cb60 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->errors;.}.}.<?php............
5cb80 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 namespace.Composer;..use.Compose
5cba0 72 5c 43 6f 6e 66 69 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 3b 0a r\Config\ConfigSourceInterface;.
5cbc0 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 ....class.Config.{.public.static
5cbe0 20 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 .$defaultConfig.=.array(.'proces
5cc00 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 30 30 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 s-timeout'.=>.300,.'vendor-dir'.
5cc20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 27 7b 24 76 65 6e =>.'vendor',.'bin-dir'.=>.'{$ven
5cc40 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c dor-dir}/bin',.'notify-on-instal
5cc60 6c 27 20 3d 3e 20 74 72 75 65 2c 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 20 3d l'.=>.true,.'github-protocols'.=
5cc80 3e 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 2c 20 27 68 74 74 70 27 29 2c >.array('git',.'https',.'http'),
5cca0 0a 29 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 .);..public.static.$defaultRepos
5ccc0 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 69 73 74 27 20 3d 3e 20 itories.=.array(.'packagist'.=>.
5cce0 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 63 6f 6d 70 6f 73 65 72 27 2c 0a 27 75 72 array(.'type'.=>.'composer',.'ur
5cd00 6c 27 20 3d 3e 20 27 68 74 74 70 73 3f 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 0a l'.=>.'https?://packagist.org',.
5cd20 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 ).);..private.$config;.private.$
5cd40 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 53 6f 75 repositories;.private.$configSou
5cd60 72 63 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 rce;..public.function.__construc
5cd80 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a t().{...$this->config.=.static::
5cda0 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 $defaultConfig;.$this->repositor
5cdc0 69 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 ies.=.static::$defaultRepositori
5cde0 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 es;.}..public.function.setConfig
5ce00 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f Source(ConfigSourceInterface.$so
5ce20 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 24 73 urce).{.$this->configSource.=.$s
5ce40 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e ource;.}..public.function.getCon
5ce60 66 69 67 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 figSource().{.return.$this->conf
5ce80 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f igSource;.}.......public.functio
5cea0 6e 20 6d 65 72 67 65 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 21 n.merge(array.$config).{...if.(!
5cec0 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 20 26 26 20 69 73 5f 61 empty($config['config']).&&.is_a
5cee0 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 29 20 7b 0a 24 74 68 69 73 rray($config['config'])).{.$this
5cf00 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 ->config.=.array_replace_recursi
5cf20 76 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 ve($this->config,.$config['confi
5cf40 67 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 g']);.}..if.(!empty($config['rep
5cf60 6f 73 69 74 6f 72 69 65 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 ositories']).&&.is_array($config
5cf80 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f ['repositories'])).{.$this->repo
5cfa0 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e sitories.=.array_reverse($this->
5cfc0 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 24 6e 65 77 52 65 70 6f 73 20 3d repositories,.true);.$newRepos.=
5cfe0 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f .array_reverse($config['reposito
5d000 72 69 65 73 27 5d 2c 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 52 65 70 6f ries'],.true);.foreach.($newRepo
5d020 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 20 69 s.as.$name.=>.$repository).{...i
5d040 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 75 6e 73 65 f.(false.===.$repository).{.unse
5d060 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 63 t($this->repositories[$name]);.c
5d080 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 72 ontinue;.}....if.(1.===.count($r
5d0a0 65 70 6f 73 69 74 6f 72 79 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 63 75 72 72 65 6e 74 28 epository).&&.false.===.current(
5d0c0 24 72 65 70 6f 73 69 74 6f 72 79 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 $repository)).{.unset($this->rep
5d0e0 6f 73 69 74 6f 72 69 65 73 5b 6b 65 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 5d 29 3b 0a 63 6f ositories[key($repository)]);.co
5d100 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 29 20 ntinue;.}....if.(is_int($name)).
5d120 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 {.$this->repositories[].=.$repos
5d140 69 74 6f 72 79 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 itory;.}.else.{.$this->repositor
5d160 69 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 24 74 ies[$name].=.$repository;.}.}.$t
5d180 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 his->repositories.=.array_revers
5d1a0 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 7d 0a e($this->repositories,.true);.}.
5d1c0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 }.....public.function.getReposit
5d1e0 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f ories().{.return.$this->reposito
5d200 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ries;.}........public.function.g
5d220 65 74 28 24 6b 65 79 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 7b 0a 63 61 73 65 20 et($key).{.switch.($key).{.case.
5d240 27 76 65 6e 64 6f 72 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 62 69 6e 2d 64 69 72 27 3a 0a 63 61 'vendor-dir':.case.'bin-dir':.ca
5d260 73 65 20 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 3a 0a 0a 20 24 65 6e 76 20 3d 20 27 se.'process-timeout':...$env.=.'
5d280 43 4f 4d 50 4f 53 45 52 5f 27 20 2e 20 73 74 72 74 6f 75 70 70 65 72 28 73 74 72 74 72 28 24 6b COMPOSER_'...strtoupper(strtr($k
5d2a0 65 79 2c 20 27 2d 27 2c 20 27 5f 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 ey,.'-',.'_'));..return.rtrim($t
5d2c0 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 67 65 74 65 6e 76 28 24 65 6e 76 29 20 3f 3a 20 24 74 68 his->process(getenv($env).?:.$th
5d2e0 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 is->config[$key]),.'/\\');..case
5d300 20 27 68 6f 6d 65 27 3a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f .'home':.return.rtrim($this->pro
5d320 63 65 73 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 cess($this->config[$key]),.'/\\'
5d340 29 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 );..default:.if.(!isset($this->c
5d360 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a onfig[$key])).{.return.null;.}..
5d380 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 28 24 74 68 69 73 2d 3e 63 6f 6e return.$this->process($this->con
5d3a0 66 69 67 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 fig[$key]);.}.}........public.fu
5d3c0 6e 63 74 69 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f nction.has($key).{.return.array_
5d3e0 6b 65 79 5f 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b key_exists($key,.$this->config);
5d400 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 .}........private.function.proce
5d420 73 73 28 24 76 61 6c 75 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 3b 0a 0a 69 ss($value).{.$config.=.$this;..i
5d440 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 f.(!is_string($value)).{.return.
5d460 24 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 $value;.}..return.preg_replace_c
5d480 61 6c 6c 62 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 66 75 6e 63 74 69 6f 6e allback('#\{\$(.+)\}#',.function
5d4a0 20 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e .($match).use.($config).{.return
5d4c0 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 2c 20 24 76 61 .$config->get($match[1]);.},.$va
5d4e0 6c 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 lue);.}.}.<?php............names
5d500 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f pace.Composer\Script;..use.Compo
5d520 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f ser\Composer;.use.Composer\IO\IO
5d540 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a 7b 0a 0a Interface;.......class.Event.{..
5d560 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f ..private.$name;.....private.$co
5d580 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a mposer;.....private.$io;........
5d5a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 .public.function.__construct($na
5d5c0 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 me,.Composer.$composer,.IOInterf
5d5e0 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a ace.$io).{.$this->name.=.$name;.
5d600 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 $this->composer.=.$composer;.$th
5d620 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e is->io.=.$io;.}.......public.fun
5d640 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ction.getName().{.return.$this->
5d660 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 name;.}.......public.function.ge
5d680 74 43 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 tComposer().{.return.$this->comp
5d6a0 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 oser;.}.......public.function.ge
5d6c0 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 7d 0a 3c 3f tIO().{.return.$this->io;.}.}.<?
5d6e0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
5d700 72 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 45 76 65 r\Script;........class.ScriptEve
5d720 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 nts.{........const.PRE_INSTALL_C
5d740 4d 44 20 3d 20 27 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a MD.=.'pre-install-cmd';.........
5d760 63 6f 6e 73 74 20 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 69 const.POST_INSTALL_CMD.=.'post-i
5d780 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 55 nstall-cmd';.........const.PRE_U
5d7a0 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a PDATE_CMD.=.'pre-update-cmd';...
5d7c0 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 ......const.POST_UPDATE_CMD.=.'p
5d7e0 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 ost-update-cmd';.........const.P
5d800 52 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 RE_PACKAGE_INSTALL.=.'pre-packag
5d820 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 e-install';.........const.POST_P
5d840 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 ACKAGE_INSTALL.=.'post-package-i
5d860 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 nstall';.........const.PRE_PACKA
5d880 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 GE_UPDATE.=.'pre-package-update'
5d8a0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 50 44 ;.........const.POST_PACKAGE_UPD
5d8c0 41 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a ATE.=.'post-package-update';....
5d8e0 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c .....const.PRE_PACKAGE_UNINSTALL
5d900 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a .=.'pre-package-uninstall';.....
5d920 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c ....const.POST_PACKAGE_UNINSTALL
5d940 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 3c .=.'post-package-uninstall';.}.<
5d960 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
5d980 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 er\Script;..use.Composer\Compose
5d9a0 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 r;.......class.CommandEvent.exte
5d9c0 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e nds.Event.{.}.<?php............n
5d9e0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 amespace.Composer\Script;..use.C
5da00 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 omposer\Composer;.use.Composer\I
5da20 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 O\IOInterface;.use.Composer\Depe
5da40 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 ndencyResolver\Operation\Operati
5da60 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 onInterface;.......class.Package
5da80 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 Event.extends.Event.{....private
5daa0 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$operation;..........public.fun
5dac0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 ction.__construct($name,.Compose
5dae0 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 4f 70 r.$composer,.IOInterface.$io,.Op
5db00 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 70 erationInterface.$operation).{.p
5db20 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 70 6f arent::__construct($name,.$compo
5db40 73 65 72 2c 20 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 20 3d 20 24 6f ser,.$io);.$this->operation.=.$o
5db60 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f peration;.}.......public.functio
5db80 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d n.getOperation().{.return.$this-
5dba0 3e 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a >operation;.}.}.<?php...........
5dbc0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 .namespace.Composer\Script;..use
5dbe0 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 .Composer\Autoload\AutoloadGener
5dc00 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 ator;.use.Composer\IO\IOInterfac
5dc20 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f e;.use.Composer\Composer;.use.Co
5dc40 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 mposer\DependencyResolver\Operat
5dc60 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ion\OperationInterface;.use.Comp
5dc80 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a oser\Util\ProcessExecutor;......
5dca0 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 0a 7b 0a ........class.EventDispatcher.{.
5dcc0 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 protected.$composer;.protected.$
5dce0 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 io;.protected.$loader;.protected
5dd00 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$process;.........public.functi
5dd20 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 on.__construct(Composer.$compose
5dd40 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 r,.IOInterface.$io,.ProcessExecu
5dd60 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f tor.$process.=.null).{.$this->co
5dd80 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 mposer.=.$composer;.$this->io.=.
5dda0 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f $io;.$this->process.=.$process.?
5ddc0 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a :.new.ProcessExecutor();.}......
5dde0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 ..public.function.dispatchPackag
5de00 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 eEvent($eventName,.OperationInte
5de20 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 rface.$operation).{.$this->doDis
5de40 70 61 74 63 68 28 6e 65 77 20 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d patch(new.PackageEvent($eventNam
5de60 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 e,.$this->composer,.$this->io,.$
5de80 6f 70 65 72 61 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 operation));.}.......public.func
5dea0 74 69 6f 6e 20 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 tion.dispatchCommandEvent($event
5dec0 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 43 6f Name).{.$this->doDispatch(new.Co
5dee0 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f mmandEvent($eventName,.$this->co
5df00 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f mposer,.$this->io));.}.......pro
5df20 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 69 73 70 61 74 63 68 28 45 76 65 6e 74 tected.function.doDispatch(Event
5df40 20 24 65 76 65 6e 74 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 .$event).{.$listeners.=.$this->g
5df60 65 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 etListeners($event);..foreach.($
5df80 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c 65 29 20 7b 0a 69 66 20 28 24 74 listeners.as.$callable).{.if.($t
5dfa0 68 69 73 2d 3e 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 his->isPhpScript($callable)).{.$
5dfc0 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c className.=.substr($callable,.0,
5dfe0 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 29 3b 0a 24 6d 65 74 68 .strpos($callable,.'::'));.$meth
5e000 6f 64 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 73 74 72 70 6f odName.=.substr($callable,.strpo
5e020 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 20 2b 20 32 29 3b 0a 0a 69 66 20 28 21 63 s($callable,.'::').+.2);..if.(!c
5e040 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 lass_exists($className)).{.$this
5e060 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6c 61 73 73 20 27 2e 24 63 ->io->write('<warning>Class.'.$c
5e080 6c 61 73 73 4e 61 6d 65 2e 27 20 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 61 62 6c 65 2c 20 lassName.'.is.not.autoloadable,.
5e0a0 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 can.not.call.'.$event->getName()
5e0c0 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b .'.script</warning>');.continue;
5e0e0 0a 7d 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 .}.if.(!is_callable($callable)).
5e100 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 4d 65 74 {.$this->io->write('<warning>Met
5e120 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 20 63 61 6c 6c 61 62 6c hod.'.$callable.'.is.not.callabl
5e140 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d e,.can.not.call.'.$event->getNam
5e160 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e e().'.script</warning>');.contin
5e180 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 45 76 65 6e 74 ue;.}..try.{.$this->executeEvent
5e1a0 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d PhpScript($className,.$methodNam
5e1c0 65 2c 20 24 65 76 65 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 e,.$event);.}.catch.(\Exception.
5e1e0 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 53 63 72 69 70 74 20 25 73 20 68 61 6e 64 $e).{.$message.=."Script.%s.hand
5e200 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 ling.the.%s.event.terminated.wit
5e220 68 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 22 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 h.an.exception";.$this->io->writ
5e240 65 28 27 3c 65 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 73 61 67 65 2c 20 24 63 e('<error>'.sprintf($message,.$c
5e260 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 2e 27 3c 2f 65 allable,.$event->getName()).'</e
5e280 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 rror>');.throw.$e;.}.}.else.{.if
5e2a0 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.!==.$this->process->execute(
5e2c0 24 63 61 6c 6c 61 62 6c 65 2c 20 24 63 61 6c 6c 62 61 63 6b 29 29 20 7b 0a 24 65 76 65 6e 74 2d $callable,.$callback)).{.$event-
5e2e0 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e >getIO()->write(sprintf('<error>
5e300 53 63 72 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 Script.%s.handling.the.%s.event.
5e320 72 65 74 75 72 6e 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 3a 20 25 73 3c 2f 73 63 72 69 returned.with.an.error:.%s</scri
5e340 70 74 3e 27 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 pt>',.$callable,.$event->getName
5e360 28 29 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 (),.$this->process->getErrorOutp
5e380 75 74 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ut()));.}.}.}.}.......protected.
5e3a0 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 function.executeEventPhpScript($
5e3c0 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 className,.$methodName,.Event.$e
5e3e0 76 65 6e 74 29 0a 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 6f 64 4e 61 6d 65 28 vent).{.$className::$methodName(
5e400 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 $event);.}......protected.functi
5e420 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a on.getListeners(Event.$event).{.
5e440 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 $package.=.$this->composer->getP
5e460 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ackage();.$scripts.=.$package->g
5e480 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 63 72 69 70 74 73 etScripts();..if.(empty($scripts
5e4a0 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 [$event->getName()])).{.return.a
5e4c0 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a rray();.}..if.($this->loader).{.
5e4e0 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 67 69 73 74 65 72 28 29 3b 0a 7d 0a 0a $this->loader->unregister();.}..
5e500 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 $generator.=.new.AutoloadGenerat
5e520 6f 72 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d or;.$packages.=.$this->composer-
5e540 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 >getRepositoryManager()->getLoca
5e560 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 24 70 lRepository()->getPackages();.$p
5e580 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 62 75 69 6c 64 50 61 63 ackageMap.=.$generator->buildPac
5e5a0 6b 61 67 65 4d 61 70 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 kageMap($this->composer->getInst
5e5c0 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 allationManager(),.$package,.$pa
5e5e0 63 6b 61 67 65 73 29 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 ckages);.$map.=.$generator->pars
5e600 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 74 68 69 73 2d 3e eAutoloads($packageMap);.$this->
5e620 6c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 loader.=.$generator->createLoade
5e640 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 r($map);.$this->loader->register
5e660 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 ();..return.$scripts[$event->get
5e680 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 Name()];.}........protected.func
5e6a0 74 69 6f 6e 20 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 65 tion.isPhpScript($callable).{.re
5e6c0 74 75 72 6e 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c turn.false.===.strpos($callable,
5e6e0 20 27 20 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 .'.').&&.false.!==.strpos($calla
5e700 62 6c 65 2c 20 27 3a 3a 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ble,.'::');.}.}.<?php...........
5e720 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a .namespace.Composer\Installer;..
5e740 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 use.Composer\Repository\Installe
5e760 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 dRepositoryInterface;.use.Compos
5e780 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a er\Package\PackageInterface;....
5e7a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 .....class.NoopInstaller.impleme
5e7c0 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c nts.InstallerInterface.{....publ
5e7e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 ic.function.supports($packageTyp
5e800 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 e).{.return.true;.}.....public.f
5e820 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 unction.isInstalled(InstalledRep
5e840 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 ositoryInterface.$repo,.PackageI
5e860 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 nterface.$package).{.return.$rep
5e880 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 o->hasPackage($package);.}.....p
5e8a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 ublic.function.install(Installed
5e8c0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
5e8e0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 geInterface.$package).{.if.(!$re
5e900 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 po->hasPackage($package)).{.$rep
5e920 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d o->addPackage(clone.$package);.}
5e940 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e .}.....public.function.update(In
5e960 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f stalledRepositoryInterface.$repo
5e980 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 ,.PackageInterface.$initial,.Pac
5e9a0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 kageInterface.$target).{.if.(!$r
5e9c0 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 epo->hasPackage($initial)).{.thr
5e9e0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
5ea00 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 ('Package.is.not.installed:.'.$i
5ea20 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 nitial);.}..$repo->removePackage
5ea40 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 ($initial);.if.(!$repo->hasPacka
5ea60 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 ge($target)).{.$repo->addPackage
5ea80 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 (clone.$target);.}.}.....public.
5eaa0 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f function.uninstall(InstalledRepo
5eac0 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e sitoryInterface.$repo,.PackageIn
5eae0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e terface.$package).{.if.(!$repo->
5eb00 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e hasPackage($package)).{...return
5eb20 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 ;.throw.new.\InvalidArgumentExce
5eb40 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a ption('Package.is.not.installed:
5eb60 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 .'.$package);.}.$repo->removePac
5eb80 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e kage($package);.}.....public.fun
5eba0 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 ction.getInstallPath(PackageInte
5ebc0 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 rface.$package).{.$targetDir.=.$
5ebe0 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e package->getTargetDir();..return
5ec00 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 .$package->getPrettyName()...($t
5ec20 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b argetDir.?.'/'.$targetDir.:.'');
5ec40 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
5ec60 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Composer\Installer;..use.Compose
5ec80 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 r\Repository\InstalledRepository
5eca0 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
5ecc0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 65 PackageInterface;.......class.Me
5ece0 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e tapackageInstaller.implements.In
5ed00 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e stallerInterface.{....public.fun
5ed20 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 ction.supports($packageType).{.r
5ed40 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 74 61 70 61 63 6b eturn.$packageType.===.'metapack
5ed60 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e age';.}.....public.function.isIn
5ed80 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 stalled(InstalledRepositoryInter
5eda0 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 face.$repo,.PackageInterface.$pa
5edc0 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 ckage).{.return.$repo->hasPackag
5ede0 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 e($package);.}.....public.functi
5ee00 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e on.install(InstalledRepositoryIn
5ee20 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 terface.$repo,.PackageInterface.
5ee40 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c $package).{.$repo->addPackage(cl
5ee60 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 one.$package);.}.....public.func
5ee80 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 tion.update(InstalledRepositoryI
5eea0 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nterface.$repo,.PackageInterface
5eec0 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 .$initial,.PackageInterface.$tar
5eee0 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 get).{.if.(!$repo->hasPackage($i
5ef00 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 nitial)).{.throw.new.\InvalidArg
5ef20 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 umentException('Package.is.not.i
5ef40 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d nstalled:.'.$initial);.}..$repo-
5ef60 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 72 65 70 6f 2d >removePackage($initial);.$repo-
5ef80 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a >addPackage(clone.$target);.}...
5efa0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 ..public.function.uninstall(Inst
5efc0 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 alledRepositoryInterface.$repo,.
5efe0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 PackageInterface.$package).{.if.
5f000 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b (!$repo->hasPackage($package)).{
5f020 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ...return;.throw.new.\InvalidArg
5f040 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 umentException('Package.is.not.i
5f060 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d nstalled:.'.$package);.}..$repo-
5f080 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a >removePackage($package);.}.....
5f0a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 public.function.getInstallPath(P
5f0c0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 ackageInterface.$package).{.retu
5f0e0 72 6e 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 rn.'';.}.}.<?php............name
5f100 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 space.Composer\Installer;..use.C
5f120 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 omposer\IO\IOInterface;.use.Comp
5f140 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e oser\Composer;.use.Composer\Down
5f160 6c 6f 61 64 65 72 5c 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 3b 0a 75 73 65 loader\PearPackageExtractor;.use
5f180 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 .Composer\Repository\InstalledRe
5f1a0 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c positoryInterface;.use.Composer\
5f1c0 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a Package\PackageInterface;.......
5f1e0 0a 63 6c 61 73 73 20 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 .class.PearInstaller.extends.Lib
5f200 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 raryInstaller.{........public.fu
5f220 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 nction.__construct(IOInterface.$
5f240 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 io,.Composer.$composer,.$type.=.
5f260 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 'pear-library').{.parent::__cons
5f280 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 29 3b 0a 7d 0a truct($io,.$composer,.$type);.}.
5f2a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 ....public.function.update(Insta
5f2c0 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 lledRepositoryInterface.$repo,.P
5f2e0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 ackageInterface.$initial,.Packag
5f300 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 eInterface.$target).{.$this->uni
5f320 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e nstall($repo,.$initial);.$this->
5f340 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 70 72 6f 74 install($repo,.$target);.}..prot
5f360 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 ected.function.installCode(Packa
5f380 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a geInterface.$package).{.parent::
5f3a0 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 70 61 72 65 6e 74 3a 3a 69 installCode($package);.parent::i
5f3c0 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 0a 24 69 73 57 69 6e 64 6f 77 73 20 3d nitializeBinDir();..$isWindows.=
5f3e0 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 .defined('PHP_WINDOWS_VERSION_BU
5f400 49 4c 44 27 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 ILD');.$php_bin.=.$this->binDir.
5f420 2e 20 28 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 ..($isWindows.?.'/composer-php.b
5f440 61 74 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 69 66 20 28 21 24 69 at'.:.'/composer-php');..if.(!$i
5f460 73 57 69 6e 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 27 2f 75 73 72 2f 62 69 6e sWindows).{.$php_bin.=.'/usr/bin
5f480 2f 65 6e 76 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 50 61 /env.'...$php_bin;.}..$installPa
5f4a0 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b th.=.$this->getInstallPath($pack
5f4c0 61 67 65 29 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 73 age);.$vars.=.array(.'os'.=>.$is
5f4e0 57 69 6e 64 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a 27 Windows.?.'windows'.:.'linux',.'
5f500 70 68 70 5f 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 27 php_bin'.=>.$php_bin,.'pear_php'
5f520 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 24 .=>.$installPath,.'php_dir'.=>.$
5f540 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 installPath,.'bin_dir'.=>.$insta
5f560 6c 6c 50 61 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 24 llPath...'/bin',.'data_dir'.=>.$
5f580 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e 27 installPath...'/data',.'version'
5f5a0 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 .=>.$package->getPrettyVersion()
5f5c0 2c 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 67 ,.);..$packageArchive.=.$this->g
5f5e0 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 70 61 74 68 etInstallPath($package).'/'.path
5f600 69 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 info($package->getDistUrl(),.PAT
5f620 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 20 HINFO_BASENAME);.$pearExtractor.
5f640 3d 20 6e 65 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 28 24 70 61 63 6b =.new.PearPackageExtractor($pack
5f660 61 67 65 41 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 74 ageArchive);.$pearExtractor->ext
5f680 72 61 63 74 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 ractTo($this->getInstallPath($pa
5f6a0 63 6b 61 67 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 ckage),.array('php'.=>.'/',.'scr
5f6c0 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 61 ipt'.=>.'/bin',.'data'.=>.'/data
5f6e0 27 29 2c 20 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 '),.$vars);..if.($this->io->isVe
5f700 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 rbose()).{.$this->io->write('...
5f720 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 67 .Cleaning.up');.}.unlink($packag
5f740 65 41 72 63 68 69 76 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e eArchive);.}..protected.function
5f760 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 .getBinaries(PackageInterface.$p
5f780 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d ackage).{.$binariesPath.=.$this-
5f7a0 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 69 >getInstallPath($package)...'/bi
5f7c0 6e 2f 27 3b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 69 n/';.$binaries.=.array();.if.(fi
5f7e0 6c 65 5f 65 78 69 73 74 73 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 65 le_exists($binariesPath)).{.fore
5f800 61 63 68 20 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 69 ach.(new.\FilesystemIterator($bi
5f820 6e 61 72 69 65 73 50 61 74 68 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a nariesPath,.\FilesystemIterator:
5f840 3a 4b 45 59 5f 41 53 5f 46 49 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 :KEY_AS_FILENAME.|.\FilesystemIt
5f860 65 72 61 74 6f 72 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 20 erator::CURRENT_AS_FILEINFO).as.
5f880 24 66 69 6c 65 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 6c $fileName.=>.$value).{.if.(!$val
5f8a0 75 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 69 ue->isDir()).{.$binaries[].=.'bi
5f8c0 6e 2f 27 2e 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 69 n/'.$fileName;.}.}.}..return.$bi
5f8e0 6e 61 72 69 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e naries;.}..protected.function.in
5f900 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 itializeBinDir().{.parent::initi
5f920 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 alizeBinDir();.file_put_contents
5f940 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 ($this->binDir.'/composer-php',.
5f960 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 $this->generateUnixyPhpProxyCode
5f980 28 29 29 3b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f ());.chmod($this->binDir.'/compo
5f9a0 73 65 72 2d 70 68 70 27 2c 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e ser-php',.0777);.file_put_conten
5f9c0 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e ts($this->binDir.'/composer-php.
5f9e0 62 61 74 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 bat',.$this->generateWindowsPhpP
5fa00 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 roxyCode());.chmod($this->binDir
5fa20 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a 0a .'/composer-php.bat',.0777);.}..
5fa40 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f protected.function.generateWindo
5fa60 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 wsProxyCode($bin,.$link).{.$binP
5fa80 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f ath.=.$this->filesystem->findSho
5faa0 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 rtestPath($link,.$bin);.if.('.ba
5fac0 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c t'.===.substr($bin,.-4)).{.$call
5fae0 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 er.=.'call';.}.else.{.$handle.=.
5fb00 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 fopen($bin,.'r');.$line.=.fgets(
5fb20 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 $handle);.fclose($handle);.if.(p
5fb40 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 reg_match('{^#!/(?:usr/bin/env.)
5fb60 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 ?(?:[^/]+/)*(.+)$}m',.$line,.$ma
5fb80 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d tch)).{.$caller.=.trim($match[1]
5fba0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 0a );.}.else.{.$caller.=.'php';.}..
5fbc0 69 66 20 28 24 63 61 6c 6c 65 72 20 3d 3d 3d 20 27 70 68 70 27 29 20 7b 0a 72 65 74 75 72 6e 20 if.($caller.===.'php').{.return.
5fbe0 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a "@echo.off\r\n".."pushd..\r\n"..
5fc00 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 50 48 50 5f 50 52 4f 58 59 3d 25 "cd.%~dp0\r\n".."set.PHP_PROXY=%
5fc20 43 44 25 5c 5c 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 63 64 20 CD%\\composer-php.bat\r\n".."cd.
5fc40 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 ".escapeshellarg(dirname($binPat
5fc60 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 h))."\r\n".."set.BIN_TARGET=%CD%
5fc80 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 \\".basename($binPath)."\r\n".."
5fca0 70 6f 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 5f 50 52 4f 58 59 25 20 5c 22 25 42 49 4e 5f 54 popd\r\n".."%PHP_PROXY%.\"%BIN_T
5fcc0 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 ARGET%\".%*\r\n";.}.}..return."@
5fce0 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 echo.off\r\n".."pushd..\r\n".."c
5fd00 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 d.%~dp0\r\n".."cd.".escapeshella
5fd20 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 rg(dirname($binPath))."\r\n".."s
5fd40 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 et.BIN_TARGET=%CD%\\".basename($
5fd60 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 24 63 61 binPath)."\r\n".."popd\r\n"..$ca
5fd80 6c 6c 65 72 2e 22 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b ller.".\"%BIN_TARGET%\".%*\r\n";
5fda0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e .}..private.function.generateWin
5fdc0 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 6f dowsPhpProxyCode().{.$binToVendo
5fde0 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 r.=.$this->filesystem->findShort
5fe00 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 65 estPath($this->binDir,.$this->ve
5fe20 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 6f ndorDir,.true);..return."@echo.o
5fe40 66 66 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 6c 6f 63 61 6c 20 65 6e 61 62 6c 65 64 65 6c 61 79 65 ff\r\n"..."setlocal.enabledelaye
5fe60 64 65 78 70 61 6e 73 69 6f 6e 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 42 49 4e 5f 44 49 52 3d 25 dexpansion\r\n"..."set.BIN_DIR=%
5fe80 7e 64 70 30 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 56 45 4e 44 4f 52 5f 44 49 52 3d 25 42 49 4e ~dp0\r\n"..."set.VENDOR_DIR=%BIN
5fea0 5f 44 49 52 25 5c 5c 22 2e 24 62 69 6e 54 6f 56 65 6e 64 6f 72 2e 22 5c 72 5c 6e 22 20 2e 0a 22 _DIR%\\".$binToVendor."\r\n"..."
5fec0 73 65 74 20 44 49 52 53 3d 2e 5c 72 5c 6e 22 20 2e 0a 22 46 4f 52 20 2f 44 20 25 25 56 20 49 4e set.DIRS=.\r\n"..."FOR./D.%%V.IN
5fee0 20 28 25 56 45 4e 44 4f 52 5f 44 49 52 25 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 .(%VENDOR_DIR%\\*).DO.(\r\n"..."
5ff00 20 20 20 20 46 4f 52 20 2f 44 20 25 25 50 20 49 4e 20 28 25 25 56 5c 5c 2a 29 20 44 4f 20 28 5c ....FOR./D.%%P.IN.(%%V\\*).DO.(\
5ff20 72 5c 6e 22 20 2e 0a 22 20 20 20 20 20 20 20 20 73 65 74 20 44 49 52 53 3d 21 44 49 52 53 21 3b r\n"..."........set.DIRS=!DIRS!;
5ff40 25 25 7e 66 50 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 29 5c 72 5c 6e 22 20 2e 0a 22 29 5c 72 5c %%~fP\r\n"..."....)\r\n"...")\r\
5ff60 6e 22 20 2e 0a 22 70 68 70 2e 65 78 65 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 21 44 n"..."php.exe.-d.include_path=!D
5ff80 49 52 53 21 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f IRS!.%*\r\n";.}..private.functio
5ffa0 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a n.generateUnixyPhpProxyCode().{.
5ffc0 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d $binToVendor.=.$this->filesystem
5ffe0 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 ->findShortestPath($this->binDir
60000 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 ,.$this->vendorDir,.true);..retu
60020 72 6e 0a 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 22 53 52 43 5f 44 rn."#!/usr/bin/env.sh\n".."SRC_D
60040 49 52 3d 60 70 77 64 60 5c 6e 22 2e 0a 22 42 49 4e 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 24 IR=`pwd`\n".."BIN_DIR=`dirname.$
60060 30 60 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 49 52 3d 5c 24 42 49 4e 5f 44 49 52 2f 22 2e 65 0`\n".."VENDOR_DIR=\$BIN_DIR/".e
60080 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 69 6e 54 6f 56 65 6e 64 6f 72 29 2e 22 5c 6e 22 scapeshellarg($binToVendor)."\n"
600a0 2e 0a 22 44 49 52 53 3d 5c 22 5c 22 5c 6e 22 2e 0a 22 66 6f 72 20 76 65 6e 64 6f 72 20 69 6e 20 .."DIRS=\"\"\n".."for.vendor.in.
600c0 5c 24 56 45 4e 44 4f 52 5f 44 49 52 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 69 66 20 5b \$VENDOR_DIR/*;.do\n".."....if.[
600e0 20 2d 64 20 5c 22 5c 24 76 65 6e 64 6f 72 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 .-d.\"\$vendor\".];.then\n".."..
60100 20 20 20 20 20 20 66 6f 72 20 70 61 63 6b 61 67 65 20 69 6e 20 5c 24 76 65 6e 64 6f 72 2f 2a 3b ......for.package.in.\$vendor/*;
60120 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c .do\n".."............if.[.-d.\"\
60140 24 70 61 63 6b 61 67 65 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 $package\".];.then\n".."........
60160 20 20 20 20 20 20 20 20 44 49 52 53 3d 5c 22 5c 24 7b 44 49 52 53 7d 3a 5c 24 7b 70 61 63 6b 61 ........DIRS=\"\${DIRS}:\${packa
60180 67 65 7d 5c 22 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 66 69 5c 6e 22 2e 0a 22 20 ge}\"\n".."............fi\n"..".
601a0 20 20 20 20 20 20 20 64 6f 6e 65 5c 6e 22 2e 0a 22 20 20 20 20 66 69 5c 6e 22 2e 0a 22 64 6f 6e .......done\n".."....fi\n".."don
601c0 65 5c 6e 22 2e 0a 22 70 68 70 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c 24 e\n".."php.-d.include_path=\".\$
601e0 44 49 52 53 5c 22 20 24 40 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a DIRS\".$@\n";.}.}.<?php.........
60200 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b ...namespace.Composer\Installer;
60220 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e ..use.Composer\Package\PackageIn
60240 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 terface;.use.Composer\Downloader
60260 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 \DownloadManager;.use.Composer\R
60280 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 epository\InstalledRepositoryInt
602a0 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 6a 65 63 74 49 6e 73 74 erface;........class.ProjectInst
602c0 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 aller.implements.InstallerInterf
602e0 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 70 72 69 76 ace.{.private.$installPath;.priv
60300 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 ate.$downloadManager;..public.fu
60320 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c nction.__construct($installPath,
60340 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 .DownloadManager.$dm).{.$this->i
60360 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 24 74 68 69 73 nstallPath.=.$installPath;.$this
60380 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a ->downloadManager.=.$dm;.}......
603a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b ..public.function.supports($pack
603c0 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ageType).{.return.true;.}.....pu
603e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c blic.function.isInstalled(Instal
60400 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 ledRepositoryInterface.$repo,.Pa
60420 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 ckageInterface.$package).{.retur
60440 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 n.false;.}.....public.function.i
60460 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 nstall(InstalledRepositoryInterf
60480 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ace.$repo,.PackageInterface.$pac
604a0 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e kage).{.$installPath.=.$this->in
604c0 73 74 61 6c 6c 50 61 74 68 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 6e 73 74 stallPath;.if.(file_exists($inst
604e0 61 6c 6c 50 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 allPath)).{.throw.new.\InvalidAr
60500 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 50 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f gumentException("Project.directo
60520 72 79 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 22 ry.$installPath.already.exists."
60540 29 3b 0a 7d 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 69 );.}.if.(!file_exists(dirname($i
60560 6e 73 74 61 6c 6c 50 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c nstallPath))).{.throw.new.\Inval
60580 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 50 72 6f 6a 65 63 74 20 72 6f 6f idArgumentException("Project.roo
605a0 74 20 22 20 2e 20 64 69 72 6e 61 6d 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 2e 20 22 20 t."...dirname($installPath)...".
605c0 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 3b 0a 7d 0a 6d 6b 64 69 72 28 24 69 6e 73 74 does.not.exist.");.}.mkdir($inst
605e0 61 6c 6c 50 61 74 68 2c 20 30 37 37 37 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d allPath,.0777);.$this->downloadM
60600 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 anager->download($package,.$inst
60620 61 6c 6c 50 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 allPath);.}.....public.function.
60640 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 update(InstalledRepositoryInterf
60660 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 ace.$repo,.PackageInterface.$ini
60680 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a tial,.PackageInterface.$target).
606a0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
606c0 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ption("not.supported");.}.....pu
606e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 blic.function.uninstall(Installe
60700 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b dRepositoryInterface.$repo,.Pack
60720 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 74 68 72 6f 77 20 6e ageInterface.$package).{.throw.n
60740 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f ew.\InvalidArgumentException("no
60760 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 t.supported");.}........public.f
60780 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e unction.getInstallPath(PackageIn
607a0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 terface.$package).{.return.$this
607c0 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ->installPath;.}.}.<?php........
607e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 ....namespace.Composer\Installer
60800 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f ;..use.Composer\Composer;.use.Co
60820 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f mposer\IO\IOInterface;.use.Compo
60840 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a ser\Downloader\DownloadManager;.
60860 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 use.Composer\Repository\Installe
60880 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 dRepositoryInterface;.use.Compos
608a0 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 er\Package\PackageInterface;.use
608c0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a .Composer\Util\Filesystem;......
608e0 0a 0a 63 6c 61 73 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 ..class.LibraryInstaller.impleme
60900 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 nts.InstallerInterface.{.protect
60920 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 6e 64 6f 72 44 ed.$composer;.protected.$vendorD
60940 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 ir;.protected.$binDir;.protected
60960 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f .$downloadManager;.protected.$io
60980 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 ;.protected.$type;.protected.$fi
609a0 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f lesystem;.........public.functio
609c0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 n.__construct(IOInterface.$io,.C
609e0 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 omposer.$composer,.$type.=.'libr
60a00 61 72 79 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f ary').{.$this->composer.=.$compo
60a20 73 65 72 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 63 ser;.$this->downloadManager.=.$c
60a40 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 omposer->getDownloadManager();.$
60a60 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 this->io.=.$io;.$this->type.=.$t
60a80 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 ype;..$this->filesystem.=.new.Fi
60aa0 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 lesystem();.$this->vendorDir.=.r
60ac0 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 trim($composer->getConfig()->get
60ae0 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e ('vendor-dir'),.'/');.$this->bin
60b00 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 Dir.=.rtrim($composer->getConfig
60b20 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a ()->get('bin-dir'),.'/');.}.....
60b40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 public.function.supports($packag
60b60 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d eType).{.return.$packageType.===
60b80 20 24 74 68 69 73 2d 3e 74 79 70 65 20 7c 7c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e .$this->type.||.null.===.$this->
60ba0 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e type;.}.....public.function.isIn
60bc0 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 stalled(InstalledRepositoryInter
60be0 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 face.$repo,.PackageInterface.$pa
60c00 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 ckage).{.return.$repo->hasPackag
60c20 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 74 68 69 73 e($package).&&.is_readable($this
60c40 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a ->getInstallPath($package));.}..
60c60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 ...public.function.install(Insta
60c80 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 lledRepositoryInterface.$repo,.P
60ca0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 ackageInterface.$package).{.$thi
60cc0 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 64 6f 77 6e 6c s->initializeVendorDir();.$downl
60ce0 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 oadPath.=.$this->getInstallPath(
60d00 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 $package);....if.(!is_readable($
60d20 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 downloadPath).&&.$repo->hasPacka
60d40 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e ge($package)).{.$this->removeBin
60d60 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 aries($package);.}..$this->insta
60d80 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c llCode($package);.$this->install
60da0 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e Binaries($package);.if.(!$repo->
60dc0 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 hasPackage($package)).{.$repo->a
60de0 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a ddPackage(clone.$package);.}.}..
60e00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c ...public.function.update(Instal
60e20 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 ledRepositoryInterface.$repo,.Pa
60e40 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 ckageInterface.$initial,.Package
60e60 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d Interface.$target).{.if.(!$repo-
60e80 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e >hasPackage($initial)).{.throw.n
60ea0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 ew.\InvalidArgumentException('Pa
60ec0 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 ckage.is.not.installed:.'.$initi
60ee0 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 al);.}..$this->initializeVendorD
60f00 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 6e ir();..$this->removeBinaries($in
60f20 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 43 6f 64 65 28 24 69 6e 69 74 69 itial);.$this->updateCode($initi
60f40 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 al,.$target);.$this->installBina
60f60 72 69 65 73 28 24 74 61 72 67 65 74 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b ries($target);.$repo->removePack
60f80 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 age($initial);.if.(!$repo->hasPa
60fa0 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b ckage($target)).{.$repo->addPack
60fc0 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c age(clone.$target);.}.}.....publ
60fe0 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 ic.function.uninstall(InstalledR
61000 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 epositoryInterface.$repo,.Packag
61020 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 eInterface.$package).{.if.(!$rep
61040 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 o->hasPackage($package)).{...ret
61060 75 72 6e 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 urn;.throw.new.\InvalidArgumentE
61080 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c xception('Package.is.not.install
610a0 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 ed:.'.$package);.}..$downloadPat
610c0 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 h.=.$this->getInstallPath($packa
610e0 67 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 43 6f 64 65 28 24 70 61 63 6b 61 67 65 ge);..$this->removeCode($package
61100 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 );.$this->removeBinaries($packag
61120 65 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 e);.$repo->removePackage($packag
61140 65 29 3b 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d e);..if.(strpos($package->getNam
61160 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 20 3d e(),.'/')).{.$packageVendorDir.=
61180 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 69 66 20 28 69 73 5f .dirname($downloadPath);.if.(is_
611a0 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 20 26 26 20 21 67 6c 6f 62 28 dir($packageVendorDir).&&.!glob(
611c0 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 2e 27 2f 2a 27 29 29 20 7b 0a 40 72 6d 64 69 $packageVendorDir.'/*')).{.@rmdi
611e0 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a r($packageVendorDir);.}.}.}.....
61200 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 public.function.getInstallPath(P
61220 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 ackageInterface.$package).{.$thi
61240 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 74 61 72 67 65 s->initializeVendorDir();.$targe
61260 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b tDir.=.$package->getTargetDir();
61280 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3f 20 24 74 68 ..return.($this->vendorDir.?.$th
612a0 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2e 27 2f 27 20 3a 20 27 27 29 20 2e 20 24 70 61 63 6b 61 is->vendorDir.'/'.:.'')...$packa
612c0 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 ge->getPrettyName()...($targetDi
612e0 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f r.?.'/'.$targetDir.:.'');.}..pro
61300 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b tected.function.installCode(Pack
61320 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f ageInterface.$package).{.$downlo
61340 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 adPath.=.$this->getInstallPath($
61360 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 package);.$this->downloadManager
61380 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 ->download($package,.$downloadPa
613a0 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 th);.}..protected.function.updat
613c0 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c eCode(PackageInterface.$initial,
613e0 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 64 6f .PackageInterface.$target).{.$do
61400 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 wnloadPath.=.$this->getInstallPa
61420 74 68 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e th($initial);.$this->downloadMan
61440 61 67 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 ager->update($initial,.$target,.
61460 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e $downloadPath);.}..protected.fun
61480 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 ction.removeCode(PackageInterfac
614a0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 e.$package).{.$downloadPath.=.$t
614c0 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 his->getInstallPath($package);.$
614e0 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 this->downloadManager->remove($p
61500 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 ackage,.$downloadPath);.}..prote
61520 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 cted.function.getBinaries(Packag
61540 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 eInterface.$package).{.return.$p
61560 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ackage->getBinaries();.}..protec
61580 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 ted.function.installBinaries(Pac
615a0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 kageInterface.$package).{.$binar
615c0 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 ies.=.$this->getBinaries($packag
615e0 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a e);.if.(!$binaries).{.return;.}.
61600 66 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 62 foreach.($binaries.as.$bin).{.$b
61620 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 inPath.=.$this->getInstallPath($
61640 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 24 62 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 package).'/'.$bin;.if.(!file_exi
61660 73 74 73 28 24 62 69 6e 50 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 sts($binPath)).{.$this->io->writ
61680 65 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 e('....<warning>Skipped.installa
616a0 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 tion.of.'.$bin.'.for.package.'.$
616c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 66 69 6c 65 20 6e 6f 74 20 66 package->getName().':.file.not.f
616e0 6f 75 6e 64 20 69 6e 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e ound.in.package</warning>');.con
61700 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 tinue;.}..$this->initializeBinDi
61720 72 28 29 3b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 r();.$link.=.$this->binDir.'/'.b
61740 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 asename($bin);.if.(file_exists($
61760 6c 69 6e 6b 29 29 20 7b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 29 20 7b 0a 0a link)).{.if.(is_link($link)).{..
61780 20 0a 20 0a 20 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 .....chmod($link,.0777.&.~umask(
617a0 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 53 6b 69 70 ));.}.$this->io->write('....Skip
617c0 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 ped.installation.of.'.$bin.'.for
617e0 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 .package.'.$package->getName().'
61800 3a 20 6e 61 6d 65 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 61 6e 20 65 78 69 73 74 69 6e :.name.conflicts.with.an.existin
61820 67 20 66 69 6c 65 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 64 65 66 69 6e 65 g.file');.continue;.}.if.(define
61840 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 d('PHP_WINDOWS_VERSION_BUILD')).
61860 7b 0a 0a 20 69 66 20 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 50 61 {...if.('.bat'.!==.substr($binPa
61880 74 68 2c 20 2d 34 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 th,.-4)).{.file_put_contents($li
618a0 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 nk,.$this->generateUnixyProxyCod
618c0 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b e($binPath,.$link));.chmod($link
618e0 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 24 6c 69 6e 6b 20 2e 3d 20 27 2e 62 ,.0777.&.~umask());.$link..=.'.b
61900 61 74 27 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 at';.}.file_put_contents($link,.
61920 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 $this->generateWindowsProxyCode(
61940 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 77 64 $binPath,.$link));.}.else.{.$cwd
61960 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 74 72 79 20 7b 0a 0a 20 0a 20 24 72 65 6c 61 74 69 76 65 .=.getcwd();.try.{.....$relative
61980 42 69 6e 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f Bin.=.$this->filesystem->findSho
619a0 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 50 61 74 68 29 3b 0a 63 68 64 69 rtestPath($link,.$binPath);.chdi
619c0 72 28 64 69 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 73 79 6d 6c 69 6e 6b 28 24 72 65 6c 61 r(dirname($link));.symlink($rela
619e0 74 69 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 tiveBin,.$link);.}.catch.(\Error
61a00 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 Exception.$e).{.file_put_content
61a20 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f s($link,.$this->generateUnixyPro
61a40 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 63 68 64 69 xyCode($binPath,.$link));.}.chdi
61a60 72 28 24 63 77 64 29 3b 0a 7d 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e r($cwd);.}.chmod($link,.0777.&.~
61a80 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f umask());.}.}..protected.functio
61aa0 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.removeBinaries(PackageInterfac
61ac0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 24 74 68 69 73 2d e.$package).{.$binaries.=.$this-
61ae0 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 62 69 >getBinaries($package);.if.(!$bi
61b00 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 62 69 naries).{.return;.}.foreach.($bi
61b20 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d naries.as.$bin).{.$link.=.$this-
61b40 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 >binDir.'/'.basename($bin);.if.(
61b60 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 6c 69 file_exists($link)).{.unlink($li
61b80 6e 6b 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 2e 27 2e 62 nk);.}.if.(file_exists($link.'.b
61ba0 61 74 27 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 3b 0a 7d 0a at')).{.unlink($link.'.bat');.}.
61bc0 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 }.}..protected.function.initiali
61be0 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 zeVendorDir().{.$this->filesyste
61c00 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e m->ensureDirectoryExists($this->
61c20 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 vendorDir);.$this->vendorDir.=.r
61c40 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 0a 70 72 ealpath($this->vendorDir);.}..pr
61c60 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 otected.function.initializeBinDi
61c80 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 r().{.$this->filesystem->ensureD
61ca0 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 24 irectoryExists($this->binDir);.$
61cc0 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 62 this->binDir.=.realpath($this->b
61ce0 69 6e 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 inDir);.}..protected.function.ge
61d00 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 nerateWindowsProxyCode($bin,.$li
61d20 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 nk).{.$binPath.=.$this->filesyst
61d40 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e em->findShortestPath($link,.$bin
61d60 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d );.if.('.bat'.===.substr($bin,.-
61d80 34 29 20 7c 7c 20 27 2e 65 78 65 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 4).||.'.exe'.===.substr($bin,.-4
61da0 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a )).{.$caller.=.'call';.}.else.{.
61dc0 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e $handle.=.fopen($bin,.'r');.$lin
61de0 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 e.=.fgets($handle);.fclose($hand
61e00 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 le);.if.(preg_match('{^#!/(?:usr
61e20 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 /bin/env.)?(?:[^/]+/)*(.+)$}m',.
61e40 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d $line,.$match)).{.$caller.=.trim
61e60 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 ($match[1]);.}.else.{.$caller.=.
61e80 27 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 45 43 48 4f 20 4f 46 46 5c 72 5c 'php';.}.}..return."@ECHO.OFF\r\
61ea0 6e 22 2e 0a 22 53 45 54 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 7e 64 70 30 5c 5c 22 2e 65 73 63 n".."SET.BIN_TARGET=%~dp0\\".esc
61ec0 61 70 65 73 68 65 6c 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 27 apeshellarg(dirname($binPath)).'
61ee0 5c 5c 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 \\'.basename($binPath)."\r\n".."
61f00 7b 24 63 61 6c 6c 65 72 7d 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c {$caller}.\"%BIN_TARGET%\".%*\r\
61f20 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 n";.}..protected.function.genera
61f40 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a teUnixyProxyCode($bin,.$link).{.
61f60 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 $binPath.=.$this->filesystem->fi
61f80 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 0a 72 65 ndShortestPath($link,.$bin);..re
61fa0 74 75 72 6e 20 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 27 53 52 43 turn."#!/usr/bin/env.sh\n"..'SRC
61fc0 5f 44 49 52 3d 22 60 70 77 64 60 22 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 22 60 64 69 72 6e 61 6d _DIR="`pwd`"'."\n"..'cd."`dirnam
61fe0 65 20 22 24 30 22 60 22 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c e."$0"`"'."\n"..'cd.'.escapeshel
62000 6c 61 72 67 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 6e 22 2e 0a 27 42 larg(dirname($binPath))."\n"..'B
62020 49 4e 5f 54 41 52 47 45 54 3d 22 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e IN_TARGET="`pwd`/'.basename($bin
62040 50 61 74 68 29 2e 22 5c 22 5c 6e 22 2e 0a 27 63 64 20 22 24 53 52 43 5f 44 49 52 22 27 2e 22 5c Path)."\"\n"..'cd."$SRC_DIR"'."\
62060 6e 22 2e 0a 27 22 24 42 49 4e 5f 54 41 52 47 45 54 22 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d n"..'"$BIN_TARGET"."$@"'."\n";.}
62080 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
620a0 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c mposer\Installer;..use.Composer\
620c0 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f Package\PackageInterface;.use.Co
620e0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 mposer\Package\AliasPackage;.use
62100 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 .Composer\Repository\RepositoryI
62120 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nterface;.use.Composer\Repositor
62140 79 5c 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b y\NotifiableRepositoryInterface;
62160 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c .use.Composer\Repository\Install
62180 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f edRepositoryInterface;.use.Compo
621a0 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e ser\DependencyResolver\Operation
621c0 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \OperationInterface;.use.Compose
621e0 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 r\DependencyResolver\Operation\I
62200 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 nstallOperation;.use.Composer\De
62220 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 pendencyResolver\Operation\Updat
62240 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 eOperation;.use.Composer\Depende
62260 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f ncyResolver\Operation\UninstallO
62280 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 peration;.use.Composer\Dependenc
622a0 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 6e 73 yResolver\Operation\MarkAliasIns
622c0 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 talledOperation;.use.Composer\De
622e0 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 pendencyResolver\Operation\MarkA
62300 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a liasUninstalledOperation;.......
62320 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 .class.InstallationManager.{.pri
62340 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 vate.$installers.=.array();.priv
62360 61 74 65 20 24 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ate.$cache.=.array();.......publ
62380 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 49 6e 73 74 61 6c 6c ic.function.addInstaller(Install
623a0 65 72 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 29 0a 7b 0a 61 72 72 61 79 5f erInterface.$installer).{.array_
623c0 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 69 6e 73 74 unshift($this->installers,.$inst
623e0 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a aller);.$this->cache.=.array();.
62400 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c }.........public.function.disabl
62420 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 eCustomInstallers().{.foreach.($
62440 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 20 3d 3e 20 24 69 6e 73 74 61 this->installers.as.$i.=>.$insta
62460 6c 6c 65 72 29 20 7b 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 72 20 69 6e 73 74 61 6e 63 65 ller).{.if.(!$installer.instance
62480 6f 66 20 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 63 6f 6e 74 69 6e 75 of.InstallerInstaller).{.continu
624a0 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 5b 24 69 e;.}..unset($this->installers[$i
624c0 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ]);.}.}...........public.functio
624e0 6e 20 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 74 79 70 65 29 0a 7b 0a 24 74 79 70 65 20 3d 20 n.getInstaller($type).{.$type.=.
62500 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 strtolower($type);..if.(isset($t
62520 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 his->cache[$type])).{.return.$th
62540 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 is->cache[$type];.}..foreach.($t
62560 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b his->installers.as.$installer).{
62580 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 75 70 70 6f 72 74 73 28 24 74 79 70 65 29 .if.($installer->supports($type)
625a0 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 20 3d ).{.return.$this->cache[$type].=
625c0 20 24 69 6e 73 74 61 6c 6c 65 72 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 .$installer;.}.}..throw.new.\Inv
625e0 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 69 alidArgumentException('Unknown.i
62600 6e 73 74 61 6c 6c 65 72 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a nstaller.type:.'.$type);.}......
62620 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 49 6e 73 ....public.function.isPackageIns
62640 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 talled(InstalledRepositoryInterf
62660 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ace.$repo,.PackageInterface.$pac
62680 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 kage).{.if.($package.instanceof.
626a0 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 AliasPackage).{.return.$repo->ha
626c0 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 50 sPackage($package).&&.$this->isP
626e0 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 2d ackageInstalled($repo,.$package-
62700 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d >getAliasOf());.}..return.$this-
62720 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 >getInstaller($package->getType(
62740 29 29 2d 3e 69 73 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 ))->isInstalled($repo,.$package)
62760 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 ;.}........public.function.execu
62780 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4f 70 te(RepositoryInterface.$repo,.Op
627a0 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 erationInterface.$operation).{.$
627c0 6d 65 74 68 6f 64 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 method.=.$operation->getJobType(
627e0 29 3b 0a 24 74 68 69 73 2d 3e 24 6d 65 74 68 6f 64 28 24 72 65 70 6f 2c 20 24 6f 70 65 72 61 74 );.$this->$method($repo,.$operat
62800 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 ion);.}........public.function.i
62820 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f nstall(RepositoryInterface.$repo
62840 2c 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b ,.InstallOperation.$operation).{
62860 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 .$package.=.$operation->getPacka
62880 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 ge();.$installer.=.$this->getIns
628a0 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e taller($package->getType());.$in
628c0 73 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 staller->install($repo,.$package
628e0 29 3b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 );.$this->notifyInstall($package
62900 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 );.}........public.function.upda
62920 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 55 70 te(RepositoryInterface.$repo,.Up
62940 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 69 6e 69 dateOperation.$operation).{.$ini
62960 74 69 61 6c 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 tial.=.$operation->getInitialPac
62980 6b 61 67 65 28 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 kage();.$target.=.$operation->ge
629a0 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 tTargetPackage();..$initialType.
629c0 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 =.$initial->getType();.$targetTy
629e0 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 24 69 pe.=.$target->getType();..if.($i
62a00 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 69 nitialType.===.$targetType).{.$i
62a20 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 nstaller.=.$this->getInstaller($
62a40 69 6e 69 74 69 61 6c 54 79 70 65 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 70 64 61 74 65 initialType);.$installer->update
62a60 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 ($repo,.$initial,.$target);.$thi
62a80 73 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 s->notifyInstall($target);.}.els
62aa0 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 69 74 69 61 6c e.{.$this->getInstaller($initial
62ac0 54 79 70 65 29 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c Type)->uninstall($repo,.$initial
62ae0 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 54 79 );.$this->getInstaller($targetTy
62b00 70 65 29 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a pe)->install($repo,.$target);.}.
62b20 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 }........public.function.uninsta
62b40 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 55 6e ll(RepositoryInterface.$repo,.Un
62b60 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 installOperation.$operation).{.$
62b80 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 package.=.$operation->getPackage
62ba0 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 ();.$installer.=.$this->getInsta
62bc0 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 74 ller($package->getType());.$inst
62be0 61 6c 6c 65 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 aller->uninstall($repo,.$package
62c00 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b );.}........public.function.mark
62c20 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 AliasInstalled(RepositoryInterfa
62c40 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 ce.$repo,.MarkAliasInstalledOper
62c60 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 ation.$operation).{.$package.=.$
62c80 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 69 66 20 28 21 24 operation->getPackage();..if.(!$
62ca0 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 repo->hasPackage($package)).{.$r
62cc0 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b epo->addPackage(clone.$package);
62ce0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b .}.}........public.function.mark
62d00 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 AliasUninstalled(RepositoryInter
62d20 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 face.$repo,.MarkAliasUninstalled
62d40 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 Operation.$operation).{.$package
62d60 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 24 72 .=.$operation->getPackage();..$r
62d80 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a epo->removePackage($package);.}.
62da0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c .......public.function.getInstal
62dc0 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 lPath(PackageInterface.$package)
62de0 0a 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c .{.$installer.=.$this->getInstal
62e00 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 0a 72 65 74 75 72 ler($package->getType());..retur
62e20 6e 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 n.$installer->getInstallPath($pa
62e40 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 ckage);.}..private.function.noti
62e60 66 79 49 6e 73 74 61 6c 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b fyInstall(PackageInterface.$pack
62e80 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f age).{.if.($package->getReposito
62ea0 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 ry().instanceof.NotifiableReposi
62ec0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 toryInterface).{.$package->getRe
62ee0 70 6f 73 69 74 6f 72 79 28 29 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 pository()->notifyInstall($packa
62f00 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ge);.}.}.}.<?php............name
62f20 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 space.Composer\Installer;..use.C
62f40 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
62f60 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c ;.use.Composer\Repository\Instal
62f80 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 ledRepositoryInterface;........i
62fa0 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a nterface.InstallerInterface.{...
62fc0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 ....public.function.supports($pa
62fe0 63 6b 61 67 65 54 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ckageType);..........public.func
63000 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 tion.isInstalled(InstalledReposi
63020 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
63040 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rface.$package);........public.f
63060 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 unction.install(InstalledReposit
63080 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 oryInterface.$repo,.PackageInter
630a0 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 face.$package);...........public
630c0 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 .function.update(InstalledReposi
630e0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
63100 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
63120 20 24 74 61 72 67 65 74 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$target);........public.functio
63140 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 n.uninstall(InstalledRepositoryI
63160 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nterface.$repo,.PackageInterface
63180 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$package);........public.functi
631a0 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 on.getInstallPath(PackageInterfa
631c0 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ce.$package);.}.<?php...........
631e0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a .namespace.Composer\Installer;..
63200 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f use.Composer\Composer;.use.Compo
63220 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ser\IO\IOInterface;.use.Composer
63240 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 \Autoload\AutoloadGenerator;.use
63260 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 .Composer\Repository\InstalledRe
63280 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c positoryInterface;.use.Composer\
632a0 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a Package\PackageInterface;.......
632c0 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 class.InstallerInstaller.extends
632e0 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 .LibraryInstaller.{.private.$ins
63300 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 tallationManager;.private.static
63320 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$classCounter.=.0;.........publ
63340 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 ic.function.__construct(IOInterf
63360 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 ace.$io,.Composer.$composer,.$ty
63380 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 pe.=.'library').{.parent::__cons
633a0 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 2d truct($io,.$composer,.'composer-
633c0 69 6e 73 74 61 6c 6c 65 72 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e installer');.$this->installation
633e0 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 Manager.=.$composer->getInstalla
63400 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 70 6f 73 tionManager();..foreach.($compos
63420 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c er->getRepositoryManager()->getL
63440 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 ocalRepositories().as.$repo).{.f
63460 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 oreach.($repo->getPackages().as.
63480 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c $package).{.if.('composer-instal
634a0 6c 65 72 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a ler'.===.$package->getType()).{.
634c0 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 $this->registerInstaller($packag
634e0 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 e);.}.}.}.}.....public.function.
63500 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 install(InstalledRepositoryInter
63520 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 face.$repo,.PackageInterface.$pa
63540 63 6b 61 67 65 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 ckage).{.$extra.=.$package->getE
63560 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 xtra();.if.(empty($extra['class'
63580 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 ])).{.throw.new.\UnexpectedValue
635a0 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e Exception('Error.while.installin
635c0 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c g.'.$package->getPrettyName().',
635e0 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 70 61 63 6b 61 67 65 73 20 73 68 6f .composer-installer.packages.sho
63600 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 uld.have.a.class.defined.in.thei
63620 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a r.extra.key.to.be.usable.');.}..
63640 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 parent::install($repo,.$package)
63660 3b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b ;.$this->registerInstaller($pack
63680 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 age);.}.....public.function.upda
636a0 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 te(InstalledRepositoryInterface.
636c0 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c $repo,.PackageInterface.$initial
636e0 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 65 ,.PackageInterface.$target).{.$e
63700 78 74 72 61 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 xtra.=.$target->getExtra();.if.(
63720 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 empty($extra['class'])).{.throw.
63740 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 new.\UnexpectedValueException('E
63760 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 61 72 67 65 74 2d rror.while.installing.'.$target-
63780 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 >getPrettyName().',.composer-ins
637a0 74 61 6c 6c 65 72 20 70 61 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c taller.packages.should.have.a.cl
637c0 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 ass.defined.in.their.extra.key.t
637e0 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 75 70 64 61 74 o.be.usable.');.}..parent::updat
63800 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 e($repo,.$initial,.$target);.$th
63820 69 73 2d 3e 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 29 3b 0a is->registerInstaller($target);.
63840 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 49 6e 73 74 }..private.function.registerInst
63860 61 6c 6c 65 72 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 aller(PackageInterface.$package)
63880 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 .{.$downloadPath.=.$this->getIns
638a0 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 tallPath($package);..$extra.=.$p
638c0 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 ackage->getExtra();.$classes.=.i
638e0 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 s_array($extra['class']).?.$extr
63900 61 5b 27 63 6c 61 73 73 27 5d 20 3a 20 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 a['class'].:.array($extra['class
63920 27 5d 29 3b 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 ']);..$generator.=.new.AutoloadG
63940 65 6e 65 72 61 74 6f 72 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 enerator;.$map.=.$generator->par
63960 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 seAutoloads(array(array($package
63980 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 ,.$downloadPath)));.$classLoader
639a0 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 .=.$generator->createLoader($map
639c0 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 66 6f );.$classLoader->register();..fo
639e0 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 69 66 20 reach.($classes.as.$class).{.if.
63a00 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 2c 20 66 61 6c 73 65 29 29 20 7b 0a (class_exists($class,.false)).{.
63a20 24 63 6f 64 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6c 61 73 73 $code.=.file_get_contents($class
63a40 4c 6f 61 64 65 72 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 3b 0a 24 63 6f 64 65 Loader->findFile($class));.$code
63a60 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 .=.preg_replace('{^class\s+(\S+)
63a80 7d 6d 69 27 2c 20 27 63 6c 61 73 73 20 24 31 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 }mi',.'class.$1_composer_tmp'.se
63aa0 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 lf::$classCounter,.$code);.eval(
63ac0 27 3f 3e 27 2e 24 63 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 '?>'.$code);.$class..=.'_compose
63ae0 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 3b 0a 73 65 6c 66 r_tmp'.self::$classCounter;.self
63b00 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 ::$classCounter++;.}..$installer
63b20 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e .=.new.$class($this->io,.$this->
63b40 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 composer);.$this->installationMa
63b60 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 74 61 6c 6c 65 72 29 3b nager->addInstaller($installer);
63b80 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
63ba0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 e.Composer\Console;..use.Symfony
63bc0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 \Component\Console\Application.a
63be0 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 s.BaseApplication;.use.Symfony\C
63c00 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
63c20 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
63c40 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 sole\Input\InputOption;.use.Symf
63c60 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
63c80 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e putInterface;.use.Symfony\Compon
63ca0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 ent\Console\Output\ConsoleOutput
63cc0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
63ce0 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 Formatter\OutputFormatter;.use.S
63d00 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 ymfony\Component\Console\Formatt
63d20 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 75 73 65 20 43 6f 6d er\OutputFormatterStyle;.use.Com
63d40 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d poser\Command;.use.Composer\Comm
63d60 61 6e 64 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 43 6f 6d and\Helper\DialogHelper;.use.Com
63d80 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 poser\Composer;.use.Composer\Fac
63da0 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 tory;.use.Composer\IO\IOInterfac
63dc0 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 e;.use.Composer\IO\ConsoleIO;.us
63de0 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a e.Composer\Util\ErrorHandler;...
63e00 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 ......class.Application.extends.
63e20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 BaseApplication.{....protected.$
63e40 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 75 composer;.....protected.$io;..pu
63e60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 45 72 blic.function.__construct().{.Er
63e80 72 6f 72 48 61 6e 64 6c 65 72 3a 3a 72 65 67 69 73 74 65 72 28 29 3b 0a 69 66 20 28 66 75 6e 63 rorHandler::register();.if.(func
63ea0 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 29 20 7b 0a 69 6e 69 5f 73 65 tion_exists('ini_set')).{.ini_se
63ec0 74 28 27 78 64 65 62 75 67 2e 73 68 6f 77 5f 65 78 63 65 70 74 69 6f 6e 5f 74 72 61 63 65 27 2c t('xdebug.show_exception_trace',
63ee0 20 66 61 6c 73 65 29 3b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 .false);.ini_set('xdebug.scream'
63f00 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 ,.false);.}..parent::__construct
63f20 28 27 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b ('Composer',.Composer::VERSION);
63f40 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 .}.....public.function.run(Input
63f60 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 Interface.$input.=.null,.OutputI
63f80 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e nterface.$output.=.null).{.if.(n
63fa0 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 73 74 79 6c 65 73 5b 27 68 69 67 68 ull.===.$output).{.$styles['high
63fc0 6c 69 67 68 74 27 5d 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 light'].=.new.OutputFormatterSty
63fe0 6c 65 28 27 72 65 64 27 29 3b 0a 24 73 74 79 6c 65 73 5b 27 77 61 72 6e 69 6e 67 27 5d 20 3d 20 le('red');.$styles['warning'].=.
64000 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 new.OutputFormatterStyle('black'
64020 2c 20 27 79 65 6c 6c 6f 77 27 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f 75 ,.'yellow');.$formatter.=.new.Ou
64040 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e 75 6c 6c 2c 20 24 73 74 79 6c 65 73 29 3b 0a 24 6f tputFormatter(null,.$styles);.$o
64060 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 43 6f 6e 73 6f 6c utput.=.new.ConsoleOutput(Consol
64080 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 6e 75 6c 6c 2c eOutput::VERBOSITY_NORMAL,.null,
640a0 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a .$formatter);.}..return.parent::
640c0 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c run($input,.$output);.}.....publ
640e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 ic.function.doRun(InputInterface
64100 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
64120 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 49 4f 28 24 69 ).{.$this->io.=.new.ConsoleIO($i
64140 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 nput,.$output,.$this->getHelperS
64160 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f et());..if.(version_compare(PHP_
64180 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 7b 0a 24 6f 75 74 70 75 VERSION,.'5.3.2',.'<')).{.$outpu
641a0 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6f 6d 70 6f 73 65 72 20 6f 6e t->writeln('<warning>Composer.on
641c0 6c 79 20 6f 66 66 69 63 69 61 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 50 48 50 20 35 2e 33 2e 32 ly.officially.supports.PHP.5.3.2
641e0 20 61 6e 64 20 61 62 6f 76 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 .and.above,.you.will.most.likely
64200 20 65 6e 63 6f 75 6e 74 65 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 79 6f 75 72 20 50 48 .encounter.problems.with.your.PH
64220 50 20 27 2e 50 48 50 5f 56 45 52 53 49 4f 4e 2e 27 2c 20 75 70 67 72 61 64 69 6e 67 20 69 73 20 P.'.PHP_VERSION.',.upgrading.is.
64240 73 74 72 6f 6e 67 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 strongly.recommended.</warning>'
64260 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f );.}..if.(defined('COMPOSER_DEV_
64280 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d WARNING_TIME').&&.$this->getComm
642a0 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 20 21 3d 3d 20 27 73 65 6c 66 2d 75 70 64 61 74 65 andName($input).!==.'self-update
642c0 27 29 20 7b 0a 69 66 20 28 74 69 6d 65 28 29 20 3e 20 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 ').{.if.(time().>.COMPOSER_DEV_W
642e0 41 52 4e 49 4e 47 5f 54 49 4d 45 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 ARNING_TIME).{.$output->writeln(
64300 73 70 72 69 6e 74 66 28 27 3c 77 61 72 6e 69 6e 67 3e 54 68 69 73 20 64 65 76 20 62 75 69 6c 64 sprintf('<warning>This.dev.build
64320 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 20 6f 75 74 64 61 74 65 64 2c 20 70 6c 65 61 73 65 .of.composer.is.outdated,.please
64340 20 72 75 6e 20 22 25 73 20 73 65 6c 66 2d 75 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 .run."%s.self-update".to.get.the
64360 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 5f 53 .latest.version.</warning>',.$_S
64380 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 69 ERVER['PHP_SELF']));.}.}..if.($i
643a0 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 nput->hasParameterOption('--prof
643c0 69 6c 65 27 29 29 20 7b 0a 24 73 74 61 72 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 ile')).{.$startTime.=.microtime(
643e0 74 72 75 65 29 3b 0a 7d 0a 0a 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 20 3d 20 67 65 74 63 77 true);.}..$oldWorkingDir.=.getcw
64400 64 28 29 3b 0a 24 74 68 69 73 2d 3e 73 77 69 74 63 68 57 6f 72 6b 69 6e 67 44 69 72 28 24 69 6e d();.$this->switchWorkingDir($in
64420 70 75 74 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 put);..$result.=.parent::doRun($
64440 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 63 68 64 69 72 28 24 6f 6c 64 57 6f 72 6b input,.$output);..chdir($oldWork
64460 69 6e 67 44 69 72 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 72 74 54 69 6d 65 29 29 ingDir);..if.(isset($startTime))
64480 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 4d 65 6d 6f 72 .{.$output->writeln('<info>Memor
644a0 79 20 75 73 61 67 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 y.usage:.'.round(memory_get_usag
644c0 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 20 28 70 65 61 6b 3a e()./.1024./.1024,.2).'MB.(peak:
644e0 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 70 65 61 6b 5f 75 73 61 67 65 28 29 .'.round(memory_get_peak_usage()
64500 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 29 2c 20 74 69 6d 65 3a 20 27 ./.1024./.1024,.2).'MB),.time:.'
64520 2e 72 6f 75 6e 64 28 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 73 74 61 72 74 54 .round(microtime(true).-.$startT
64540 69 6d 65 2c 20 32 29 2e 27 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b ime,.2).'s');.}..return.$result;
64560 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 77 69 74 63 68 57 .}......private.function.switchW
64580 6f 72 6b 69 6e 67 44 69 72 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 orkingDir(InputInterface.$input)
645a0 0a 7b 0a 24 77 6f 72 6b 69 6e 67 44 69 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 .{.$workingDir.=.$input->getPara
645c0 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 meterOption(array('--working-dir
645e0 27 2c 20 27 2d 64 27 29 2c 20 67 65 74 63 77 64 28 29 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 ',.'-d'),.getcwd());.if.(!is_dir
64600 28 24 77 6f 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 ($workingDir)).{.throw.new.\Runt
64620 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 77 6f 72 6b 69 6e 67 20 64 69 imeException('Invalid.working.di
64640 72 65 63 74 6f 72 79 20 73 70 65 63 69 66 69 65 64 2e 27 29 3b 0a 7d 0a 63 68 64 69 72 28 24 77 rectory.specified.');.}.chdir($w
64660 6f 72 6b 69 6e 67 44 69 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 orkingDir);.}......public.functi
64680 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 29 on.getComposer($required.=.true)
646a0 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 .{.if.(null.===.$this->composer)
646c0 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f .{.try.{.$this->composer.=.Facto
646e0 72 79 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 20 63 61 74 63 68 20 28 ry::create($this->io);.}.catch.(
64700 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a \InvalidArgumentException.$e).{.
64720 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 if.($required).{.$this->io->writ
64740 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a e($e->getMessage());.exit(1);.}.
64760 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a }.}..return.$this->composer;.}..
64780 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 ...public.function.getIO().{.ret
647a0 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 urn.$this->io;.}.....protected.f
647c0 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 24 unction.getDefaultCommands().{.$
647e0 63 6f 6d 6d 61 6e 64 73 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 43 6f 6d commands.=.parent::getDefaultCom
64800 6d 61 6e 64 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 mands();.$commands[].=.new.Comma
64820 6e 64 5c 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d nd\AboutCommand();.$commands[].=
64840 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 .new.Command\ConfigCommand();.$c
64860 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 65 70 65 6e 64 73 43 ommands[].=.new.Command\DependsC
64880 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d ommand();.$commands[].=.new.Comm
648a0 61 6e 64 5c 49 6e 69 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d and\InitCommand();.$commands[].=
648c0 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 .new.Command\InstallCommand();.$
648e0 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 72 65 61 74 65 50 commands[].=.new.Command\CreateP
64900 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e rojectCommand();.$commands[].=.n
64920 65 77 20 43 6f 6d 6d 61 6e 64 5c 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d ew.Command\UpdateCommand();.$com
64940 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 61 72 63 68 43 6f 6d 6d mands[].=.new.Command\SearchComm
64960 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 and();.$commands[].=.new.Command
64980 5c 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 \ValidateCommand();.$commands[].
649a0 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 68 6f 77 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f =.new.Command\ShowCommand();.$co
649c0 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 65 71 75 69 72 65 43 6f mmands[].=.new.Command\RequireCo
649e0 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 mmand();.$commands[].=.new.Comma
64a00 6e 64 5c 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 nd\DumpAutoloadCommand();.$comma
64a20 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 74 61 74 75 73 43 6f 6d 6d 61 6e nds[].=.new.Command\StatusComman
64a40 64 28 29 3b 0a 0a 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 d();..if.('phar:'.===.substr(__F
64a60 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 ILE__,.0,.5)).{.$commands[].=.ne
64a80 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 7d w.Command\SelfUpdateCommand();.}
64aa0 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ..return.$commands;.}.....protec
64ac0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 ted.function.getDefaultInputDefi
64ae0 6e 69 74 69 6f 6e 28 29 0a 7b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 70 61 72 65 6e 74 3a nition().{.$definition.=.parent:
64b00 3a 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 64 :getDefaultInputDefinition();.$d
64b20 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 efinition->addOption(new.InputOp
64b40 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 tion('--profile',.null,.InputOpt
64b60 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 69 6d 69 6e 67 ion::VALUE_NONE,.'Display.timing
64b80 20 61 6e 64 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 29 .and.memory.usage.information'))
64ba0 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 ;.$definition->addOption(new.Inp
64bc0 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 27 2c 20 utOption('--working-dir',.'-d',.
64be0 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 49 66 InputOption::VALUE_REQUIRED,.'If
64c00 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 65 20 67 69 76 65 6e 20 64 69 72 65 63 74 .specified,.use.the.given.direct
64c20 6f 72 79 20 61 73 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 2e 27 29 29 3b 0a 0a 72 ory.as.working.directory.'));..r
64c40 65 74 75 72 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 eturn.$definition;.}.....protect
64c60 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 ed.function.getDefaultHelperSet(
64c80 29 0a 7b 0a 24 68 65 6c 70 65 72 53 65 74 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 ).{.$helperSet.=.parent::getDefa
64ca0 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 24 68 65 6c 70 65 72 53 65 74 2d 3e 73 65 74 ultHelperSet();..$helperSet->set
64cc0 28 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 (new.DialogHelper());..return.$h
64ce0 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e elperSet;.}.}.<?php............n
64d00 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 amespace.Composer\Autoload;..use
64d20 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 .Composer\Config;.use.Composer\I
64d40 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 nstaller\InstallationManager;.us
64d60 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b e.Composer\Package\AliasPackage;
64d80 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 .use.Composer\Package\PackageInt
64da0 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c erface;.use.Composer\Repository\
64dc0 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 RepositoryInterface;.use.Compose
64de0 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 r\Util\Filesystem;......class.Au
64e00 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f toloadGenerator.{.public.functio
64e20 6e 20 64 75 6d 70 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 52 65 70 6f 73 69 74 6f 72 n.dump(Config.$config,.Repositor
64e40 79 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e yInterface.$localRepo,.PackageIn
64e60 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 49 6e 73 74 61 6c 6c 61 74 69 terface.$mainPackage,.Installati
64e80 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 onManager.$installationManager,.
64ea0 24 74 61 72 67 65 74 44 69 72 2c 20 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 20 3d 20 $targetDir,.$scanPsr0Packages.=.
64ec0 66 61 6c 73 65 2c 20 24 73 75 66 66 69 78 20 3d 20 27 27 29 0a 7b 0a 24 66 69 6c 65 73 79 73 74 false,.$suffix.=.'').{.$filesyst
64ee0 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 em.=.new.Filesystem();.$filesyst
64f00 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 6f 6e 66 69 em->ensureDirectoryExists($confi
64f20 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 g->get('vendor-dir'));.$vendorPa
64f40 74 68 20 3d 20 73 74 72 74 72 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 th.=.strtr(realpath($config->get
64f60 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 74 61 ('vendor-dir')),.'\\',.'/');.$ta
64f80 72 67 65 74 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 2e 24 74 61 72 67 65 rgetDir.=.$vendorPath.'/'.$targe
64fa0 74 44 69 72 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f tDir;.$filesystem->ensureDirecto
64fc0 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 72 65 6c 56 65 6e 64 6f ryExists($targetDir);..$relVendo
64fe0 72 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 rPath.=.$filesystem->findShortes
65000 74 50 61 74 68 28 67 65 74 63 77 64 28 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 tPath(getcwd(),.$vendorPath,.tru
65020 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 e);.$vendorPathCode.=.$filesyste
65040 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 72 65 61 6c 70 61 74 68 m->findShortestPathCode(realpath
65060 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 ($targetDir),.$vendorPath,.true)
65080 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 ;.$vendorPathToTargetDirCode.=.$
650a0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 filesystem->findShortestPathCode
650c0 28 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 ($vendorPath,.realpath($targetDi
650e0 72 29 2c 20 74 72 75 65 29 3b 0a 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 r),.true);..$appBaseDirCode.=.$f
65100 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 ilesystem->findShortestPathCode(
65120 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 67 65 74 63 77 64 28 29 2c 20 74 72 75 65 29 3b 0a 24 61 $vendorPath,.getcwd(),.true);.$a
65140 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 ppBaseDirCode.=.str_replace('__D
65160 49 52 5f 5f 27 2c 20 27 24 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 IR__',.'$vendorDir',.$appBaseDir
65180 43 6f 64 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 Code);..$namespacesFile.=.<<<EOF
651a0 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 .<?php..//.autoload_namespaces.p
651c0 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 hp.generated.by.Composer..\$vend
651e0 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 orDir.=.$vendorPathCode;.\$baseD
65200 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 ir.=.$appBaseDirCode;..return.ar
65220 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d ray(..EOF;..$packageMap.=.$this-
65240 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 >buildPackageMap($installationMa
65260 6e 61 67 65 72 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d nager,.$mainPackage,.$localRepo-
65280 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 24 74 >getPackages());.$autoloads.=.$t
652a0 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 29 his->parseAutoloads($packageMap)
652c0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 ;..foreach.($autoloads['psr-0'].
652e0 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f as.$namespace.=>.$paths).{.$expo
65300 72 74 65 64 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 rtedPaths.=.array();.foreach.($p
65320 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b aths.as.$path).{.$exportedPaths[
65340 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 ].=.$this->getPathCode($filesyst
65360 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c em,.$relVendorPath,.$vendorPath,
65380 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 .$path);.}.$exportedPrefix.=.var
653a0 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 _export($namespace,.true);.$name
653c0 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 spacesFile..=."....$exportedPref
653e0 69 78 20 3d 3e 20 22 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 65 78 70 6f 72 74 65 64 50 61 74 68 ix.=>.";.if.(count($exportedPath
65400 73 29 20 3e 20 31 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 61 72 s).>.1).{.$namespacesFile..=."ar
65420 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 64 50 61 74 ray(".implode(',.',.$exportedPat
65440 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 hs)."),\n";.}.else.{.$namespaces
65460 46 69 6c 65 20 2e 3d 20 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 30 5d 2e 22 2c 5c 6e 22 3b File..=.$exportedPaths[0].",\n";
65480 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a .}.}.$namespacesFile..=.");\n";.
654a0 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f .$classmapFile.=.<<<EOF.<?php../
654c0 2f 20 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 20 67 65 6e 65 72 61 74 65 /.autoload_classmap.php.generate
654e0 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 d.by.Composer..\$vendorDir.=.$ve
65500 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 ndorPathCode;.\$baseDir.=.$appBa
65520 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a seDirCode;..return.array(..EOF;.
65540 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 ...$targetDirLoader.=.null;.$mai
65560 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 nAutoload.=.$mainPackage->getAut
65580 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 oload();.if.($mainPackage->getTa
655a0 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d 70 74 79 28 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 rgetDir().&&.!empty($mainAutoloa
655c0 64 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 24 6c 65 76 65 6c 73 20 3d 20 63 6f 75 6e 74 28 65 d['psr-0'])).{.$levels.=.count(e
655e0 78 70 6c 6f 64 65 28 27 2f 27 2c 20 74 72 69 6d 28 73 74 72 74 72 28 24 6d 61 69 6e 50 61 63 6b xplode('/',.trim(strtr($mainPack
65600 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c age->getTargetDir(),.'\\',.'/'),
65620 20 27 2f 27 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 .'/')));.$prefixes.=.implode(',.
65640 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 72 65 66 69 78 29 20 ',.array_map(function.($prefix).
65660 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 72 65 66 69 78 2c 20 74 72 75 {.return.var_export($prefix,.tru
65680 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b e);.},.array_keys($mainAutoload[
656a0 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 65 44 69 72 46 72 6f 6d 54 61 72 67 65 74 44 'psr-0'])));.$baseDirFromTargetD
656c0 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 irCode.=.$filesystem->findShorte
656e0 73 74 50 61 74 68 43 6f 64 65 28 24 74 61 72 67 65 74 44 69 72 2c 20 67 65 74 63 77 64 28 29 2c stPathCode($targetDir,.getcwd(),
65700 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 3d 20 3c 3c 3c 45 .true);..$targetDirLoader.=.<<<E
65720 4f 46 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 OF......public.static.function.a
65740 75 74 6f 6c 6f 61 64 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 5c utoload(\$class).....{.........\
65760 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 72 6f 6d 54 61 72 67 65 74 44 69 72 43 6f 64 65 $dir.=.$baseDirFromTargetDirCode
65780 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 5c 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 ...'/';.........\$prefixes.=.arr
657a0 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 ay($prefixes);.........foreach.(
657c0 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 \$prefixes.as.\$prefix).{.......
657e0 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 5c 24 63 6c 61 73 73 2c 20 ......if.(0.!==.strpos(\$class,.
65800 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e \$prefix)).{.................con
65820 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 tinue;.............}............
65840 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 61 .\$path.=.\$dir...implode('/',.a
65860 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f 64 65 28 27 5c 5c 5c 5c 27 2c 20 5c 24 63 6c 61 rray_slice(explode('\\\\',.\$cla
65880 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 20 ss),.$levels)).'.php';..........
658a0 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f ...if.(!\$path.=.stream_resolve_
658c0 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 include_path(\$path)).{.........
658e0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 ........return.false;...........
65900 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 20 5c 24 70 61 74 68 3b 0a ..}.............require.\$path;.
65920 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 .............return.true;.......
65940 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 20 24 63 6c 61 73 73 4d 61 70 20 3d ..}.....}..EOF;.}....$classMap.=
65960 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 29 .array();.if.($scanPsr0Packages)
65980 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 .{.foreach.($autoloads['psr-0'].
659a0 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 as.$namespace.=>.$paths).{.forea
659c0 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 64 69 72 20 3d 20 24 74 68 ch.($paths.as.$dir).{.$dir.=.$th
659e0 69 73 2d 3e 67 65 74 50 61 74 68 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e is->getPath($filesystem,.$relVen
65a00 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 64 69 72 29 3b 0a 24 77 68 dorPath,.$vendorPath,.$dir);.$wh
65a20 69 74 65 6c 69 73 74 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7b 25 73 2f 25 73 2e 2b 28 3f 3c 21 itelist.=.sprintf(.'{%s/%s.+(?<!
65a40 28 3f 3c 21 2f 29 54 65 73 74 5c 2e 70 68 70 29 24 7d 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 (?<!/)Test\.php)$}',.preg_quote(
65a60 72 74 72 69 6d 28 24 64 69 72 2c 20 27 2f 27 29 29 2c 0a 73 74 72 70 6f 73 28 24 6e 61 6d 65 73 rtrim($dir,.'/')),.strpos($names
65a80 70 61 63 65 2c 20 27 5f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 70 72 65 67 5f 71 75 6f 74 pace,.'_').===.false.?.preg_quot
65aa0 65 28 73 74 72 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 20 e(strtr($namespace,.'\\',.'/')).
65ac0 3a 20 27 27 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 :.''.);.foreach.(ClassMapGenerat
65ae0 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 2c 20 24 77 68 69 74 65 6c 69 73 74 29 20 or::createMap($dir,.$whitelist).
65b00 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d as.$class.=>.$path).{.if.(''.===
65b20 20 24 6e 61 6d 65 73 70 61 63 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 .$namespace.||.0.===.strpos($cla
65b40 73 73 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 27 2f 27 2e 24 ss,.$namespace)).{.$path.=.'/'.$
65b60 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 67 65 74 filesystem->findShortestPath(get
65b80 63 77 64 28 29 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 cwd(),.$path,.true);.if.(!isset(
65ba0 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 63 6c 61 73 73 4d 61 70 5b $classMap[$class])).{.$classMap[
65bc0 24 63 6c 61 73 73 5d 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f $class].=.'$baseDir...'.var_expo
65be0 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d rt($path,.true).",\n";.}.}.}.}.}
65c00 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 3d 20 6e 65 77 .}..$autoloads['classmap'].=.new
65c20 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 20 .\RecursiveIteratorIterator(new.
65c40 5c 52 65 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 75 74 6f 6c 6f 61 \RecursiveArrayIterator($autoloa
65c60 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f ds['classmap']));.foreach.($auto
65c80 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 66 6f 72 loads['classmap'].as.$dir).{.for
65ca0 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d each.(ClassMapGenerator::createM
65cc0 61 70 28 24 64 69 72 29 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 ap($dir).as.$class.=>.$path).{.$
65ce0 70 61 74 68 20 3d 20 27 2f 27 2e 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 path.=.'/'.$filesystem->findShor
65d00 74 65 73 74 50 61 74 68 28 67 65 74 63 77 64 28 29 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 3b testPath(getcwd(),.$path,.true);
65d20 0a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e .$classMap[$class].=.'$baseDir..
65d40 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 2e 22 2c 5c 6e 22 .'.var_export($path,.true).",\n"
65d60 3b 0a 7d 0a 7d 0a 0a 6b 73 6f 72 74 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 66 6f 72 65 61 63 68 ;.}.}..ksort($classMap);.foreach
65d80 20 28 24 63 6c 61 73 73 4d 61 70 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 63 6f 64 65 29 20 .($classMap.as.$class.=>.$code).
65da0 7b 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 5f 65 78 {.$classmapFile..=.'....'.var_ex
65dc0 70 6f 72 74 28 24 63 6c 61 73 73 2c 20 74 72 75 65 29 2e 27 20 3d 3e 20 27 2e 24 63 6f 64 65 3b port($class,.true).'.=>.'.$code;
65de0 0a 7d 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 66 69 .}.$classmapFile..=.");\n";..$fi
65e00 6c 65 73 43 6f 64 65 20 3d 20 22 22 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 lesCode.=."";.$autoloads['files'
65e20 5d 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 ].=.new.\RecursiveIteratorIterat
65e40 6f 72 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 or(new.\RecursiveArrayIterator($
65e60 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 autoloads['files']));.foreach.($
65e80 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 20 61 73 20 24 66 75 6e 63 74 69 6f 6e 46 autoloads['files'].as.$functionF
65ea0 69 6c 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 2e 3d 20 27 20 20 20 20 20 20 20 20 72 65 ile).{.$filesCode..=.'........re
65ec0 71 75 69 72 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 quire.'.$this->getPathCode($file
65ee0 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 system,.$relVendorPath,.$vendorP
65f00 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 2e 22 3b 5c 6e 22 3b 0a 7d 0a 0a 66 69 ath,.$functionFile).";\n";.}..fi
65f20 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 le_put_contents($targetDir.'/aut
65f40 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 2c 20 24 6e 61 6d 65 73 70 61 63 oload_namespaces.php',.$namespac
65f60 65 73 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 esFile);.file_put_contents($targ
65f80 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 etDir.'/autoload_classmap.php',.
65fa0 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 $classmapFile);.if.($includePath
65fc0 46 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c File.=.$this->getIncludePathsFil
65fe0 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c e($packageMap,.$filesystem,.$rel
66000 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 VendorPath,.$vendorPath,.$vendor
66020 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 29 20 7b 0a 66 69 PathCode,.$appBaseDirCode)).{.fi
66040 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 69 6e 63 le_put_contents($targetDir.'/inc
66060 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c lude_paths.php',.$includePathFil
66080 65 29 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 e);.}.file_put_contents($vendorP
660a0 61 74 68 2e 27 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 ath.'/autoload.php',.$this->getA
660c0 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 utoloadFile($vendorPathToTargetD
660e0 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 irCode,.$suffix));.file_put_cont
66100 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 27 ents($targetDir.'/autoload_real'
66120 2e 24 73 75 66 66 69 78 2e 27 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c .$suffix.'.php',.$this->getAutol
66140 6f 61 64 52 65 61 6c 46 69 6c 65 28 74 72 75 65 2c 20 74 72 75 65 2c 20 28 62 6f 6f 6c 29 20 24 oadRealFile(true,.true,.(bool).$
66160 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 includePathFile,.$targetDirLoade
66180 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 r,.$filesCode,.$vendorPathCode,.
661a0 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 29 3b 0a 63 6f 70 79 $appBaseDirCode,.$suffix));.copy
661c0 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 24 74 61 (__DIR__.'/ClassLoader.php',.$ta
661e0 72 67 65 74 44 69 72 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 29 3b 0a 7d 0a 0a rgetDir.'/ClassLoader.php');.}..
66200 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 public.function.buildPackageMap(
66220 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f InstallationManager.$installatio
66240 6e 4d 61 6e 61 67 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e nManager,.PackageInterface.$main
66260 50 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 0a 20 24 70 Package,.array.$packages).{...$p
66280 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 ackageMap.=.array();.array_unshi
662a0 66 74 28 24 70 61 63 6b 61 67 65 73 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 66 6f ft($packages,.$mainPackage);..fo
662c0 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a reach.($packages.as.$package).{.
662e0 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 if.($package.instanceof.AliasPac
66300 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 kage).{.continue;.}..if.($packag
66320 65 20 3d 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 4d 61 e.===.$mainPackage).{.$packageMa
66340 70 5b 5d 20 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 27 27 29 3b 0a 63 p[].=.array($mainPackage,.'');.c
66360 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 ontinue;.}.$packageMap[].=.array
66380 28 0a 24 70 61 63 6b 61 67 65 2c 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 (.$package,.$installationManager
663a0 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 0a 29 3b 0a 7d 0a ->getInstallPath($package).);.}.
663c0 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .return.$packageMap;.}........pu
663e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 blic.function.parseAutoloads(arr
66400 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 29 0a 7b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 ay.$packageMap).{.$sortedPackage
66420 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 24 70 61 63 Map.=.$this->sortPackageMap($pac
66440 6b 61 67 65 4d 61 70 29 3b 0a 0a 24 70 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 kageMap);..$psr0.=.$this->parseA
66460 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 utoloadsType($packageMap,.'psr-0
66480 27 29 3b 0a 24 63 6c 61 73 73 6d 61 70 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f ');.$classmap.=.$this->parseAuto
664a0 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 63 6c loadsType($sortedPackageMap,.'cl
664c0 61 73 73 6d 61 70 27 29 3b 0a 24 66 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 assmap');.$files.=.$this->parseA
664e0 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 utoloadsType($sortedPackageMap,.
66500 27 66 69 6c 65 73 27 29 3b 0a 0a 6b 72 73 6f 72 74 28 24 70 73 72 30 29 3b 0a 0a 72 65 74 75 72 'files');..krsort($psr0);..retur
66520 6e 20 61 72 72 61 79 28 27 70 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 20 27 63 6c 61 73 73 n.array('psr-0'.=>.$psr0,.'class
66540 6d 61 70 27 20 3d 3e 20 24 63 6c 61 73 73 6d 61 70 2c 20 27 66 69 6c 65 73 27 20 3d 3e 20 24 66 map'.=>.$classmap,.'files'.=>.$f
66560 69 6c 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 iles);.}........public.function.
66580 63 72 65 61 74 65 4c 6f 61 64 65 72 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 73 29 0a 7b createLoader(array.$autoloads).{
665a0 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 0a 69 .$loader.=.new.ClassLoader();..i
665c0 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b f.(isset($autoloads['psr-0'])).{
665e0 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 .foreach.($autoloads['psr-0'].as
66600 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d .$namespace.=>.$path).{.$loader-
66620 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 72 65 >add($namespace,.$path);.}.}..re
66640 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 turn.$loader;.}..protected.funct
66660 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 61 72 72 61 79 20 24 70 ion.getIncludePathsFile(array.$p
66680 61 63 6b 61 67 65 4d 61 70 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 ackageMap,.Filesystem.$filesyste
666a0 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 m,.$relVendorPath,.$vendorPath,.
666c0 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 $vendorPathCode,.$appBaseDirCode
666e0 29 0a 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f ).{.$includePaths.=.array();..fo
66700 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c reach.($packageMap.as.$item).{.l
66720 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 ist($package,.$installPath).=.$i
66740 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 tem;..if.(null.!==.$package->get
66760 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e TargetDir().&&.strlen($package->
66780 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 3e 20 30 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 getTargetDir()).>.0).{.$installP
667a0 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 ath.=.substr($installPath,.0,.-s
667c0 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 trlen('/'.$package->getTargetDir
667e0 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 ()));.}..foreach.($package->getI
66800 6e 63 6c 75 64 65 50 61 74 68 73 28 29 20 61 73 20 24 69 6e 63 6c 75 64 65 50 61 74 68 29 20 7b ncludePaths().as.$includePath).{
66820 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 74 72 69 6d 28 24 69 6e 63 6c 75 64 65 50 61 74 .$includePath.=.trim($includePat
66840 68 2c 20 27 2f 27 29 3b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 5b 5d 20 3d 20 65 6d 70 74 79 h,.'/');.$includePaths[].=.empty
66860 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3a 20 ($installPath).?.$includePath.:.
66880 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d $installPath.'/'.$includePath;.}
668a0 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 20 7b 0a 72 65 74 75 72 6e .}..if.(!$includePaths).{.return
668c0 3b 0a 7d 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a ;.}..$includePathsFile.=.<<<EOF.
668e0 3c 3f 70 68 70 0a 0a 2f 2f 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 20 67 65 6e 65 <?php..//.include_paths.php.gene
66900 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d rated.by.Composer..\$vendorDir.=
66920 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 .$vendorPathCode;.\$baseDir.=.$a
66940 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 ppBaseDirCode;..return.array(..E
66960 4f 46 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 61 73 20 24 OF;..foreach.($includePaths.as.$
66980 70 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 2e 3d 20 22 20 20 path).{.$includePathsFile..=."..
669a0 20 20 22 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 .."...$this->getPathCode($filesy
669c0 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 stem,.$relVendorPath,.$vendorPat
669e0 68 2c 20 24 70 61 74 68 29 20 2e 20 22 2c 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e h,.$path)...",\n";.}..return.$in
66a00 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 20 2e 20 22 29 3b 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 cludePathsFile...");\n";.}..prot
66a20 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 43 6f 64 65 28 46 69 6c 65 73 ected.function.getPathCode(Files
66a40 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 ystem.$filesystem,.$relVendorPat
66a60 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d h,.$vendorPath,.$path).{.$path.=
66a80 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 62 61 73 65 44 .strtr($path,.'\\',.'/');.$baseD
66aa0 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 ir.=.'';.if.(!$filesystem->isAbs
66ac0 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 olutePath($path)).{.if.(strpos($
66ae0 70 61 74 68 2c 20 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b 0a 0a path,.$relVendorPath).===.0).{..
66b00 20 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 72 .$path.=.substr($path,.strlen($r
66b20 65 6c 56 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 76 65 6e elVendorPath));.$baseDir.=.'$ven
66b40 64 6f 72 44 69 72 20 2e 20 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 27 2f 27 dorDir...';.}.else.{.$path.=.'/'
66b60 2e 24 70 61 74 68 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 .$path;.$baseDir.=.'$baseDir...'
66b80 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2c 20 24 76 65 6e ;.}.}.elseif.(strpos($path,.$ven
66ba0 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 dorPath).===.0).{.$path.=.substr
66bc0 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 76 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a 24 62 ($path,.strlen($vendorPath));.$b
66be0 61 73 65 44 69 72 20 3d 20 27 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 3b 0a 7d 0a 0a 72 65 74 aseDir.=.'$vendorDir...';.}..ret
66c00 75 72 6e 20 24 62 61 73 65 44 69 72 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 74 urn.$baseDir.var_export($path,.t
66c20 72 75 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 rue);.}..protected.function.getP
66c40 61 74 68 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c ath(Filesystem.$filesystem,.$rel
66c60 56 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 0a VendorPath,.$vendorPath,.$path).
66c80 7b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 {.$path.=.strtr($path,.'\\',.'/'
66ca0 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 );.if.(!$filesystem->isAbsoluteP
66cc0 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2c 20 ath($path)).{.if.(strpos($path,.
66ce0 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 29 20 3d 3d 3d 20 30 29 20 7b 0a 0a 20 72 65 74 75 72 $relVendorPath).===.0).{...retur
66d00 6e 20 24 76 65 6e 64 6f 72 50 61 74 68 20 2e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 n.$vendorPath...substr($path,.st
66d20 72 6c 65 6e 28 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e rlen($relVendorPath));.}..return
66d40 20 73 74 72 74 72 28 67 65 74 63 77 64 28 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2e 27 2f 27 2e .strtr(getcwd(),.'\\',.'/').'/'.
66d60 24 70 61 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 70 72 6f 74 65 $path;.}..return.$path;.}..prote
66d80 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 cted.function.getAutoloadFile($v
66da0 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 endorPathToTargetDirCode,.$suffi
66dc0 78 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 41 55 54 4f 4c 4f 41 44 0a 3c 3f 70 68 70 0a 0a 2f x).{.return.<<<AUTOLOAD.<?php../
66de0 2f 20 61 75 74 6f 6c 6f 61 64 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 /.autoload.php.generated.by.Comp
66e00 6f 73 65 72 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f oser..require_once.$vendorPathTo
66e20 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 24 TargetDirCode...'/autoload_real$
66e40 73 75 66 66 69 78 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 suffix.php';..return.ComposerAut
66e60 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 3a 3a 67 65 74 4c 6f 61 64 65 72 28 29 3b oloaderInit$suffix::getLoader();
66e80 0a 0a 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ..AUTOLOAD;.}..protected.functio
66ea0 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 24 75 73 65 50 53 52 30 2c 20 n.getAutoloadRealFile($usePSR0,.
66ec0 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 $useClassMap,.$useIncludePath,.$
66ee0 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 2c 20 24 76 65 targetDirLoader,.$filesCode,.$ve
66f00 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 ndorPathCode,.$appBaseDirCode,.$
66f20 73 75 66 66 69 78 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 24 66 69 6c 65 73 suffix).{.............if.($files
66f40 43 6f 64 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 22 5c 6e 5c 6e 22 2e 72 74 72 69 Code).{.$filesCode.=."\n\n".rtri
66f60 6d 28 24 66 69 6c 65 73 43 6f 64 65 29 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 3c 3c 3c 48 45 41 m($filesCode);.}..$file.=.<<<HEA
66f80 44 45 52 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 24 73 75 66 66 DER.<?php..//.autoload_real$suff
66fa0 69 78 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 72 65 ix.php.generated.by.Composer..re
66fc0 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 quire.__DIR__...'/ClassLoader.ph
66fe0 70 27 3b 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 p';..class.ComposerAutoloaderIni
67000 74 24 73 75 66 66 69 78 0a 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 5c 24 t$suffix.{.....private.static.\$
67020 6c 6f 61 64 65 72 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 loader;......public.static.funct
67040 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 ion.getLoader().....{.........if
67060 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 74 61 74 69 63 3a 3a 5c 24 6c 6f 61 64 65 72 29 20 7b 0a 20 .(null.!==.static::\$loader).{..
67080 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 5c 24 6c 6f 61 64 ...........return.static::\$load
670a0 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 74 61 74 69 63 3a 3a 5c er;.........}..........static::\
670c0 24 6c 6f 61 64 65 72 20 3d 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 5c 43 6f 6d 70 6f $loader.=.\$loader.=.new.\\Compo
670e0 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 20 ser\\Autoload\\ClassLoader();...
67100 20 20 20 20 20 20 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 ......\$vendorDir.=.$vendorPathC
67120 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 ode;.........\$baseDir.=.$appBas
67140 65 44 69 72 43 6f 64 65 3b 0a 0a 0a 48 45 41 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 eDirCode;...HEADER;..if.($useInc
67160 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 ludePath).{.$file..=.<<<'INCLUDE
67180 5f 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 _PATH'.........$includePaths.=.r
671a0 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 equire.__DIR__...'/include_paths
671c0 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 .php';.........array_push($inclu
671e0 64 65 50 61 74 68 73 2c 20 67 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 20 20 dePaths,.get_include_path());...
67200 20 20 20 20 20 20 73 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 54 48 ......set_include_path(join(PATH
67220 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a 0a 49 _SEPARATOR,.$includePaths));...I
67240 4e 43 4c 55 44 45 5f 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 50 53 52 30 29 20 7b 0a NCLUDE_PATH;.}..if.($usePSR0).{.
67260 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 30 27 0a 20 20 20 20 20 20 20 20 24 6d 61 70 20 $file..=.<<<'PSR0'.........$map.
67280 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e =.require.__DIR__...'/autoload_n
672a0 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 amespaces.php';.........foreach.
672c0 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a ($map.as.$namespace.=>.$path).{.
672e0 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 ............$loader->add($namesp
67300 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 50 53 52 30 3b 0a 7d ace,.$path);.........}...PSR0;.}
67320 0a 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c ..if.($useClassMap).{.$file..=.<
67340 3c 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4d 61 70 20 3d <<'CLASSMAP'.........$classMap.=
67360 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c .require.__DIR__...'/autoload_cl
67380 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6c 61 73 73 4d assmap.php';.........if.($classM
673a0 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c ap).{.............$loader->addCl
673c0 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 43 assMap($classMap);.........}...C
673e0 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 28 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 LASSMAP;.}..if.($targetDirLoader
67400 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 41 55 54 4f 4c 4f 41 ).{.$file..=.<<<REGISTER_AUTOLOA
67420 44 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 D.........spl_autoload_register(
67440 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 array('ComposerAutoloaderInit$su
67460 66 66 69 78 27 2c 20 27 61 75 74 6f 6c 6f 61 64 27 29 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f ffix',.'autoload'));...REGISTER_
67480 41 55 54 4f 4c 4f 41 44 3b 0a 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 4d 45 54 48 4f 44 AUTOLOAD;..}..$file..=.<<<METHOD
674a0 5f 46 4f 4f 54 45 52 0a 20 20 20 20 20 20 20 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 _FOOTER.........\$loader->regist
674c0 65 72 28 29 3b 7b 24 66 69 6c 65 73 43 6f 64 65 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 er();{$filesCode}..........retur
674e0 6e 20 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 7d 0a 0a 4d 45 54 48 4f 44 5f 46 4f 4f 54 45 52 n.\$loader;.....}..METHOD_FOOTER
67500 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 3b 0a 0a 72 ;..$file..=.$targetDirLoader;..r
67520 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c 3c 46 4f 4f 54 45 52 0a 7d 0a 0a 46 4f 4f 54 45 eturn.$file...<<<FOOTER.}..FOOTE
67540 52 3b 0a 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 R;..}..protected.function.parseA
67560 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 utoloadsType(array.$packageMap,.
67580 24 74 79 70 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 $type).{.$autoloads.=.array();.f
675a0 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a oreach.($packageMap.as.$item).{.
675c0 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 list($package,.$installPath).=.$
675e0 69 74 65 6d 3b 0a 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 item;..$autoload.=.$package->get
67600 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 61 75 74 6f 6c 6f Autoload();...if.(!isset($autolo
67620 61 64 5b 24 74 79 70 65 5d 29 20 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 61 75 74 6f 6c 6f 61 ad[$type]).||.!is_array($autoloa
67640 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 d[$type])).{.continue;.}..if.(nu
67660 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 ll.!==.$package->getTargetDir())
67680 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 6c .{.$installPath.=.substr($instal
676a0 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e lPath,.0,.-strlen('/'.$package->
676c0 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 getTargetDir()));.}..foreach.($a
676e0 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 utoload[$type].as.$namespace.=>.
67700 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 $paths).{.foreach.((array).$path
67720 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 s.as.$path).{.$autoloads[$namesp
67740 61 63 65 5d 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 ace][].=.empty($installPath).?.$
67760 70 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 3b 0a 7d path.:.$installPath.'/'.$path;.}
67780 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 74 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 70 72 6f 74 .}.}..return.$autoloads;.}..prot
677a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 61 72 ected.function.sortPackageMap(ar
677c0 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 29 0a 7b 0a 24 67 72 6f 75 70 73 20 3d 20 61 72 72 ray.$packageMap).{.$groups.=.arr
677e0 61 79 28 29 3b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 ay();.$names.=.array();.foreach.
67800 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 69 74 65 6d 29 20 7b ($packageMap.as.$key.=>.$item).{
67820 0a 24 67 72 6f 75 70 73 5b 24 6b 65 79 5d 20 3d 20 61 72 72 61 79 28 24 69 74 65 6d 29 3b 0a 24 .$groups[$key].=.array($item);.$
67840 6d 61 69 6e 4e 61 6d 65 20 3d 20 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a mainName.=.$item[0]->getName();.
67860 66 6f 72 65 61 63 68 20 28 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 61 73 foreach.($item[0]->getNames().as
67880 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6e 61 6d 65 73 5b 24 6e 61 6d .$name).{.if.(!isset($names[$nam
678a0 65 5d 29 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6e 61 6d 65 20 3d 3d 20 e])).{.$names[$name].=.$name.==.
678c0 24 6d 61 69 6e 4e 61 6d 65 20 3f 20 24 6b 65 79 20 3a 20 24 6d 61 69 6e 4e 61 6d 65 3b 0a 7d 0a $mainName.?.$key.:.$mainName;.}.
678e0 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 }.}..foreach.($packageMap.as.$it
67900 65 6d 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 28 24 69 74 65 6d em).{.foreach.(array_merge($item
67920 5b 30 5d 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 [0]->getRequires(),.$item[0]->ge
67940 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 74 61 72 tDevRequires()).as.$link).{.$tar
67960 67 65 74 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 69 66 20 28 21 69 get.=.$link->getTarget();.if.(!i
67980 73 73 65 74 28 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 sset($names[$target])).{.continu
679a0 65 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 4b 65 79 20 3d 20 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 e;.}..$targetKey.=.$names[$targe
679c0 74 5d 3b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 61 72 67 65 74 4b 65 79 29 29 20 7b t];.if.(is_string($targetKey)).{
679e0 0a 69 66 20 28 21 69 73 73 65 74 28 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 4b 65 79 5d 29 29 .if.(!isset($names[$targetKey]))
67a00 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 74 61 72 67 65 74 4b 65 79 20 3d 20 24 6e 61 6d .{.continue;.}.$targetKey.=.$nam
67a20 65 73 5b 24 74 61 72 67 65 74 4b 65 79 5d 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 4b 65 79 20 3d es[$targetKey];.}..$packageKey.=
67a40 20 24 6e 61 6d 65 73 5b 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 69 66 .$names[$item[0]->getName()];.if
67a60 20 28 24 74 61 72 67 65 74 4b 65 79 20 3c 3d 20 24 70 61 63 6b 61 67 65 4b 65 79 20 7c 7c 20 21 .($targetKey.<=.$packageKey.||.!
67a80 69 73 73 65 74 28 24 67 72 6f 75 70 73 5b 24 70 61 63 6b 61 67 65 4b 65 79 5d 29 29 20 7b 0a 63 isset($groups[$packageKey])).{.c
67aa0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 67 72 6f 75 70 73 5b 24 70 61 ontinue;.}..foreach.($groups[$pa
67ac0 63 6b 61 67 65 4b 65 79 5d 20 61 73 20 24 6f 72 69 67 69 6e 61 6c 49 74 65 6d 29 20 7b 0a 24 67 ckageKey].as.$originalItem).{.$g
67ae0 72 6f 75 70 73 5b 24 74 61 72 67 65 74 4b 65 79 5d 5b 5d 20 3d 20 24 6f 72 69 67 69 6e 61 6c 49 roups[$targetKey][].=.$originalI
67b00 74 65 6d 3b 0a 24 6e 61 6d 65 73 5b 24 6f 72 69 67 69 6e 61 6c 49 74 65 6d 5b 30 5d 2d 3e 67 65 tem;.$names[$originalItem[0]->ge
67b20 74 4e 61 6d 65 28 29 5d 20 3d 20 24 74 61 72 67 65 74 4b 65 79 3b 0a 7d 0a 75 6e 73 65 74 28 24 tName()].=.$targetKey;.}.unset($
67b40 67 72 6f 75 70 73 5b 24 70 61 63 6b 61 67 65 4b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 6f 72 74 groups[$packageKey]);.}.}..$sort
67b60 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 edPackageMap.=.array();.foreach.
67b80 28 24 67 72 6f 75 70 73 20 61 73 20 24 67 72 6f 75 70 29 20 7b 0a 24 73 6f 72 74 65 64 50 61 63 ($groups.as.$group).{.$sortedPac
67ba0 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 73 6f 72 74 65 64 50 61 63 kageMap.=.array_merge($sortedPac
67bc0 6b 61 67 65 4d 61 70 2c 20 24 67 72 6f 75 70 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 6f 72 kageMap,.$group);.}..return.$sor
67be0 74 65 64 50 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a tedPackageMap;.}.}.<?php........
67c00 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 .....namespace.Composer\Autoload
67c20 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 0a ;.......class.ClassMapGenerator.
67c40 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 {.......public.static.function.d
67c60 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 ump($dirs,.$file).{.$maps.=.arra
67c80 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a y();..foreach.($dirs.as.$dir).{.
67ca0 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 73 2c 20 73 74 61 74 69 $maps.=.array_merge($maps,.stati
67cc0 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 c::createMap($dir));.}..file_put
67ce0 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 28 27 3c 3f 70 68 70 20 _contents($file,.sprintf('<?php.
67d00 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6d 61 70 73 2c 20 74 return.%s;',.var_export($maps,.t
67d20 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 rue)));.}..........public.static
67d40 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 2c 20 24 77 68 69 74 65 .function.createMap($dir,.$white
67d60 6c 69 73 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 69 list.=.null).{.if.(is_string($di
67d80 72 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 64 69 72 29 29 20 7b 0a 24 64 69 72 20 r)).{.if.(is_file($dir)).{.$dir.
67da0 3d 20 61 72 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 64 69 72 29 29 3b =.array(new.\SplFileInfo($dir));
67dc0 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 .}.else.{.$dir.=.new.\RecursiveI
67de0 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 44 69 teratorIterator(new.\RecursiveDi
67e00 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 29 29 3b 0a 7d 0a 7d 0a 0a 24 6d 61 rectoryIterator($dir));.}.}..$ma
67e20 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 20 61 73 20 24 p.=.array();..foreach.($dir.as.$
67e40 66 69 6c 65 29 20 7b 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a file).{.if.(!$file->isFile()).{.
67e60 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 66 69 6c 65 2d 3e 67 65 74 52 continue;.}..$path.=.$file->getR
67e80 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 70 61 74 68 69 6e 66 6f 28 24 70 61 74 68 2c 20 ealPath();..if.(pathinfo($path,.
67ea0 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 20 21 3d 3d 20 27 70 68 70 27 29 20 7b PATHINFO_EXTENSION).!==.'php').{
67ec0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 68 69 74 65 6c 69 73 74 20 26 26 20 .continue;.}..if.($whitelist.&&.
67ee0 21 70 72 65 67 5f 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 2c 20 73 74 72 74 72 28 24 70 !preg_match($whitelist,.strtr($p
67f00 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a ath,.'\\',.'/'))).{.continue;.}.
67f20 0a 24 63 6c 61 73 73 65 73 20 3d 20 73 65 6c 66 3a 3a 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 .$classes.=.self::findClasses($p
67f40 61 74 68 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 ath);..foreach.($classes.as.$cla
67f60 73 73 29 20 7b 0a 24 6d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 0a 0a 7d ss).{.$map[$class].=.$path;.}..}
67f80 0a 0a 72 65 74 75 72 6e 20 24 6d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ..return.$map;.}.........private
67fa0 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 .static.function.findClasses($pa
67fc0 74 68 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 th).{.$contents.=.file_get_conte
67fe0 6e 74 73 28 24 70 61 74 68 29 3b 0a 74 72 79 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 nts($path);.try.{.if.(!preg_matc
68000 68 28 27 7b 5c 62 28 3f 3a 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 7c 74 72 61 69 74 29 5c h('{\b(?:class|interface|trait)\
68020 62 7d 69 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 b}i',.$contents)).{.return.array
68040 28 29 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 20 3d 20 74 6f 6b 65 6e 5f 67 65 74 5f 61 6c 6c 28 24 63 ();.}.$tokens.=.token_get_all($c
68060 6f 6e 74 65 6e 74 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 ontents);.}.catch.(\Exception.$e
68080 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
680a0 27 43 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 'Could.not.scan.for.classes.insi
680c0 64 65 20 27 2e 24 70 61 74 68 2e 22 3a 20 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 de.'.$path.":.\n".$e->getMessage
680e0 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 24 54 5f 54 52 41 49 54 20 3d 20 76 65 72 73 69 6f 6e (),.0,.$e);.}.$T_TRAIT.=.version
68100 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 _compare(PHP_VERSION,.'5.4',.'<'
68120 29 20 3f 20 2d 31 20 3a 20 54 5f 54 52 41 49 54 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 61 72 ).?.-1.:.T_TRAIT;..$classes.=.ar
68140 72 61 79 28 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 ray();..$namespace.=.'';.for.($i
68160 20 3d 20 30 2c 20 24 6d 61 78 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 3b 20 24 69 20 .=.0,.$max.=.count($tokens);.$i.
68180 3c 20 24 6d 61 78 3b 20 24 69 2b 2b 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 <.$max;.$i++).{.$token.=.$tokens
681a0 5b 24 69 5d 3b 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 6f 6b 65 6e 29 29 20 7b 0a [$i];..if.(is_string($token)).{.
681c0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 27 27 3b 0a 0a 73 77 69 74 63 continue;.}..$class.=.'';..switc
681e0 68 20 28 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 61 73 65 20 54 5f 4e 41 4d 45 53 50 41 43 45 h.($token[0]).{.case.T_NAMESPACE
68200 3a 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 20 77 68 69 6c 65 20 28 28 24 74 20 :.$namespace.=.'';...while.(($t.
68220 3d 20 24 74 6f 6b 65 6e 73 5b 2b 2b 24 69 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 74 29 =.$tokens[++$i]).&&.is_array($t)
68240 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 74 5b 30 5d 2c 20 61 72 72 61 79 28 54 5f ).{.if.(in_array($t[0],.array(T_
68260 53 54 52 49 4e 47 2c 20 54 5f 4e 53 5f 53 45 50 41 52 41 54 4f 52 29 29 29 20 7b 0a 24 6e 61 6d STRING,.T_NS_SEPARATOR))).{.$nam
68280 65 73 70 61 63 65 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 20 espace..=.$t[1];.}.}.$namespace.
682a0 2e 3d 20 27 5c 5c 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 54 5f 43 4c 41 53 53 3a 0a 63 61 .=.'\\';.break;.case.T_CLASS:.ca
682c0 73 65 20 54 5f 49 4e 54 45 52 46 41 43 45 3a 0a 63 61 73 65 20 24 54 5f 54 52 41 49 54 3a 0a 0a se.T_INTERFACE:.case.$T_TRAIT:..
682e0 20 77 68 69 6c 65 20 28 28 24 74 20 3d 20 24 74 6f 6b 65 6e 73 5b 2b 2b 24 69 5d 29 20 26 26 20 .while.(($t.=.$tokens[++$i]).&&.
68300 69 73 5f 61 72 72 61 79 28 24 74 29 29 20 7b 0a 69 66 20 28 54 5f 53 54 52 49 4e 47 20 3d 3d 3d is_array($t)).{.if.(T_STRING.===
68320 20 24 74 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 20 65 6c 73 .$t[0]).{.$class..=.$t[1];.}.els
68340 65 69 66 20 28 24 63 6c 61 73 73 20 21 3d 3d 20 27 27 20 26 26 20 54 5f 57 48 49 54 45 53 50 41 eif.($class.!==.''.&&.T_WHITESPA
68360 43 45 20 3d 3d 20 24 74 5b 30 5d 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 63 6c 61 73 CE.==.$t[0]).{.break;.}.}..$clas
68380 73 65 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 63 6c 61 73 ses[].=.ltrim($namespace...$clas
683a0 73 2c 20 27 5c 5c 27 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b s,.'\\');.break;.default:.break;
683c0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 .}.}..return.$classes;.}.}.<?php
683e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a ............namespace.Composer;.
68400 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 .use.Composer\Autoload\AutoloadG
68420 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 enerator;.use.Composer\Dependenc
68440 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d yResolver\DefaultPolicy;.use.Com
68460 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 poser\DependencyResolver\Operati
68480 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 on\UpdateOperation;.use.Composer
684a0 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f \DependencyResolver\Pool;.use.Co
684c0 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 mposer\DependencyResolver\Reques
684e0 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 t;.use.Composer\DependencyResolv
68500 65 72 5c 53 6f 6c 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e er\Solver;.use.Composer\Dependen
68520 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 cyResolver\SolverProblemsExcepti
68540 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e on;.use.Composer\Downloader\Down
68560 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c loadManager;.use.Composer\Instal
68580 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d ler\InstallationManager;.use.Com
685a0 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 poser\Config;.use.Composer\Insta
685c0 6c 6c 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ller\NoopInstaller;.use.Composer
685e0 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 \IO\IOInterface;.use.Composer\Pa
68600 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ckage\AliasPackage;.use.Composer
68620 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b \Package\Link;.use.Composer\Pack
68640 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 age\LinkConstraint\VersionConstr
68660 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 aint;.use.Composer\Package\Locke
68680 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 r;.use.Composer\Package\PackageI
686a0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 nterface;.use.Composer\Package\R
686c0 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ootPackageInterface;.use.Compose
686e0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 r\Repository\CompositeRepository
68700 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c ;.use.Composer\Repository\Instal
68720 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ledArrayRepository;.use.Composer
68740 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a \Repository\PlatformRepository;.
68760 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f use.Composer\Repository\Reposito
68780 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 ryInterface;.use.Composer\Reposi
687a0 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 tory\RepositoryManager;.use.Comp
687c0 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 oser\Script\EventDispatcher;.use
687e0 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a .Composer\Script\ScriptEvents;..
68800 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 .....class.Installer.{....protec
68820 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a ted.$io;.....protected.$config;.
68840 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 ....protected.$package;.....prot
68860 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 ected.$downloadManager;.....prot
68880 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 ected.$repositoryManager;.....pr
688a0 6f 74 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$locker;.....protected.$
688c0 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 installationManager;.....protect
688e0 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ed.$eventDispatcher;.....protect
68900 65 64 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 ed.$autoloadGenerator;..protecte
68920 64 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 d.$preferSource.=.false;.protect
68940 65 64 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 ed.$preferDist.=.false;.protecte
68960 64 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 3b 0a 70 d.$optimizeAutoloader.=.false;.p
68980 72 6f 74 65 63 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 rotected.$devMode.=.false;.prote
689a0 63 74 65 64 20 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 cted.$dryRun.=.false;.protected.
689c0 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 $verbose.=.false;.protected.$upd
689e0 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 70 ate.=.false;.protected.$runScrip
68a00 74 73 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 57 68 69 74 ts.=.true;.protected.$updateWhit
68a20 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 elist.=.null;.....protected.$sug
68a40 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 gestedPackages;.....protected.$a
68a60 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a dditionalInstalledRepository;...
68a80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ............public.function.__co
68aa0 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 nstruct(IOInterface.$io,.Config.
68ac0 24 63 6f 6e 66 69 67 2c 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 $config,.RootPackageInterface.$p
68ae0 61 63 6b 61 67 65 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 ackage,.DownloadManager.$downloa
68b00 64 4d 61 6e 61 67 65 72 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 dManager,.RepositoryManager.$rep
68b20 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 ositoryManager,.Locker.$locker,.
68b40 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f InstallationManager.$installatio
68b60 6e 4d 61 6e 61 67 65 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 nManager,.EventDispatcher.$event
68b80 44 69 73 70 61 74 63 68 65 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 Dispatcher,.AutoloadGenerator.$a
68ba0 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 utoloadGenerator).{.$this->io.=.
68bc0 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 $io;.$this->config.=.$config;.$t
68be0 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e his->package.=.$package;.$this->
68c00 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 downloadManager.=.$downloadManag
68c20 65 72 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 er;.$this->repositoryManager.=.$
68c40 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 repositoryManager;.$this->locker
68c60 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d .=.$locker;.$this->installationM
68c80 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 anager.=.$installationManager;.$
68ca0 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 this->eventDispatcher.=.$eventDi
68cc0 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 spatcher;.$this->autoloadGenerat
68ce0 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 or.=.$autoloadGenerator;.}.....p
68d00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 ublic.function.run().{.if.($this
68d20 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 74 72 75 ->dryRun).{.$this->verbose.=.tru
68d40 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 e;.$this->runScripts.=.false;.$t
68d60 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 his->installationManager->addIns
68d80 74 61 6c 6c 65 72 28 6e 65 77 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 taller(new.NoopInstaller);.$this
68da0 2d 3e 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 72 ->mockLocalRepositories($this->r
68dc0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d epositoryManager);.}..if.($this-
68de0 3e 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 >preferSource).{.$this->download
68e00 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a Manager->setPreferSource(true);.
68e20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 20 7b 0a 24 74 68 69 73 }.if.($this->preferDist).{.$this
68e40 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 ->downloadManager->setPreferDist
68e60 28 74 72 75 65 29 3b 0a 7d 0a 0a 0a 20 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 (true);.}....$installedRootPacka
68e80 67 65 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 24 69 6e 73 74 ge.=.clone.$this->package;.$inst
68ea0 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 61 72 alledRootPackage->setRequires(ar
68ec0 72 61 79 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 ray());.$installedRootPackage->s
68ee0 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 0a 24 70 6c 61 74 66 6f etDevRequires(array());..$platfo
68f00 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 rmRepo.=.new.PlatformRepository(
68f20 29 3b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e );.$repos.=.array_merge(.$this->
68f40 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 repositoryManager->getLocalRepos
68f60 69 74 6f 72 69 65 73 28 29 2c 0a 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 41 itories(),.array(.new.InstalledA
68f80 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 rrayRepository(array($installedR
68fa0 6f 6f 74 50 61 63 6b 61 67 65 29 29 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 0a 29 0a 29 ootPackage)),.$platformRepo,.).)
68fc0 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 ;.$installedRepo.=.new.Composite
68fe0 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 Repository($repos);.if.($this->a
69000 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a dditionalInstalledRepository).{.
69020 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 $installedRepo->addRepository($t
69040 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f his->additionalInstalledReposito
69060 72 79 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 6f 6f ry);.}..$aliases.=.$this->getRoo
69080 74 41 6c 69 61 73 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d tAliases();.$this->aliasPlatform
690a0 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 Packages($platformRepo,.$aliases
690c0 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 );..if.($this->runScripts).{...$
690e0 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 eventName.=.$this->update.?.Scri
69100 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 ptEvents::PRE_UPDATE_CMD.:.Scrip
69120 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d tEvents::PRE_INSTALL_CMD;.$this-
69140 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e >eventDispatcher->dispatchComman
69160 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 75 dEvent($eventName);.}..$this->su
69180 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 ggestedPackages.=.array();.if.(!
691a0 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f $this->doInstall($this->reposito
691c0 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2c ryManager->getLocalRepository(),
691e0 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 29 20 7b 0a 72 65 .$installedRepo,.$aliases)).{.re
69200 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 turn.false;.}.if.($this->devMode
69220 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d ).{.if.(!$this->doInstall($this-
69240 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 >repositoryManager->getLocalDevR
69260 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c epository(),.$installedRepo,.$al
69280 69 61 73 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a iases,.true)).{.return.false;.}.
692a0 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 }....foreach.($this->suggestedPa
692c0 63 6b 61 67 65 73 20 61 73 20 24 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 24 74 61 72 67 65 74 ckages.as.$suggestion).{.$target
692e0 20 3d 20 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 3b 0a 69 66 20 28 24 69 .=.$suggestion['target'];.if.($i
69300 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 66 75 6e nstalledRepo->filterPackages(fun
69320 63 74 69 6f 6e 20 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 ction.(PackageInterface.$package
69340 29 20 75 73 65 20 28 24 74 61 72 67 65 74 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 ).use.($target).{.if.(in_array($
69360 74 61 72 67 65 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 29 29 20 7b target,.$package->getNames())).{
69380 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f .return.false;.}.})).{.$this->io
693a0 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 6f 75 72 63 65 27 5d 2e 27 20 ->write($suggestion['source'].'.
693c0 73 75 67 67 65 73 74 73 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 73 75 67 67 65 73 74 69 6f suggests.installing.'.$suggestio
693e0 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 20 28 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 72 65 n['target'].'.('.$suggestion['re
69400 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 ason'].')');.}.}..if.(!$this->dr
69420 79 52 75 6e 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 7c 7c 20 21 yRun).{...if.($this->update.||.!
69440 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 75 70 $this->locker->isLocked()).{.$up
69460 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 73 65 74 4c 6f datedLock.=.$this->locker->setLo
69480 63 6b 44 61 74 61 28 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ckData(.$this->repositoryManager
694a0 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 ->getLocalRepository()->getPacka
694c0 67 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 72 ges(),.$this->devMode.?.$this->r
694e0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 epositoryManager->getLocalDevRep
69500 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 3a 20 6e 75 6c 6c 2c ository()->getPackages().:.null,
69520 0a 24 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 .$aliases,.$this->package->getMi
69540 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 nimumStability(),.$this->package
69560 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 29 3b 0a 69 66 20 28 24 75 70 ->getStabilityFlags().);.if.($up
69580 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c datedLock).{.$this->io->write('<
695a0 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b info>Writing.lock.file</info>');
695c0 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e .}.}....$this->io->write('<info>
695e0 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e Generating.autoload.files</info>
69600 27 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 ');.$localRepos.=.new.CompositeR
69620 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 epository($this->repositoryManag
69640 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 24 74 68 er->getLocalRepositories());.$th
69660 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 74 68 69 is->autoloadGenerator->dump($thi
69680 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 73 2c 20 24 74 68 69 73 2d 3e 70 s->config,.$localRepos,.$this->p
696a0 61 63 6b 61 67 65 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ackage,.$this->installationManag
696c0 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 er,.'composer',.$this->optimizeA
696e0 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 utoloader);..if.($this->runScrip
69700 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 ts).{...$eventName.=.$this->upda
69720 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 te.?.ScriptEvents::POST_UPDATE_C
69740 4d 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f MD.:.ScriptEvents::POST_INSTALL_
69760 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 CMD;.$this->eventDispatcher->dis
69780 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d patchCommandEvent($eventName);.}
697a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .}..return.true;.}..protected.fu
697c0 6e 63 74 69 6f 6e 20 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e nction.doInstall($localRepo,.$in
697e0 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 64 65 76 4d 6f 64 65 20 stalledRepo,.$aliases,.$devMode.
69800 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 =.false).{.$minimumStability.=.$
69820 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 this->package->getMinimumStabili
69840 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 ty();.$stabilityFlags.=.$this->p
69860 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 0a 20 ackage->getStabilityFlags();....
69880 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 21 24 $installFromLock.=.false;.if.(!$
698a0 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 this->update.&&.$this->locker->i
698c0 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 46 72 6f sLocked($devMode)).{.$installFro
698e0 6d 4c 6f 63 6b 20 3d 20 74 72 75 65 3b 0a 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 mLock.=.true;.$lockedRepository.
69900 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 =.$this->locker->getLockedReposi
69920 74 6f 72 79 28 24 64 65 76 4d 6f 64 65 29 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 tory($devMode);.$minimumStabilit
69940 79 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 y.=.$this->locker->getMinimumSta
69960 62 69 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 bility();.$stabilityFlags.=.$thi
69980 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a s->locker->getStabilityFlags();.
699a0 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 }..$this->whitelistUpdateDepende
699c0 6e 63 69 65 73 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 24 64 65 76 4d 6f 64 65 2c 0a 24 74 68 ncies(.$localRepo,.$devMode,.$th
699e0 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 0a 24 74 68 69 is->package->getRequires(),.$thi
69a00 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a s->package->getDevRequires().);.
69a20 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 4c 6f 61 64 69 6e 67 .$this->io->write('<info>Loading
69a40 20 63 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 69 74 68 20 70 61 63 6b .composer.repositories.with.pack
69a60 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 0a 20 24 70 6f age.information</info>');....$po
69a80 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c ol.=.new.Pool($minimumStability,
69aa0 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 .$stabilityFlags);.$pool->addRep
69ac0 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 ository($installedRepo,.$aliases
69ae0 29 3b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 6f 6f 6c );.if.($installFromLock).{.$pool
69b00 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 ->addRepository($lockedRepositor
69b20 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 y,.$aliases);.}..if.(!$installFr
69b40 6f 6d 4c 6f 63 6b 20 7c 7c 20 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 43 6f 6d 70 omLock.||.!$this->locker->isComp
69b60 6c 65 74 65 46 6f 72 6d 61 74 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 72 65 70 6f 73 69 74 leteFormat($devMode)).{.$reposit
69b80 6f 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ories.=.$this->repositoryManager
69ba0 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 ->getRepositories();.foreach.($r
69bc0 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 epositories.as.$repository).{.$p
69be0 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f 72 79 2c 20 ool->addRepository($repository,.
69c00 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 6e 65 77 $aliases);.}.}....$request.=.new
69c20 20 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 .Request($pool);..$constraint.=.
69c40 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 new.VersionConstraint('=',.$this
69c60 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 ->package->getVersion());.$const
69c80 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 70 61 raint->setPrettyString($this->pa
69ca0 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 ckage->getPrettyVersion());.$req
69cc0 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 uest->install($this->package->ge
69ce0 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 tName(),.$constraint);..if.($thi
69d00 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c s->update).{.$this->io->write('<
69d20 69 6e 66 6f 3e 55 70 64 61 74 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f 64 65 20 3f 20 27 64 65 76 info>Updating.'.($devMode.?.'dev
69d40 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a .':.'').'dependencies</info>');.
69d60 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c 6c 28 29 3b 0a 0a 24 6c 69 6e 6b 73 20 .$request->updateAll();..$links.
69d80 3d 20 24 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 =.$devMode.?.$this->package->get
69da0 44 65 76 52 65 71 75 69 72 65 73 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e DevRequires().:.$this->package->
69dc0 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 getRequires();..foreach.($links.
69de0 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c as.$link).{.$request->install($l
69e00 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 ink->getTarget(),.$link->getCons
69e20 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 traint());.}.}.elseif.($installF
69e40 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e romLock).{.$this->io->write('<in
69e60 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 28 24 64 65 76 4d 6f 64 65 20 3f 20 27 64 65 76 fo>Installing.'.($devMode.?.'dev
69e80 20 27 3a 20 27 27 29 2e 27 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 72 6f 6d 20 6c 6f 63 6b 20 .':.'').'dependencies.from.lock.
69ea0 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b file</info>');..if.(!$this->lock
69ec0 65 72 2d 3e 69 73 46 72 65 73 68 28 29 20 26 26 20 21 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 74 er->isFresh().&&.!$devMode).{.$t
69ee0 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 72 20 6c 6f his->io->write('<warning>Your.lo
69f00 63 6b 20 66 69 6c 65 20 69 73 20 6f 75 74 20 6f 66 20 73 79 6e 63 20 77 69 74 68 20 79 6f 75 72 ck.file.is.out.of.sync.with.your
69f20 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 2e 70 68 .composer.json,.run."composer.ph
69f40 61 72 20 75 70 64 61 74 65 22 20 74 6f 20 75 70 64 61 74 65 20 64 65 70 65 6e 64 65 6e 63 69 65 ar.update".to.update.dependencie
69f60 73 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b s</warning>');.}..foreach.($lock
69f80 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 edRepository->getPackages().as.$
69fa0 70 61 63 6b 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e package).{.$version.=.$package->
69fc0 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 6c 69 61 73 65 73 getVersion();.if.(isset($aliases
69fe0 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 [$package->getName()][$version])
6a000 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 ).{.$version.=.$aliases[$package
6a020 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 5b 27 61 6c 69 61 73 5f 6e 6f ->getName()][$version]['alias_no
6a040 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 rmalized'];.}.$constraint.=.new.
6a060 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 VersionConstraint('=',.$version)
6a080 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 ;.$constraint->setPrettyString($
6a0a0 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 package->getPrettyVersion());.$r
6a0c0 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d equest->install($package->getNam
6a0e0 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 e(),.$constraint);.}.}.else.{.$t
6a100 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 his->io->write('<info>Installing
6a120 20 27 2e 28 24 64 65 76 4d 6f 64 65 20 3f 20 27 64 65 76 20 27 3a 20 27 27 29 2e 27 64 65 70 65 .'.($devMode.?.'dev.':.'').'depe
6a140 6e 64 65 6e 63 69 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 64 65 ndencies</info>');..$links.=.$de
6a160 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 vMode.?.$this->package->getDevRe
6a180 71 75 69 72 65 73 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 quires().:.$this->package->getRe
6a1a0 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c quires();..foreach.($links.as.$l
6a1c0 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e ink).{.$request->install($link->
6a1e0 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e getTarget(),.$link->getConstrain
6a200 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 t());.}.}........foreach.($insta
6a220 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b lledRepo->getPackages().as.$pack
6a240 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f age).{.if.($package->getReposito
6a260 72 79 28 29 20 3d 3d 3d 20 24 6c 6f 63 61 6c 52 65 70 6f 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b ry().===.$localRepo).{.continue;
6a280 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e .}..$constraint.=.new.VersionCon
6a2a0 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f straint('=',.$package->getVersio
6a2c0 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 n());.$constraint->setPrettyStri
6a2e0 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 ng($package->getPrettyVersion())
6a300 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 ;.$request->install($package->ge
6a320 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 tName(),.$constraint);.}......if
6a340 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 .($this->update.&&.$this->update
6a360 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e Whitelist).{.if.($this->locker->
6a380 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 isLocked($devMode)).{.$currentPa
6a3a0 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 ckages.=.$this->locker->getLocke
6a3c0 64 52 65 70 6f 73 69 74 6f 72 79 28 24 64 65 76 4d 6f 64 65 29 2d 3e 67 65 74 50 61 63 6b 61 67 dRepository($devMode)->getPackag
6a3e0 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 es();.}.else.{.$currentPackages.
6a400 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b =.$installedRepo->getPackages();
6a420 0a 7d 0a 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 .}....$candidates.=.array();.for
6a440 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 63 61 6e 64 69 64 each.($links.as.$link).{.$candid
6a460 61 74 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b ates[$link->getTarget()].=.true;
6a480 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 .}.foreach.($localRepo->getPacka
6a4a0 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 ges().as.$package).{.$candidates
6a4c0 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a [$package->getName()].=.true;.}.
6a4e0 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 ...foreach.($candidates.as.$cand
6a500 69 64 61 74 65 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 75 72 idate.=>.$dummy).{.foreach.($cur
6a520 72 65 6e 74 50 61 63 6b 61 67 65 73 20 61 73 20 24 63 75 72 50 61 63 6b 61 67 65 29 20 7b 0a 69 rentPackages.as.$curPackage).{.i
6a540 66 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 63 f.($curPackage->getName().===.$c
6a560 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 andidate).{.if.($this->isUpdatea
6a580 62 6c 65 28 24 63 75 72 50 61 63 6b 61 67 65 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 63 ble($curPackage)).{.break;.}..$c
6a5a0 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e onstraint.=.new.VersionConstrain
6a5c0 74 28 27 3d 27 2c 20 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 t('=',.$curPackage->getVersion()
6a5e0 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 );.$request->install($curPackage
6a600 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 7d 0a 7d ->getName(),.$constraint);.}.}.}
6a620 0a 7d 0a 0a 0a 20 24 70 6f 6c 69 63 79 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 .}....$policy.=.new.DefaultPolic
6a640 79 28 29 3b 0a 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 y();.$solver.=.new.Solver($polic
6a660 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 0a 0a 20 74 72 y,.$pool,.$installedRepo);....tr
6a680 79 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 y.{.$operations.=.$solver->solve
6a6a0 28 24 72 65 71 75 65 73 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f 62 6c ($request);.}.catch.(SolverProbl
6a6c0 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 emsException.$e).{.$this->io->wr
6a6e0 69 74 65 28 27 3c 65 72 72 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 63 6f ite('<error>Your.requirements.co
6a700 75 6c 64 20 6e 6f 74 20 62 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 6e 20 69 6e 73 74 61 6c uld.not.be.resolved.to.an.instal
6a720 6c 61 62 6c 65 20 73 65 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f 65 72 72 6f 72 3e 27 29 lable.set.of.packages.</error>')
6a740 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 ;.$this->io->write($e->getMessag
6a760 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 76 e());..return.false;.}..if.($dev
6a780 4d 6f 64 65 29 20 7b 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 Mode).{.....foreach.($operations
6a7a0 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6f 70 29 20 7b 0a 69 66 20 28 27 75 70 64 61 74 65 .as.$index.=>.$op).{.if.('update
6a7c0 27 20 3d 3d 3d 20 24 6f 70 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 26 26 20 24 6f 70 2d 3e '.===.$op->getJobType().&&.$op->
6a7e0 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 getInitialPackage()->getUniqueNa
6a800 6d 65 28 29 20 3d 3d 3d 20 24 6f 70 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 me().===.$op->getTargetPackage()
6a820 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 0a 26 26 20 24 6f 70 2d 3e 67 65 74 49 6e 69 ->getUniqueName().&&.$op->getIni
6a840 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 tialPackage()->getSourceReferenc
6a860 65 28 29 20 3d 3d 3d 20 24 6f 70 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d e().===.$op->getTargetPackage()-
6a880 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 26 26 20 24 6f 70 2d 3e 67 65 >getSourceReference().&&.$op->ge
6a8a0 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 tInitialPackage()->getDistRefere
6a8c0 6e 63 65 28 29 20 3d 3d 3d 20 24 6f 70 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 nce().===.$op->getTargetPackage(
6a8e0 29 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 29 20 7b 0a 75 6e 73 65 74 28 )->getDistReference().).{.unset(
6a900 24 6f 70 65 72 61 74 69 6f 6e 73 5b 24 69 6e 64 65 78 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 $operations[$index]);.}.}.}....f
6a920 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 oreach.($localRepo->getPackages(
6a940 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 ).as.$package).{...if.(!$package
6a960 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 70 ->isDev()).{.continue;.}..if.($p
6a980 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 ackage.instanceof.AliasPackage).
6a9a0 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 {.continue;.}....foreach.($opera
6a9c0 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 28 28 27 75 70 64 tions.as.$operation).{.if.(('upd
6a9e0 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 ate'.===.$operation->getJobType(
6aa00 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 ).&&.$operation->getInitialPacka
6aa20 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c 20 28 27 75 6e 69 ge()->equals($package)).||.('uni
6aa40 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 nstall'.===.$operation->getJobTy
6aa60 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 pe().&&.$operation->getPackage()
6aa80 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 ->equals($package)).).{.continue
6aaa0 20 32 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 .2;.}.}....if.($installFromLock)
6aac0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 66 .{.foreach.($lockedRepository->f
6aae0 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 indPackages($package->getName())
6ab00 20 61 73 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 0a 24 6c 6f 63 6b .as.$lockedPackage).{.if.(.$lock
6ab20 65 64 50 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 0a 26 26 20 28 0a 28 24 6c 6f 63 6b 65 64 edPackage->isDev().&&.(.($locked
6ab40 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 Package->getSourceReference().&&
6ab60 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 .$lockedPackage->getSourceRefere
6ab80 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 nce().!==.$package->getSourceRef
6aba0 65 72 65 6e 63 65 28 29 29 0a 7c 7c 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 erence()).||.($lockedPackage->ge
6abc0 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 tDistReference().&&.$lockedPacka
6abe0 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b ge->getDistReference().!==.$pack
6ac00 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 0a 29 20 7b 0a 24 age->getDistReference()).).).{.$
6ac20 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 operations[].=.new.UpdateOperati
6ac40 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 3b 0a 0a 62 on($package,.$lockedPackage);..b
6ac60 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e reak;.}.}.}.else.{...if.($this->
6ac80 75 70 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 update).{...if.($this->updateWhi
6aca0 74 65 6c 69 73 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 telist.&&.!$this->isUpdateable($
6acc0 70 61 63 6b 61 67 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6d 61 74 63 package)).{.continue;.}....$matc
6ace0 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 hes.=.$pool->whatProvides($packa
6ad00 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 ge->getName(),.new.VersionConstr
6ad20 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 aint('=',.$package->getVersion()
6ad40 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 ));.foreach.($matches.as.$index.
6ad60 3d 3e 20 24 6d 61 74 63 68 29 20 7b 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 61 =>.$match).{...if.(!in_array($ma
6ad80 74 63 68 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 72 65 70 6f 73 69 74 6f 72 tch->getRepository(),.$repositor
6ada0 69 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e ies,.true)).{.unset($matches[$in
6adc0 64 65 78 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 dex]);.continue;.}....if.($match
6ade0 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d ->getName().!==.$package->getNam
6ae00 65 28 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 3b 0a e()).{.unset($matches[$index]);.
6ae20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 continue;.}..$matches[$index].=.
6ae40 24 6d 61 74 63 68 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 $match->getId();.}....if.($match
6ae60 65 73 20 26 26 20 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 es.&&.$matches.=.$policy->select
6ae80 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c PreferedPackages($pool,.array(),
6aea0 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f .$matches)).{.$newPackage.=.$poo
6aec0 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6d 61 74 63 68 65 73 5b 30 5d 29 l->literalToPackage($matches[0])
6aee0 3b 0a 0a 69 66 20 28 24 6e 65 77 50 61 63 6b 61 67 65 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 ;..if.($newPackage.&&.$newPackag
6af00 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 e->getSourceReference().!==.$pac
6af20 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6f kage->getSourceReference()).{.$o
6af40 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f perations[].=.new.UpdateOperatio
6af60 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 6e 65 77 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a n($package,.$newPackage);.}.}.}.
6af80 0a 0a 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d ...$references.=.$this->package-
6afa0 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 >getReferences();..if.(isset($re
6afc0 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 ferences[$package->getName()]).&
6afe0 26 20 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 &.$references[$package->getName(
6b000 29 5d 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 )].!==.$package->getSourceRefere
6b020 6e 63 65 28 29 29 20 7b 0a 0a 20 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 nce()).{...$operations[].=.new.U
6b040 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 63 6c 6f 6e 65 20 24 pdateOperation($package,.clone.$
6b060 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 69 package);.}.}.}....if.(!$operati
6b080 6f 6e 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 4e 6f 74 68 69 6e 67 ons).{.$this->io->write('Nothing
6b0a0 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 0a 66 6f 72 65 .to.install.or.update');.}..fore
6b0c0 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 ach.($operations.as.$operation).
6b0e0 7b 0a 0a 20 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e {...if.('install'.===.$operation
6b100 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 ->getJobType()).{.foreach.($oper
6b120 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 75 67 67 65 73 74 73 ation->getPackage()->getSuggests
6b140 28 29 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 ().as.$target.=>.$reason).{.$thi
6b160 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a s->suggestedPackages[].=.array(.
6b180 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 'source'.=>.$operation->getPacka
6b1a0 67 65 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 74 61 72 67 65 74 27 20 ge()->getPrettyName(),.'target'.
6b1c0 3d 3e 20 24 74 61 72 67 65 74 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c =>.$target,.'reason'.=>.$reason,
6b1e0 0a 29 3b 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 .);.}.}..$event.=.'Composer\Scri
6b200 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 50 41 43 4b 41 47 45 5f 27 2e 73 pt\ScriptEvents::PRE_PACKAGE_'.s
6b220 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 trtoupper($operation->getJobType
6b240 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 69 ());.if.(defined($event).&&.$thi
6b260 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 s->runScripts).{.$this->eventDis
6b280 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 6f patcher->dispatchPackageEvent(co
6b2a0 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a nstant($event),.$operation);.}..
6b2c0 0a 20 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b ..if.(!$installFromLock).{.$pack
6b2e0 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 age.=.null;.if.('update'.===.$op
6b300 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 eration->getJobType()).{.$packag
6b320 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 e.=.$operation->getTargetPackage
6b340 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 ();.}.elseif.('install'.===.$ope
6b360 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ration->getJobType()).{.$package
6b380 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 .=.$operation->getPackage();.}.i
6b3a0 66 20 28 24 70 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 f.($package.&&.$package->isDev()
6b3c0 29 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 ).{.$references.=.$this->package
6b3e0 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 ->getReferences();.if.(isset($re
6b400 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 ferences[$package->getName()])).
6b420 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 {.$package->setSourceReference($
6b440 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 references[$package->getName()])
6b460 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 ;.$package->setDistReference($re
6b480 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a ferences[$package->getName()]);.
6b4a0 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 20 7c 7c 20 28 24 }.}.}....if.($this->dryRun.||.($
6b4c0 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f this->verbose.&&.false.!==.strpo
6b4e0 73 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 27 41 6c 69 s($operation->getJobType(),.'Ali
6b500 61 73 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 2d 20 27 as'))).{.$this->io->write('..-.'
6b520 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c ...$operation);.}..$this->instal
6b540 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 65 78 65 63 75 74 65 28 24 6c 6f 63 61 6c 52 65 70 lationManager->execute($localRep
6b560 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f o,.$operation);..$event.=.'Compo
6b580 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 50 41 ser\Script\ScriptEvents::POST_PA
6b5a0 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 CKAGE_'.strtoupper($operation->g
6b5c0 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 etJobType());.if.(defined($event
6b5e0 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d ).&&.$this->runScripts).{.$this-
6b600 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 >eventDispatcher->dispatchPackag
6b620 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 6f 70 65 72 61 74 eEvent(constant($event),.$operat
6b640 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 ion);.}..if.(!$this->dryRun).{.$
6b660 6c 6f 63 61 6c 52 65 70 6f 2d 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 localRepo->write();.}.}..return.
6b680 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f true;.}..private.function.getRoo
6b6a0 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 tAliases().{.if.(!$this->update.
6b6c0 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a &&.$this->locker->isLocked()).{.
6b6e0 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 $aliases.=.$this->locker->getAli
6b700 61 73 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 ases();.}.else.{.$aliases.=.$thi
6b720 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 24 6e 6f s->package->getAliases();.}..$no
6b740 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 rmalizedAliases.=.array();..fore
6b760 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 6f 72 6d ach.($aliases.as.$alias).{.$norm
6b780 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 5b 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 5d alizedAliases[$alias['package']]
6b7a0 5b 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c [$alias['version']].=.array(.'al
6b7c0 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f ias'.=>.$alias['alias'],.'alias_
6b7e0 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 normalized'.=>.$alias['alias_nor
6b800 6d 61 6c 69 7a 65 64 27 5d 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a malized'].);.}..return.$normaliz
6b820 65 64 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 edAliases;.}..private.function.a
6b840 6c 69 61 73 50 6c 61 74 66 6f 72 6d 50 61 63 6b 61 67 65 73 28 50 6c 61 74 66 6f 72 6d 52 65 70 liasPlatformPackages(PlatformRep
6b860 6f 73 69 74 6f 72 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 ository.$platformRepo,.$aliases)
6b880 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 .{.foreach.($aliases.as.$package
6b8a0 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 .=>.$versions).{.foreach.($versi
6b8c0 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 ons.as.$version.=>.$alias).{.$pa
6b8e0 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b ckages.=.$platformRepo->findPack
6b900 61 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 66 6f 72 65 61 63 ages($package,.$version);.foreac
6b920 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 h.($packages.as.$package).{.$pac
6b940 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 kage->setAlias($alias['alias_nor
6b960 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 74 74 79 41 malized']);.$package->setPrettyA
6b980 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 lias($alias['alias']);.$aliasPac
6b9a0 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 kage.=.new.AliasPackage($package
6b9c0 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 ,.$alias['alias_normalized'],.$a
6b9e0 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 lias['alias']);.$aliasPackage->s
6ba00 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 70 6c 61 74 66 etRootPackageAlias(true);.$platf
6ba20 6f 72 6d 52 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 ormRepo->addPackage($aliasPackag
6ba40 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 e);.}.}.}.}..private.function.is
6ba60 55 70 64 61 74 65 61 62 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 Updateable(PackageInterface.$pac
6ba80 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c kage).{.if.(!$this->updateWhitel
6baa0 69 73 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e ist).{.throw.new.\LogicException
6bac0 28 27 69 73 55 70 64 61 74 65 61 62 6c 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 ('isUpdateable.should.only.be.ca
6bae0 6c 6c 65 64 20 77 68 65 6e 20 61 20 77 68 69 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 lled.when.a.whitelist.is.present
6bb00 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 ');.}..return.isset($this->updat
6bb20 65 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 eWhitelist[$package->getName()])
6bb40 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ;.}..............private.functio
6bb60 6e 20 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 6c n.whitelistUpdateDependencies($l
6bb80 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 52 ocalRepo,.$devMode,.array.$rootR
6bba0 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 equires,.array.$rootDevRequires)
6bbc0 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 .{.if.(!$this->updateWhitelist).
6bbe0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 6f {.return;.}..if.($devMode).{.$ro
6bc00 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 otRequires.=.array_merge($rootRe
6bc20 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 quires,.$rootDevRequires);.}..$s
6bc40 6b 69 70 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 kipPackages.=.array();.foreach.(
6bc60 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 6b $rootRequires.as.$require).{.$sk
6bc80 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 ipPackages[$require->getTarget()
6bca0 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 ].=.true;.}..$pool.=.new.Pool;.$
6bcc0 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b pool->addRepository($localRepo);
6bce0 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 ..$seen.=.array();..foreach.($th
6bd00 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 4e is->updateWhitelist.as.$packageN
6bd20 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d 20 ame.=>.$void).{.$packageQueue.=.
6bd40 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 6f 6c 2d 3e new.\SplQueue;..foreach.($pool->
6bd60 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 61 73 20 24 64 whatProvides($packageName).as.$d
6bd80 65 70 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 epPackage).{.$packageQueue->enqu
6bda0 65 75 65 28 24 64 65 70 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 eue($depPackage);.}..while.(!$pa
6bdc0 63 6b 61 67 65 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 ckageQueue->isEmpty()).{.$packag
6bde0 65 20 3d 20 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 e.=.$packageQueue->dequeue();.if
6be00 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d .(isset($seen[$package->getId()]
6be20 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 )).{.continue;.}..$seen[$package
6be40 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 ->getId()].=.true;.$this->update
6be60 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d Whitelist[$package->getName()].=
6be80 20 74 72 75 65 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 .true;..$requires.=.$package->ge
6bea0 74 52 65 71 75 69 72 65 73 28 29 3b 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 65 tRequires();.if.($devMode).{.$re
6bec0 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 quires.=.array_merge($requires,.
6bee0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 0a $package->getDevRequires());.}..
6bf00 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 foreach.($requires.as.$require).
6bf20 7b 0a 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 {.$requirePackages.=.$pool->what
6bf40 50 72 6f 76 69 64 65 73 28 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b Provides($require->getTarget());
6bf60 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 ..foreach.($requirePackages.as.$
6bf80 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 requirePackage).{.if.(isset($ski
6bfa0 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 pPackages[$requirePackage->getNa
6bfc0 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 me()])).{.continue;.}.$packageQu
6bfe0 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d eue->enqueue($requirePackage);.}
6c000 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f .}.}.}.}.........private.functio
6c020 6e 20 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 52 65 70 6f 73 69 74 6f n.mockLocalRepositories(Reposito
6c040 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 ryManager.$rm).{.$packages.=.arr
6c060 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 65 74 75 72 6e 20 63 6c ay_map(function.($p).{.return.cl
6c080 6f 6e 65 20 24 70 3b 0a 7d 2c 20 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f one.$p;.},.$rm->getLocalReposito
6c0a0 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ry()->getPackages());.foreach.($
6c0c0 70 61 63 6b 61 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a packages.as.$key.=>.$package).{.
6c0e0 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 if.($package.instanceof.AliasPac
6c100 6b 61 67 65 29 20 7b 0a 75 6e 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 79 5d 29 3b 0a kage).{.unset($packages[$key]);.
6c120 7d 0a 7d 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 }.}.$rm->setLocalRepository(.new
6c140 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 24 70 61 63 6b 61 .InstalledArrayRepository($packa
6c160 67 65 73 29 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 ges).);..$packages.=.array_map(f
6c180 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 65 74 75 72 6e 20 63 6c 6f 6e 65 20 24 70 3b 0a unction.($p).{.return.clone.$p;.
6c1a0 7d 2c 20 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 29 2d },.$rm->getLocalDevRepository()-
6c1c0 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 >getPackages());.foreach.($packa
6c1e0 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 ges.as.$key.=>.$package).{.if.($
6c200 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 package.instanceof.AliasPackage)
6c220 20 7b 0a 75 6e 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 24 .{.unset($packages[$key]);.}.}.$
6c240 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 20 49 rm->setLocalDevRepository(.new.I
6c260 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 24 70 61 63 6b 61 67 65 nstalledArrayRepository($package
6c280 73 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 s).);.}...........public.static.
6c2a0 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c function.create(IOInterface.$io,
6c2c0 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 45 76 65 6e 74 44 69 73 70 61 74 .Composer.$composer,.EventDispat
6c2e0 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 41 75 cher.$eventDispatcher.=.null,.Au
6c300 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 toloadGenerator.$autoloadGenerat
6c320 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 or.=.null).{.$eventDispatcher.=.
6c340 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3f 3a 20 6e 65 77 20 45 76 65 6e 74 44 69 73 $eventDispatcher.?:.new.EventDis
6c360 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 24 61 75 74 6f 6c 6f patcher($composer,.$io);.$autolo
6c380 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 adGenerator.=.$autoloadGenerator
6c3a0 20 3f 3a 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 72 65 74 75 .?:.new.AutoloadGenerator;..retu
6c3c0 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 0a 24 69 6f 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 rn.new.static(.$io,.$composer->g
6c3e0 65 74 43 6f 6e 66 69 67 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 etConfig(),.$composer->getPackag
6c400 65 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 e(),.$composer->getDownloadManag
6c420 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 er(),.$composer->getRepositoryMa
6c440 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2c nager(),.$composer->getLocker(),
6c460 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 .$composer->getInstallationManag
6c480 65 72 28 29 2c 0a 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 0a 24 61 75 74 6f 6c 6f 61 er(),.$eventDispatcher,.$autoloa
6c4a0 64 47 65 6e 65 72 61 74 6f 72 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e dGenerator.);.}..public.function
6c4c0 20 73 65 74 41 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 .setAdditionalInstalledRepositor
6c4e0 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 61 64 64 69 74 69 6f 6e 61 y(RepositoryInterface.$additiona
6c500 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 lInstalledRepository).{.$this->a
6c520 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 dditionalInstalledRepository.=.$
6c540 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a additionalInstalledRepository;..
6c560 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 return.$this;.}........public.fu
6c580 6e 63 74 69 6f 6e 20 73 65 74 44 72 79 52 75 6e 28 24 64 72 79 52 75 6e 20 3d 20 74 72 75 65 29 nction.setDryRun($dryRun.=.true)
6c5a0 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 72 .{.$this->dryRun.=.(boolean).$dr
6c5c0 79 52 75 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 yRun;..return.$this;.}........pu
6c5e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 blic.function.setPreferSource($p
6c600 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 referSource.=.true).{.$this->pre
6c620 66 65 72 53 6f 75 72 63 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 ferSource.=.(boolean).$preferSou
6c640 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 rce;..return.$this;.}........pub
6c660 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 lic.function.setPreferDist($pref
6c680 65 72 44 69 73 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 erDist.=.true).{.$this->preferDi
6c6a0 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 st.=.(boolean).$preferDist;..ret
6c6c0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 urn.$this;.}........public.funct
6c6e0 69 6f 6e 20 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d ion.setOptimizeAutoloader($optim
6c700 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e izeAutoloader.=.false).{.$this->
6c720 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 optimizeAutoloader.=.(boolean).$
6c740 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 optimizeAutoloader;..return.$thi
6c760 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 s;.}........public.function.setU
6c780 70 64 61 74 65 28 24 75 70 64 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 pdate($update.=.true).{.$this->u
6c7a0 70 64 61 74 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 74 65 3b 0a 0a 72 65 74 75 pdate.=.(boolean).$update;..retu
6c7c0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rn.$this;.}........public.functi
6c7e0 6f 6e 20 73 65 74 44 65 76 4d 6f 64 65 28 24 64 65 76 4d 6f 64 65 20 3d 20 74 72 75 65 29 0a 7b on.setDevMode($devMode.=.true).{
6c800 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 65 76 .$this->devMode.=.(boolean).$dev
6c820 4d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 Mode;..return.$this;.}........pu
6c840 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 24 72 75 6e blic.function.setRunScripts($run
6c860 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 Scripts.=.true).{.$this->runScri
6c880 70 74 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 72 75 6e 53 63 72 69 70 74 73 3b 0a 0a 72 65 pts.=.(boolean).$runScripts;..re
6c8a0 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 turn.$this;.}........public.func
6c8c0 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b tion.setConfig(Config.$config).{
6c8e0 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 72 65 74 75 72 .$this->config.=.$config;..retur
6c900 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$this;.}........public.functio
6c920 6e 20 73 65 74 56 65 72 62 6f 73 65 28 24 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 29 0a 7b 0a n.setVerbose($verbose.=.true).{.
6c940 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 76 65 72 62 $this->verbose.=.(boolean).$verb
6c960 6f 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ose;..return.$this;.}.........pu
6c980 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 blic.function.setUpdateWhitelist
6c9a0 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 (array.$packages).{.$this->updat
6c9c0 65 57 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 5f 66 6c 69 70 28 61 72 72 61 79 5f 6d 61 eWhitelist.=.array_flip(array_ma
6c9e0 70 28 27 73 74 72 74 6f 6c 6f 77 65 72 27 2c 20 24 70 61 63 6b 61 67 65 73 29 29 3b 0a 0a 72 65 p('strtolower',.$packages));..re
6ca00 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 turn.$this;.}...........public.f
6ca20 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 unction.disableCustomInstallers(
6ca40 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e ).{.$this->installationManager->
6ca60 64 69 73 61 62 6c 65 43 75 73 74 6f 6d 49 6e 73 74 61 6c 6c 65 72 73 28 29 3b 0a 0a 72 65 74 75 disableCustomInstallers();..retu
6ca80 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 rn.$this;.}.}.<?php../*..*.This.
6caa0 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a 0a 20 2a 20 file.is.part.of.Composer...*..*.
6cac0 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 6e 61 64 65 (c).Nils.Adermann.<naderman@nade
6cae0 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c rman.de>..*.....Jordi.Boggiano.<
6cb00 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f 72 20 74 68 j.boggiano@seld.be>..*..*.For.th
6cb20 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 20 69 6e 66 e.full.copyright.and.license.inf
6cb40 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 20 74 68 65 20 4c 49 43 45 4e 53 ormation,.please.view.the.LICENS
6cb60 45 0a 20 2a 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 20 64 69 73 74 72 69 62 75 74 65 64 20 77 E..*.file.that.was.distributed.w
6cb80 69 74 68 20 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 2a 2f 0a 0a 6e 61 6d 65 73 ith.this.source.code...*/..names
6cba0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 2f 2a 2a 0a 20 2a 20 pace.Composer\Autoload;../**..*.
6cbc0 43 6c 61 73 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 50 53 52 2d 30 20 63 ClassLoader.implements.a.PSR-0.c
6cbe0 6c 61 73 73 20 6c 6f 61 64 65 72 0a 20 2a 0a 20 2a 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 lass.loader..*..*.See.https://gi
6cc00 74 68 75 62 2e 63 6f 6d 2f 70 68 70 2d 66 69 67 2f 66 69 67 2d 73 74 61 6e 64 61 72 64 73 2f 62 thub.com/php-fig/fig-standards/b
6cc20 6c 6f 62 2f 6d 61 73 74 65 72 2f 61 63 63 65 70 74 65 64 2f 50 53 52 2d 30 2e 6d 64 0a 20 2a 0a lob/master/accepted/PSR-0.md..*.
6cc40 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 .*.....$loader.=.new.\Composer\A
6cc60 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 utoload\ClassLoader();..*..*....
6cc80 20 2f 2f 20 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 65 73 20 77 69 74 68 20 6e 61 6d 65 73 70 .//.register.classes.with.namesp
6cca0 61 63 65 73 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e aces..*.....$loader->add('Symfon
6ccc0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 52 5f 5f 2e 27 2f 63 6f 6d 70 6f 6e 65 6e y\Component',.__DIR__.'/componen
6cce0 74 27 29 3b 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e t');..*.....$loader->add('Symfon
6cd00 79 27 2c 20 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 52 5f 5f 2e 27 2f 66 72 61 6d 65 77 6f 72 y',...........__DIR__.'/framewor
6cd20 6b 27 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 61 63 74 69 76 61 74 65 20 74 68 65 20 61 k');..*..*.....//.activate.the.a
6cd40 75 74 6f 6c 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 utoloader..*.....$loader->regist
6cd60 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 74 6f 20 65 6e 61 62 6c 65 20 73 65 61 er();..*..*.....//.to.enable.sea
6cd80 72 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 28 65 67 2e 20 66 6f 72 rching.the.include.path.(eg..for
6cda0 20 50 45 41 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e .PEAR.packages)..*.....$loader->
6cdc0 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 20 2a 0a 20 2a 20 49 setUseIncludePath(true);..*..*.I
6cde0 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 74 72 79 20 74 6f 20 75 73 n.this.example,.if.you.try.to.us
6ce00 65 20 61 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 e.a.class.in.the.Symfony\Compone
6ce20 6e 74 0a 20 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 63 68 nt..*.namespace.or.one.of.its.ch
6ce40 69 6c 64 72 65 6e 20 28 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c ildren.(Symfony\Component\Consol
6ce60 65 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 2a 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 e.for.instance),..*.the.autoload
6ce80 65 72 20 77 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 63 6c 61 73 73 er.will.first.look.for.the.class
6cea0 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 2f 0a 20 2a 20 64 69 72 65 63 74 6f .under.the.component/..*.directo
6cec0 72 79 2c 20 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 65 6e 20 66 61 6c 6c 62 61 63 6b 20 74 6f ry,.and.it.will.then.fallback.to
6cee0 20 74 68 65 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 6e 6f 74 .the.framework/.directory.if.not
6cf00 0a 20 2a 20 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 75 70 2e 0a 20 2a 0a 20 ..*.found.before.giving.up...*..
6cf20 2a 20 54 68 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e *.This.class.is.loosely.based.on
6cf40 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 72 73 61 6c 43 6c 61 73 73 4c 6f 61 64 65 .the.Symfony.UniversalClassLoade
6cf60 72 2e 0a 20 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 r...*..*.@author.Fabien.Potencie
6cf80 72 20 3c 66 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e 63 6f 6d 3e 0a 20 2a 20 40 61 75 74 68 6f r.<fabien@symfony.com>..*.@autho
6cfa0 72 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c r.Jordi.Boggiano.<j.boggiano@sel
6cfc0 64 2e 62 65 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 20 20 d.be>..*/.class.ClassLoader.{...
6cfe0 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 ..private.$prefixes.=.array();..
6d000 20 20 20 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 3d 20 61 72 72 61 79 ...private.$fallbackDirs.=.array
6d020 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 ();.....private.$useIncludePath.
6d040 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d =.false;.....private.$classMap.=
6d060 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .array();......public.function.g
6d080 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 etPrefixes().....{.........retur
6d0a0 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 n.$this->prefixes;.....}......pu
6d0c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a blic.function.getFallbackDirs().
6d0e0 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c ....{.........return.$this->fall
6d100 62 61 63 6b 44 69 72 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 backDirs;.....}......public.func
6d120 74 69 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 tion.getClassMap().....{........
6d140 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a .return.$this->classMap;.....}..
6d160 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 63 6c 61 ..../**......*.@param.array.$cla
6d180 73 73 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c 65 6e 61 6d 65 20 6d 61 70 0a 20 20 20 20 ssMap.Class.to.filename.map.....
6d1a0 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 .*/.....public.function.addClass
6d1c0 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 Map(array.$classMap).....{......
6d1e0 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 ...if.($this->classMap).{.......
6d200 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 ......$this->classMap.=.array_me
6d220 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b rge($this->classMap,.$classMap);
6d240 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 .........}.else.{.............$t
6d260 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 20 his->classMap.=.$classMap;......
6d280 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 ...}.....}....../**......*.Regis
6d2a0 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 2a 0a 20 20 20 ters.a.set.of.classes......*....
6d2c0 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 ..*.@param.string.......$prefix.
6d2e0 54 68 65 20 63 6c 61 73 73 65 73 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d The.classes.prefix......*.@param
6d300 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 54 68 65 20 6c 6f 63 61 74 69 .array|string.$paths..The.locati
6d320 6f 6e 28 73 29 20 6f 66 20 74 68 65 20 63 6c 61 73 73 65 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 on(s).of.the.classes......*/....
6d340 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 .public.function.add($prefix,.$p
6d360 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 aths).....{.........if.(!$prefix
6d380 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 ).{.............foreach.((array)
6d3a0 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .$paths.as.$path).{.............
6d3c0 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 5b 5d 20 3d 20 24 70 61 74 ....$this->fallbackDirs[].=.$pat
6d3e0 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 h;.............}..............re
6d400 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 turn;.........}.........if.(isse
6d420 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 t($this->prefixes[$prefix])).{..
6d440 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 ...........$this->prefixes[$pref
6d460 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ix].=.array_merge(..............
6d480 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 ...$this->prefixes[$prefix],....
6d4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 .............(array).$paths.....
6d4c0 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 ........);.........}.else.{.....
6d4e0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d ........$this->prefixes[$prefix]
6d500 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 .=.(array).$paths;.........}....
6d520 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 .}....../**......*.Turns.on.sear
6d540 63 68 69 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 66 6f 72 20 63 6c 61 73 73 ching.the.include.path.for.class
6d560 20 66 69 6c 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f .files.......*......*.@param.boo
6d580 6c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 l.$useIncludePath......*/.....pu
6d5a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 blic.function.setUseIncludePath(
6d5c0 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 $useIncludePath).....{.........$
6d5e0 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 this->useIncludePath.=.$useInclu
6d600 64 65 50 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 61 dePath;.....}....../**......*.Ca
6d620 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 61 75 74 6f 6c 6f n.be.used.to.check.if.the.autolo
6d640 61 64 65 72 20 75 73 65 73 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 74 6f 20 63 68 ader.uses.the.include.path.to.ch
6d660 65 63 6b 0a 20 20 20 20 20 2a 20 66 6f 72 20 63 6c 61 73 73 65 73 2e 0a 20 20 20 20 20 2a 0a 20 eck......*.for.classes.......*..
6d680 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 ....*.@return.bool......*/.....p
6d6a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 ublic.function.getUseIncludePath
6d6c0 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 ().....{.........return.$this->u
6d6e0 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 seIncludePath;.....}....../**...
6d700 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 61 73 20 ...*.Registers.this.instance.as.
6d720 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 an.autoloader.......*......*.@pa
6d740 72 61 6d 20 62 6f 6f 6c 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 ram.bool.$prepend.Whether.to.pre
6d760 70 65 6e 64 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 6f 72 20 6e 6f 74 0a 20 20 20 20 20 pend.the.autoloader.or.not......
6d780 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 */.....public.function.register(
6d7a0 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 $prepend.=.false).....{.........
6d7c0 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 spl_autoload_register(array($thi
6d7e0 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 s,.'loadClass'),.true,.$prepend)
6d800 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 55 6e 72 65 67 69 73 74 ;.....}....../**......*.Unregist
6d820 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 ers.this.instance.as.an.autoload
6d840 65 72 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 er.......*/.....public.function.
6d860 75 6e 72 65 67 69 73 74 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 unregister().....{.........spl_a
6d880 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 utoload_unregister(array($this,.
6d8a0 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 'loadClass'));.....}....../**...
6d8c0 20 20 20 2a 20 4c 6f 61 64 73 20 74 68 65 20 67 69 76 65 6e 20 63 6c 61 73 73 20 6f 72 20 69 6e ...*.Loads.the.given.class.or.in
6d8e0 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 73 terface.......*......*.@param..s
6d900 74 72 69 6e 67 20 20 20 20 24 63 6c 61 73 73 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 tring....$class.The.name.of.the.
6d920 63 6c 61 73 73 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 7c 6e 75 6c 6c 20 54 class......*.@return.bool|null.T
6d940 72 75 65 2c 20 69 66 20 6c 6f 61 64 65 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 rue,.if.loaded......*/.....publi
6d960 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 c.function.loadClass($class)....
6d980 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 .{.........if.($file.=.$this->fi
6d9a0 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e ndFile($class)).{.............in
6d9c0 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e clude.$file;..............return
6d9e0 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a .true;.........}.....}....../**.
6da00 20 20 20 20 20 2a 20 46 69 6e 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c .....*.Finds.the.path.to.the.fil
6da20 65 20 77 68 65 72 65 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 e.where.the.class.is.defined....
6da40 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 ...*......*.@param.string.$class
6da60 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 .The.name.of.the.class......*...
6da80 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 7c 6e 75 6c 6c 20 54 68 65 20 70 61 74 ...*.@return.string|null.The.pat
6daa0 68 2c 20 69 66 20 66 6f 75 6e 64 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 h,.if.found......*/.....public.f
6dac0 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 unction.findFile($class).....{..
6dae0 20 20 20 20 20 20 20 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a .......if.('\\'.==.$class[0]).{.
6db00 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 ............$class.=.substr($cla
6db20 73 73 2c 20 31 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 ss,.1);.........}..........if.(i
6db40 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b sset($this->classMap[$class])).{
6db60 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 .............return.$this->class
6db80 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 Map[$class];.........}..........
6dba0 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6c if.(false.!==.$pos.=.strrpos($cl
6dbc0 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 61 6d ass,.'\\')).{.............//.nam
6dbe0 65 73 70 61 63 65 64 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 espaced.class.name.............$
6dc00 63 6c 61 73 73 50 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 27 2c 20 44 49 classPath.=.str_replace('\\',.DI
6dc20 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 RECTORY_SEPARATOR,.substr($class
6dc40 2c 20 30 2c 20 24 70 6f 73 29 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f ,.0,.$pos))...DIRECTORY_SEPARATO
6dc60 52 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 R;.............$className.=.subs
6dc80 74 72 28 24 63 6c 61 73 73 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 tr($class,.$pos.+.1);.........}.
6dca0 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 else.{.............//.PEAR-like.
6dcc0 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 50 61 74 class.name.............$classPat
6dce0 68 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 h.=.null;.............$className
6dd00 20 3d 20 24 63 6c 61 73 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 63 .=.$class;.........}..........$c
6dd20 6c 61 73 73 50 61 74 68 20 2e 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 27 2c 20 44 49 52 lassPath..=.str_replace('_',.DIR
6dd40 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 63 6c 61 73 73 4e 61 6d 65 29 20 2e 20 ECTORY_SEPARATOR,.$className)...
6dd60 27 2e 70 68 70 27 3b 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d '.php';..........foreach.($this-
6dd80 3e 70 72 65 66 69 78 65 73 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b >prefixes.as.$prefix.=>.$dirs).{
6dda0 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 .............if.(0.===.strpos($c
6ddc0 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lass,.$prefix)).{...............
6dde0 20 20 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 ..foreach.($dirs.as.$dir).{.....
6de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 ................if.(file_exists(
6de20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c $dir...DIRECTORY_SEPARATOR...$cl
6de40 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 assPath)).{.....................
6de60 20 20 20 20 72 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 ....return.$dir...DIRECTORY_SEPA
6de80 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 RATOR...$classPath;.............
6dea0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ........}.................}.....
6dec0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 66 6f 72 ........}.........}..........for
6dee0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 61 73 20 24 64 69 each.($this->fallbackDirs.as.$di
6df00 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 r).{.............if.(file_exists
6df20 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 ($dir...DIRECTORY_SEPARATOR...$c
6df40 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 lassPath)).{.................ret
6df60 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e urn.$dir...DIRECTORY_SEPARATOR..
6df80 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 .$classPath;.............}......
6dfa0 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c ...}..........if.($this->useIncl
6dfc0 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 udePath.&&.$file.=.stream_resolv
6dfe0 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 20 20 e_include_path($classPath)).{...
6e000 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 ..........return.$file;.........
6e020 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 }..........return.$this->classMa
6e040 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 7d 0a 5b 0a 20 20 20 p[$class].=.false;.....}.}.[....
6e060 20 22 41 46 4c 2d 31 2e 31 22 2c 20 22 41 46 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 ."AFL-1.1",."AFL-1.2",."AFL-2.0"
6e080 2c 20 22 41 46 4c 2d 32 2e 31 22 2c 20 22 41 46 4c 2d 33 2e 30 22 2c 20 22 41 50 4c 2d 31 2e 30 ,."AFL-2.1",."AFL-3.0",."APL-1.0
6e0a0 22 2c 0a 20 20 20 20 22 41 4e 54 4c 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 30 22 2c ",....."ANTLR-PD",."Apache-1.0",
6e0c0 20 22 41 70 61 63 68 65 2d 31 2e 31 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 30 22 2c 20 22 41 50 ."Apache-1.1",."Apache-2.0",."AP
6e0e0 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 41 50 53 4c 2d 31 2e 31 22 2c 20 22 41 50 53 4c 2d 31 SL-1.0",....."APSL-1.1",."APSL-1
6e100 2e 32 22 2c 20 22 41 50 53 4c 2d 32 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 22 2c .2",."APSL-2.0",."Artistic-1.0",
6e120 20 22 41 72 74 69 73 74 69 63 2d 32 2e 30 22 2c 20 22 41 41 4c 22 2c 0a 20 20 20 20 22 42 53 4c ."Artistic-2.0",."AAL",....."BSL
6e140 2d 31 2e 30 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 32 2d 43 6c -1.0",."BSD-2-Clause",."BSD-2-Cl
6e160 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 ause-NetBSD",."BSD-2-Clause-Free
6e180 42 53 44 22 2c 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 BSD",....."BSD-3-Clause",."BSD-4
6e1a0 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 43 45 -Clause",."BSD-4-Clause-UC",."CE
6e1c0 43 49 4c 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 CILL-1.0",....."CECILL-1.1",."CE
6e1e0 43 49 4c 4c 2d 32 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 CILL-2.0",."CECILL-B",."CECILL-C
6e200 22 2c 20 22 43 6c 41 72 74 69 73 74 69 63 22 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f ",."ClArtistic",....."CNRI-Pytho
6e220 6e 2d 47 50 4c 2d 43 6f 6d 70 61 74 69 62 6c 65 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 n-GPL-Compatible",."CNRI-Python"
6e240 2c 20 22 43 44 44 4c 2d 31 2e 30 22 2c 20 22 43 44 44 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 ,."CDDL-1.0",."CDDL-1.1",....."C
6e260 50 41 4c 2d 31 2e 30 22 2c 20 22 43 50 4c 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 PAL-1.0",."CPL-1.0",."CATOSL-1.1
6e280 22 2c 20 22 43 43 2d 42 59 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 30 22 2c 20 22 43 43 ",."CC-BY-1.0",."CC-BY-2.0",."CC
6e2a0 2d 42 59 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 20 22 43 43 2d 42 -BY-2.5",....."CC-BY-3.0",."CC-B
6e2c0 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 Y-ND-1.0",."CC-BY-ND-2.0",."CC-B
6e2e0 59 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 Y-ND-2.5",."CC-BY-ND-3.0",....."
6e300 43 43 2d 42 59 2d 4e 43 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 30 22 2c 20 22 CC-BY-NC-1.0",."CC-BY-NC-2.0",."
6e320 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 33 2e 30 22 2c 0a 20 CC-BY-NC-2.5",."CC-BY-NC-3.0",..
6e340 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d ..."CC-BY-NC-ND-1.0",."CC-BY-NC-
6e360 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d ND-2.0",."CC-BY-NC-ND-2.5",."CC-
6e380 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d BY-NC-ND-3.0",....."CC-BY-NC-SA-
6e3a0 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 1.0",."CC-BY-NC-SA-2.0",."CC-BY-
6e3c0 4e 43 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 33 2e 30 22 2c 0a 20 NC-SA-2.5",."CC-BY-NC-SA-3.0",..
6e3e0 20 20 20 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 30 ..."CC-BY-SA-1.0",."CC-BY-SA-2.0
6e400 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 33 2e 30 ",."CC-BY-SA-2.5",."CC-BY-SA-3.0
6e420 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c ",."CC0-1.0",....."CUA-OPL-1.0",
6e440 20 22 45 50 4c 2d 31 2e 30 22 2c 20 22 65 43 6f 73 2d 32 2e 30 22 2c 20 22 45 43 4c 2d 31 2e 30 ."EPL-1.0",."eCos-2.0",."ECL-1.0
6e460 22 2c 20 22 45 43 4c 2d 32 2e 30 22 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 45 46 ",."ECL-2.0",."EFL-1.0",....."EF
6e480 4c 2d 32 2e 30 22 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 20 L-2.0",."Entessa",."ErlPL-1.1",.
6e4a0 22 45 55 44 61 74 61 67 72 69 64 22 2c 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d "EUDatagrid",."EUPL-1.0",."EUPL-
6e4c0 31 2e 31 22 2c 0a 20 20 20 20 22 46 61 69 72 22 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 1.1",....."Fair",."Frameworx-1.0
6e4e0 22 2c 20 22 41 47 50 4c 2d 33 2e 30 22 2c 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c ",."AGPL-3.0",."GFDL-1.1",."GFDL
6e500 2d 31 2e 32 22 2c 20 22 47 46 44 4c 2d 31 2e 33 22 2c 0a 20 20 20 20 22 47 50 4c 2d 31 2e 30 22 -1.2",."GFDL-1.3",....."GPL-1.0"
6e520 2c 20 22 47 50 4c 2d 31 2e 30 2b 22 2c 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e ,."GPL-1.0+",."GPL-2.0",."GPL-2.
6e540 30 2b 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 0+",....."GPL-2.0-with-autoconf-
6e560 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d exception",."GPL-2.0-with-bison-
6e580 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c exception",....."GPL-2.0-with-cl
6e5a0 61 73 73 70 61 74 68 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 asspath-exception",."GPL-2.0-wit
6e5c0 68 2d 66 6f 6e 74 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d h-font-exception",....."GPL-2.0-
6e5e0 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 20 with-GCC-exception",."GPL-3.0",.
6e600 22 47 50 4c 2d 33 2e 30 2b 22 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 "GPL-3.0+",....."GPL-3.0-with-au
6e620 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 toconf-exception",."GPL-3.0-with
6e640 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 0a 20 20 20 -GCC-exception",."LGPL-2.1",....
6e660 20 22 4c 47 50 4c 2d 32 2e 31 2b 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 22 2c 20 22 4c 47 50 4c 2d ."LGPL-2.1+",."LGPL-3.0",."LGPL-
6e680 33 2e 30 2b 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 20 3.0+",."LGPL-2.0",."LGPL-2.0+",.
6e6a0 22 67 53 4f 41 50 2d 31 2e 33 62 22 2c 0a 20 20 20 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 "gSOAP-1.3b",....."HPND",."IPL-1
6e6c0 2e 30 22 2c 20 22 49 50 41 22 2c 20 22 49 53 43 22 2c 20 22 4c 50 50 4c 2d 31 2e 30 22 2c 20 22 .0",."IPA",."ISC",."LPPL-1.0",."
6e6e0 4c 50 50 4c 2d 31 2e 31 22 2c 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 0a 20 20 20 20 22 4c 50 50 4c LPPL-1.1",."LPPL-1.2",....."LPPL
6e700 2d 31 2e 33 63 22 2c 20 22 4c 69 62 70 6e 67 22 2c 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 -1.3c",."Libpng",."LPL-1.0",."LP
6e720 4c 2d 31 2e 30 32 22 2c 20 22 4d 53 2d 50 4c 22 2c 20 22 4d 53 2d 52 4c 22 2c 20 22 4d 69 72 4f L-1.02",."MS-PL",."MS-RL",."MirO
6e740 53 22 2c 0a 20 20 20 20 22 4d 49 54 22 2c 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d 50 4c 2d S",....."MIT",."Motosoto",."MPL-
6e760 31 2e 30 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 20 22 4d 50 4c 2d 32 2e 30 22 2c 20 22 4d 75 6c 1.0",."MPL-1.1",."MPL-2.0",."Mul
6e780 74 69 63 73 22 2c 20 22 4e 41 53 41 2d 31 2e 33 22 2c 0a 20 20 20 20 22 4e 61 75 6d 65 6e 22 2c tics",."NASA-1.3",....."Naumen",
6e7a0 20 22 4e 47 50 4c 22 2c 20 22 4e 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 20 22 ."NGPL",."Nokia",."NPOSL-3.0",."
6e7c0 4e 54 50 22 2c 20 22 4f 43 4c 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 0a 20 20 NTP",."OCLC-2.0",."ODbL-1.0",...
6e7e0 20 20 22 50 44 44 4c 2d 31 2e 30 22 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 .."PDDL-1.0",."OGTSL",."OSL-1.0"
6e800 2c 20 22 4f 53 4c 2d 32 2e 30 22 2c 20 22 4f 53 4c 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 ,."OSL-2.0",."OSL-2.1",."OSL-3.0
6e820 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 38 22 2c 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 ",....."OLDAP-2.8",."OpenSSL",."
6e840 50 48 50 2d 33 2e 30 22 2c 20 22 50 48 50 2d 33 2e 30 31 22 2c 20 22 50 6f 73 74 67 72 65 53 51 PHP-3.0",."PHP-3.01",."PostgreSQ
6e860 4c 22 2c 20 22 50 79 74 68 6f 6e 2d 32 2e 30 22 2c 0a 20 20 20 20 22 51 50 4c 2d 31 2e 30 22 2c L",."Python-2.0",....."QPL-1.0",
6e880 20 22 52 50 53 4c 2d 31 2e 30 22 2c 20 22 52 50 4c 2d 31 2e 35 22 2c 20 22 52 48 65 43 6f 73 2d ."RPSL-1.0",."RPL-1.5",."RHeCos-
6e8a0 31 2e 31 22 2c 20 22 52 53 43 50 4c 22 2c 20 22 52 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 1.1",."RSCPL",."Ruby",."SAX-PD",
6e8c0 0a 20 20 20 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 31 22 2c 20 22 53 69 6d 50 ....."OFL-1.0",."OFL-1.1",."SimP
6e8e0 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 65 70 79 63 61 74 22 2c 20 22 53 75 67 61 72 43 52 4d 2d 31 L-2.0",."Sleepycat",."SugarCRM-1
6e900 2e 31 2e 33 22 2c 20 22 53 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 57 61 74 63 6f 6d 2d 31 2e .1.3",."SPL-1.0",....."Watcom-1.
6e920 30 22 2c 20 22 4e 43 53 41 22 2c 20 22 56 53 4c 2d 31 2e 30 22 2c 20 22 57 33 43 22 2c 20 22 57 0",."NCSA",."VSL-1.0",."W3C",."W
6e940 58 77 69 6e 64 6f 77 73 22 2c 20 22 58 6e 65 74 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e 31 22 Xwindows",."Xnet",."XFree86-1.1"
6e960 2c 0a 20 20 20 20 22 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 20 22 5a 69 6d ,....."YPL-1.0",."YPL-1.1",."Zim
6e980 62 72 61 2d 31 2e 33 22 2c 20 22 5a 6c 69 62 22 2c 20 22 5a 50 4c 2d 31 2e 31 22 2c 20 22 5a 50 bra-1.3",."Zlib",."ZPL-1.1",."ZP
6e9a0 4c 2d 32 2e 30 22 2c 20 22 5a 50 4c 2d 32 2e 31 22 0a 5d 7b 0a 20 20 20 20 22 6e 61 6d 65 22 3a L-2.0",."ZPL-2.1".]{....."name":
6e9c0 20 22 50 61 63 6b 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 ."Package",....."type":."object"
6e9e0 2c 0a 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 ,....."additionalProperties":.fa
6ea00 6c 73 65 2c 0a 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 lse,....."properties":.{........
6ea20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 ."name":.{............."type":."
6ea40 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f string",............."descriptio
6ea60 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 n":."Package.name,.including.'ve
6ea80 6e 64 6f 72 2d 6e 61 6d 65 2f 27 20 70 72 65 66 69 78 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ndor-name/'.prefix.",...........
6eaa0 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 .."required":.true.........},...
6eac0 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 ......"type":.{............."des
6eae0 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 74 79 70 65 2c 20 65 69 74 68 65 72 cription":."Package.type,.either
6eb00 20 27 6c 69 62 72 61 72 79 27 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 67 65 73 2c 20 .'library'.for.common.packages,.
6eb20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 66 6f 72 20 63 75 73 74 6f 6d 20 'composer-installer'.for.custom.
6eb40 69 6e 73 74 61 6c 6c 65 72 73 2c 20 27 6d 65 74 61 70 61 63 6b 61 67 65 27 20 66 6f 72 20 65 6d installers,.'metapackage'.for.em
6eb60 70 74 79 20 70 61 63 6b 61 67 65 73 2c 20 6f 72 20 61 20 63 75 73 74 6f 6d 20 74 79 70 65 20 64 pty.packages,.or.a.custom.type.d
6eb80 65 66 69 6e 65 64 20 62 79 20 77 68 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 efined.by.whatever.project.this.
6eba0 70 61 63 6b 61 67 65 20 61 70 70 6c 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 package.applies.to.",...........
6ebc0 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 .."type":."string".........},...
6ebe0 20 20 20 20 20 20 22 74 61 72 67 65 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ......"target-dir":.{...........
6ec00 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 6f 72 63 65 73 20 74 68 65 20 70 61 63 .."description":."Forces.the.pac
6ec20 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 74 6f 20 74 68 65 20 67 69 kage.to.be.installed.into.the.gi
6ec40 76 65 6e 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 75 ven.subdirectory.path..This.is.u
6ec60 73 65 64 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 50 53 52 2d 30 20 70 61 63 6b 61 67 sed.for.autoloading.PSR-0.packag
6ec80 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 69 72 20 66 75 6c es.that.do.not.contain.their.ful
6eca0 6c 20 70 61 74 68 2e 20 55 73 65 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65 73 20 66 6f 72 20 l.path..Use.forward.slashes.for.
6ecc0 63 72 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 22 2c 0a cross-platform.compatibility.",.
6ece0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 ............"type":."string"....
6ed00 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 7b .....},........."description":.{
6ed20 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 ............."type":."string",..
6ed40 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 68 6f 72 74 ..........."description":."Short
6ed60 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 .package.description.",.........
6ed80 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a ...."required":.true.........},.
6eda0 20 20 20 20 20 20 20 20 22 6b 65 79 77 6f 72 64 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ........"keywords":.{...........
6edc0 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 .."type":."array",............."
6ede0 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 items":.{................."type"
6ee00 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 :."string",................."des
6ee20 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 74 61 67 2f 6b 65 79 77 6f 72 64 20 74 68 61 74 20 74 cription":."A.tag/keyword.that.t
6ee40 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 6c 61 74 65 73 20 74 6f 2e 22 0a 20 20 20 20 20 20 20 his.package.relates.to."........
6ee60 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 .....}.........},........."homep
6ee80 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 age":.{............."type":."str
6eea0 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a ing",............."description":
6eec0 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 ."Homepage.URL.for.the.project."
6eee0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 ,............."format":."uri"...
6ef00 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 7b 0a 20 20 ......},........."version":.{...
6ef20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 .........."type":."string",.....
6ef40 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 ........"description":."Package.
6ef60 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e version,.see.http://getcomposer.
6ef80 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 6f 6e 20 66 6f 72 org/doc/04-schema.md#version.for
6efa0 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 73 2e 22 0a 20 20 .more.info.on.valid.schemes."...
6efc0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b 0a 20 20 20 20 20 ......},........."time":.{......
6efe0 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
6f000 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 72 65 6c ....."description":."Package.rel
6f020 65 61 73 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 20 6f 72 20 27 59 ease.date,.in.'YYYY-MM-DD'.or.'Y
6f040 59 59 59 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 YYY-MM-DD.HH:MM:SS'.format."....
6f060 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 .....},........."license":.{....
6f080 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 ........."type":.["string",."arr
6f0a0 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a ay"],............."description":
6f0c0 20 22 4c 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c ."License.name..Or.an.array.of.l
6f0e0 69 63 65 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 icense.names.".........},.......
6f100 20 20 22 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 .."authors":.{............."type
6f120 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 ":."array",............."descrip
6f140 74 69 6f 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e tion":."List.of.authors.that.con
6f160 74 72 69 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 tributed.to.the.package..This.is
6f180 20 74 79 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c .typically.the.main.maintainers,
6f1a0 20 6e 6f 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 .not.the.full.list.",...........
6f1c0 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 .."items":.{................."ty
6f1e0 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 pe":."object",................."
6f200 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 additionalProperties":.false,...
6f220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 .............."properties":.{...
6f240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 .................."name":.{.....
6f260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ...................."type":."str
6f280 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 ing",........................."d
6f2a0 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 61 escription":."Full.name.of.the.a
6f2c0 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uthor.",........................
6f2e0 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."required":.true...............
6f300 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d ......},....................."em
6f320 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ail":.{.........................
6f340 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "type":."string",...............
6f360 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 .........."description":."Email.
6f380 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 address.of.the.author.",........
6f3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 ................."format":."emai
6f3c0 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 l".....................},.......
6f3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 .............."homepage":.{.....
6f400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ...................."type":."str
6f420 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 ing",........................."d
6f440 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 escription":."Homepage.URL.for.t
6f460 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 he.author.",....................
6f480 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 ....."format":."uri"............
6f4a0 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........},.....................
6f4c0 22 72 6f 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "role":.{.......................
6f4e0 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."string",.............
6f500 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 ............"description":."Auth
6f520 6f 72 27 73 20 72 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 or's.role.in.the.project."......
6f540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
6f560 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 .}.............}.........},.....
6f580 20 20 20 20 22 72 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ...."require":.{............."ty
6f5a0 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 pe":."object",............."desc
6f5c0 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 ription":."This.is.a.hash.of.pac
6f5e0 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e kage.name.(keys).and.version.con
6f600 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 straints.(values).that.are.requi
6f620 72 65 64 20 74 6f 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 red.to.run.this.package.",......
6f640 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 ......."additionalProperties":.t
6f660 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 rue.........},........."replace"
6f680 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 :.{............."type":."object"
6f6a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 ,............."description":."Th
6f6c0 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 is.is.a.hash.of.package.name.(ke
6f6e0 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c ys).and.version.constraints.(val
6f700 75 65 73 29 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 ues).that.can.be.replaced.by.thi
6f720 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 s.package.",............."additi
6f740 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c onalProperties":.true.........},
6f760 0a 20 20 20 20 20 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ........."conflict":.{..........
6f780 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..."type":."object",............
6f7a0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 ."description":."This.is.a.hash.
6f7c0 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 of.package.name.(keys).and.versi
6f7e0 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e on.constraints.(values).that.con
6f800 66 6c 69 63 74 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 flict.with.this.package.",......
6f820 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 ......."additionalProperties":.t
6f840 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 rue.........},........."provide"
6f860 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 :.{............."type":."object"
6f880 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 ,............."description":."Th
6f8a0 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 is.is.a.hash.of.package.name.(ke
6f8c0 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c ys).and.version.constraints.(val
6f8e0 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 ues).that.this.package.provides.
6f900 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 in.addition.to.this.package's.na
6f920 6d 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f me.",............."additionalPro
6f940 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 perties":.true.........},.......
6f960 20 20 22 72 65 71 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 .."require-dev":.{............."
6f980 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 type":."object",............."de
6f9a0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 scription":."This.is.a.hash.of.p
6f9c0 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 ackage.name.(keys).and.version.c
6f9e0 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 onstraints.(values).that.this.pa
6fa00 63 6b 61 67 65 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 ckage.requires.for.developing.it
6fa20 20 28 74 65 73 74 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 .(testing.tools.and.such).",....
6fa40 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a ........."additionalProperties":
6fa60 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 .true.........},........."sugges
6fa80 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 t":.{............."type":."objec
6faa0 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 t",............."description":."
6fac0 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 This.is.a.hash.of.package.name.(
6fae0 6b 65 79 73 29 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 keys).and.descriptions.(values).
6fb00 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 that.this.package.suggests.work.
6fb20 77 65 6c 6c 20 77 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 well.with.it.(this.will.be.sugge
6fb40 73 74 65 64 20 74 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 sted.to.the.user.during.installa
6fb60 74 69 6f 6e 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c tion).",............."additional
6fb80 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 Properties":.true.........},....
6fba0 20 20 20 20 20 22 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ....."config":.{............."ty
6fbc0 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 pe":.["object"],............."de
6fbe0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c scription":."Composer.options.",
6fc00 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 ............."properties":.{....
6fc20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 ............."vendor-dir":.{....
6fc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
6fc60 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
6fc80 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 ion":."The.location.where.all.pa
6fca0 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 ckages.are.installed,.defaults.t
6fcc0 6f 20 5c 22 76 65 6e 64 6f 72 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d o.\"vendor\".".................}
6fce0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 ,................."bin-dir":.{..
6fd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 ..................."type":."stri
6fd20 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ng",....................."descri
6fd40 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 ption":."The.location.where.all.
6fd60 62 69 6e 61 72 69 65 73 20 61 72 65 20 6c 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f binaries.are.linked,.defaults.to
6fd80 20 5c 22 76 65 6e 64 6f 72 2f 62 69 6e 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .\"vendor/bin\"."...............
6fda0 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 63 65 73 73 2d 74 69 ..},................."process-ti
6fdc0 6d 65 6f 75 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 meout":.{....................."t
6fde0 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."integer",................
6fe00 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 74 69 6d 65 6f 75 74 ....."description":."The.timeout
6fe20 20 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 70 72 6f 63 65 73 73 20 65 78 65 63 75 74 69 6f .in.seconds.for.process.executio
6fe40 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 33 30 30 20 28 35 6d 69 6e 73 29 2e 22 0a 20 20 ns,.defaults.to.300.(5mins)."...
6fe60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............},................
6fe80 20 22 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ."notify-on-install":.{.........
6fea0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 ............"type":."boolean",..
6fec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ..................."description"
6fee0 3a 20 22 43 6f 6d 70 6f 73 65 72 20 61 6c 6c 6f 77 73 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 :."Composer.allows.repositories.
6ff00 74 6f 20 64 65 66 69 6e 65 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 55 52 4c 2c 20 73 6f to.define.a.notification.URL,.so
6ff20 20 74 68 61 74 20 74 68 65 79 20 67 65 74 20 6e 6f 74 69 66 69 65 64 20 77 68 65 6e 65 76 65 72 .that.they.get.notified.whenever
6ff40 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 74 68 61 74 20 72 65 70 6f 73 69 74 6f 72 79 20 .a.package.from.that.repository.
6ff60 69 73 20 69 6e 73 74 61 6c 6c 65 64 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 61 6c 6c 6f 77 73 is.installed..This.option.allows
6ff80 20 79 6f 75 20 74 6f 20 64 69 73 61 62 6c 65 20 74 68 61 74 20 62 65 68 61 76 69 6f 75 72 2c 20 .you.to.disable.that.behaviour,.
6ffa0 64 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 defaults.to.true."..............
6ffc0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 70 72 ...},................."github-pr
6ffe0 6f 74 6f 63 6f 6c 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 otocols":.{.....................
70000 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "type":."array",................
70020 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 ....."description":."A.list.of.p
70040 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 66 6f 72 20 67 69 74 68 75 62 2e 63 6f 6d 20 63 rotocols.to.use.for.github.com.c
70060 6c 6f 6e 65 73 2c 20 69 6e 20 70 72 69 6f 72 69 74 79 20 6f 72 64 65 72 2c 20 64 65 66 61 75 6c lones,.in.priority.order,.defaul
70080 74 73 20 74 6f 20 5b 5c 22 67 69 74 5c 22 2c 20 5c 22 68 74 74 70 73 5c 22 2c 20 5c 22 68 74 74 ts.to.[\"git\",.\"https\",.\"htt
700a0 70 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 p\"].",....................."ite
700c0 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ms":.{........................."
700e0 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 type":."string".................
70100 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ....}.................}.........
70120 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 65 78 74 72 61 22 ....}.........},........."extra"
70140 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 :.{............."type":.["object
70160 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ",."array"],............."descri
70180 70 74 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 61 20 64 61 74 61 20 74 68 ption":."Arbitrary.extra.data.th
701a0 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 62 79 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c at.can.be.used.by.custom.install
701c0 65 72 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 70 61 63 6b 61 67 65 20 6f 66 20 74 79 70 ers,.for.example,.package.of.typ
701e0 65 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 6d 75 73 74 20 68 61 76 65 20 61 e.composer-installer.must.have.a
70200 20 27 63 6c 61 73 73 27 20 6b 65 79 20 64 65 66 69 6e 69 6e 67 20 74 68 65 20 69 6e 73 74 61 6c .'class'.key.defining.the.instal
70220 6c 65 72 20 63 6c 61 73 73 20 6e 61 6d 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 ler.class.name.",............."a
70240 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 dditionalProperties":.true......
70260 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 22 3a 20 7b 0a 20 20 20 20 ...},........."autoload":.{.....
70280 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 ........"type":."object",.......
702a0 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 65 73 63 72 69 70 74 69 6f ......"description":."Descriptio
702c0 6e 20 6f 66 20 68 6f 77 20 74 68 65 20 70 61 63 6b 61 67 65 20 63 61 6e 20 62 65 20 61 75 74 6f n.of.how.the.package.can.be.auto
702e0 6c 6f 61 64 65 64 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 loaded.",............."propertie
70300 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b s":.{................."psr-0":.{
70320 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 ....................."type":."ob
70340 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ject",....................."desc
70360 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d ription":."This.is.a.hash.of.nam
70380 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 espaces.(keys).and.the.directori
703a0 65 73 20 74 68 65 79 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 es.they.can.be.found.into.(value
703c0 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 s,.can.be.arrays.of.paths).by.th
703e0 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.autoloader.",.................
70400 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 ...."additionalProperties":.true
70420 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................},.............
70440 20 20 20 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."classmap":.{...............
70460 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 ......"type":."array",..........
70480 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 ..........."description":."This.
704a0 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 is.an.array.of.directories.that.
704c0 63 6f 6e 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 contain.classes.to.be.included.i
704e0 6e 20 74 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f 63 65 n.the.class-map.generation.proce
70500 73 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 ss.".................},.........
70520 20 20 20 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........"files":.{..............
70540 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 ......."type":."array",.........
70560 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 ............"description":."This
70580 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 61 .is.an.array.of.files.that.are.a
705a0 6c 77 61 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e lways.required.on.every.request.
705c0 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ".................}.............
705e0 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6f 73 69 74 6f 72 69 }.........},........."repositori
70600 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a es":.{............."type":.["obj
70620 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 ect",."array"],............."des
70640 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 cription":."A.set.of.additional.
70660 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 65 72 65 20 70 61 63 6b 61 67 65 73 20 63 61 6e 20 repositories.where.packages.can.
70680 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f be.found.",............."additio
706a0 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a nalProperties":.true.........},.
706c0 20 20 20 20 20 20 20 20 22 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 22 3a 20 7b 0a 20 ........"minimum-stability":.{..
706e0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 5d 2c 0a 20 ..........."type":.["string"],..
70700 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6d ..........."description":."The.m
70720 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 74 68 65 20 70 61 63 6b 61 67 65 73 20 6d 75 inimum.stability.the.packages.mu
70740 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 2d 61 62 6c 65 2e 20 50 6f 73 73 st.have.to.be.install-able..Poss
70760 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 20 64 65 76 2c 20 61 6c 70 68 61 2c 20 62 65 74 ible.values.are:.dev,.alpha,.bet
70780 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 a,.RC,.stable.".........},......
707a0 20 20 20 22 62 69 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 ..."bin":.{............."type":.
707c0 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ["array"],............."descript
707e0 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 73 68 6f 75 6c ion":."A.set.of.files.that.shoul
70800 64 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 62 69 6e 61 72 69 65 73 20 61 6e 64 20 73 79 6d d.be.treated.as.binaries.and.sym
70820 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 62 69 6e 2d 64 69 72 20 28 66 72 6f 6d 20 63 6f 6e 66 69 67 linked.into.bin-dir.(from.config
70840 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 ).",............."items":.{.....
70860 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 ............"type":."string"....
70880 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 69 .........}.........},........."i
708a0 6e 63 6c 75 64 65 2d 70 61 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 nclude-path":.{............."typ
708c0 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 e":.["array"],............."desc
708e0 72 69 70 74 69 6f 6e 22 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 41 20 6c 69 73 74 20 6f 66 ription":."DEPRECATED:.A.list.of
70900 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 67 65 74 20 61 64 .directories.which.should.get.ad
70920 64 65 64 20 74 6f 20 50 48 50 27 73 20 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 20 54 68 69 73 20 ded.to.PHP's.include.path..This.
70940 69 73 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 74 6f 20 73 75 70 70 6f 72 74 20 6c 65 67 61 63 is.only.present.to.support.legac
70960 79 20 70 72 6f 6a 65 63 74 73 2c 20 61 6e 64 20 61 6c 6c 20 6e 65 77 20 63 6f 64 65 20 73 68 6f y.projects,.and.all.new.code.sho
70980 75 6c 64 20 70 72 65 66 65 72 61 62 6c 79 20 75 73 65 20 61 75 74 6f 6c 6f 61 64 69 6e 67 2e 22 uld.preferably.use.autoloading."
709a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 ,............."items":.{........
709c0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 ........."type":."string".......
709e0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 63 72 69 ......}.........},........."scri
70a00 70 74 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 pts":.{............."type":.["ob
70a20 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e ject"],............."description
70a40 22 3a 20 22 53 63 72 69 70 74 73 20 6c 69 73 74 65 6e 65 72 73 20 74 68 61 74 20 77 69 6c 6c 20 ":."Scripts.listeners.that.will.
70a60 62 65 20 65 78 65 63 75 74 65 64 20 62 65 66 6f 72 65 2f 61 66 74 65 72 20 73 6f 6d 65 20 65 76 be.executed.before/after.some.ev
70a80 65 6e 74 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 ents.",............."properties"
70aa0 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 69 6e 73 74 61 6c 6c :.{................."pre-install
70ac0 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 -cmd":.{....................."ty
70ae0 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 pe":.["array",."string"],.......
70b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 .............."description":."Oc
70b20 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 curs.before.the.install.command.
70b40 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 is.executed,.contains.one.or.mor
70b60 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 e.Class::method.callables.".....
70b80 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
70ba0 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 post-install-cmd":.{............
70bc0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 ........."type":.["array",."stri
70be0 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ng"],....................."descr
70c00 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 69 6e 73 74 61 iption":."Occurs.after.the.insta
70c20 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 ll.command.is.executed,.contains
70c40 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 .one.or.more.Class::method.calla
70c60 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 bles.".................},.......
70c80 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 .........."pre-update-cmd":.{...
70ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 .................."type":.["arra
70cc0 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y",."string"],..................
70ce0 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 ..."description":."Occurs.before
70d00 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c .the.update.command.is.executed,
70d20 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 .contains.one.or.more.Class::met
70d40 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hod.callables.".................
70d60 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 75 70 64 61 74 65 2d },................."post-update-
70d80 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 cmd":.{....................."typ
70da0 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 e":.["array",."string"],........
70dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 ............."description":."Occ
70de0 75 72 73 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 urs.after.the.update.command.is.
70e00 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 executed,.contains.one.or.more.C
70e20 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 lass::method.callables."........
70e40 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 .........},................."pre
70e60 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 -package-install":.{............
70e80 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 ........."type":.["array",."stri
70ea0 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ng"],....................."descr
70ec0 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 iption":."Occurs.before.a.packag
70ee0 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 e.is.installed,.contains.one.or.
70f00 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 more.Class::method.callables."..
70f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............},...............
70f40 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 .."post-package-install":.{.....
70f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 ................"type":.["array"
70f80 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,."string"],....................
70fa0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 ."description":."Occurs.after.a.
70fc0 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f package.is.installed,.contains.o
70fe0 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c ne.or.more.Class::method.callabl
71000 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 es.".................},.........
71020 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 3a 20 7b 0a ........"pre-package-update":.{.
71040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 ...................."type":.["ar
71060 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ray",."string"],................
71080 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f ....."description":."Occurs.befo
710a0 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 61 69 6e re.a.package.is.updated,.contain
710c0 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c s.one.or.more.Class::method.call
710e0 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 ables.".................},......
71100 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 ..........."post-package-update"
71120 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 :.{....................."type":.
71140 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ["array",."string"],............
71160 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 ........."description":."Occurs.
71180 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 after.a.package.is.updated,.cont
711a0 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 ains.one.or.more.Class::method.c
711c0 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 allables.".................},...
711e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 .............."pre-package-unins
71200 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 tall":.{....................."ty
71220 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 pe":.["array",."string"],.......
71240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 .............."description":."Oc
71260 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 curs.before.a.package.has.been.u
71280 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 ninstalled,.contains.one.or.more
712a0 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 .Class::method.callables."......
712c0 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 ...........},................."p
712e0 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 ost-package-uninstall":.{.......
71300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 .............."type":.["array",.
71320 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "string"],....................."
71340 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 description":."Occurs.after.a.pa
71360 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 ckage.has.been.uninstalled,.cont
71380 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 ains.one.or.more.Class::method.c
713a0 61 6c 6c 61 62 6c 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 allables.".................}....
713c0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 .........}.........},........."s
713e0 75 70 70 6f 72 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 upport":.{............."type":."
71400 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 object",............."properties
71420 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a ":.{................."email":.{.
71440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ...................."type":."str
71460 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ing",....................."descr
71480 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 iption":."Email.address.for.supp
714a0 6f 72 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d ort.",....................."form
714c0 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a at":."email".................},.
714e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 73 73 75 65 73 22 3a 20 7b 0a 20 20 20 20 ................"issues":.{.....
71500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 ................"type":."string"
71520 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
71540 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 49 73 73 75 65 20 54 72 61 63 6b 65 72 2e 22 on":."URL.to.the.Issue.Tracker."
71560 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 ,....................."format":.
71580 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 "uri".................},........
715a0 20 20 20 20 20 20 20 20 20 22 66 6f 72 75 6d 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ........."forum":.{.............
715c0 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 ........"type":."string",.......
715e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 .............."description":."UR
71600 4c 20 74 6f 20 74 68 65 20 46 6f 72 75 6d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 L.to.the.Forum.",...............
71620 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 ......"format":."uri"...........
71640 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a ......},................."wiki":
71660 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 .{....................."type":."
71680 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 string",....................."de
716a0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 57 69 6b 69 2e 22 2c 0a scription":."URL.to.the.Wiki.",.
716c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 ...................."format":."u
716e0 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 ri".................},..........
71700 20 20 20 20 20 20 20 22 69 72 63 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."irc":.{.................
71720 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ...."type":."string",...........
71740 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 .........."description":."IRC.ch
71760 61 6e 6e 65 6c 20 66 6f 72 20 73 75 70 70 6f 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 annel.for.support,.as.irc://serv
71780 65 72 2f 63 68 61 6e 6e 65 6c 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er/channel.",...................
717a0 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."format":."uri"...............
717c0 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b ..},................."source":.{
717e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 ....................."type":."st
71800 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ring",....................."desc
71820 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e ription":."URL.to.browse.or.down
71840 6c 6f 61 64 20 74 68 65 20 73 6f 75 72 63 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 load.the.sources.",.............
71860 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 ........"format":."uri".........
71880 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ........}.............}.........
718a0 7d 0a 20 20 20 20 7d 0a 7d 0a 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 }.....}.}.MZ....................
718c0 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..@.............................
718e0 00 00 00 00 00 00 e8 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f ..................!..L.!This.pro
71900 67 72 61 6d 20 63 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d gram.cannot.be.run.in.DOS.mode..
71920 0d 0a 24 00 00 00 00 00 00 00 7f c6 2c cd 3b a7 42 9e 3b a7 42 9e 3b a7 42 9e 32 df d7 9e 3a a7 ..$.........,.;.B.;.B.;.B.2...:.
71940 42 9e 32 df c1 9e 2d a7 42 9e 32 df c6 9e 39 a7 42 9e 32 df d1 9e 3f a7 42 9e 1c 61 39 9e 38 a7 B.2...-.B.2...9.B.2...?.B..a9.8.
71960 42 9e 3b a7 43 9e 08 a7 42 9e 32 df c8 9e 3a a7 42 9e 32 df d6 9e 3a a7 42 9e 32 df d3 9e 3a a7 B.;.C...B.2...:.B.2...:.B.2...:.
71980 42 9e 52 69 63 68 3b a7 42 9e 00 00 00 00 00 00 00 00 50 45 00 00 4c 01 05 00 ac 4d 6f 4f 00 00 B.Rich;.B.........PE..L....MoO..
719a0 00 00 00 00 00 00 e0 00 02 01 0b 01 09 00 00 0a 00 00 00 16 00 00 00 00 00 00 38 13 00 00 00 10 ..........................8.....
719c0 00 00 00 20 00 00 00 00 40 00 00 10 00 00 00 02 00 00 05 00 00 00 00 00 00 00 05 00 00 00 00 00 ........@.......................
719e0 00 00 00 60 00 00 00 04 00 00 3f 9c 00 00 03 00 40 81 00 00 10 00 00 10 00 00 00 00 10 00 00 10 ...`......?.....@...............
71a00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 90 22 00 00 50 00 00 00 00 40 00 00 20 06 ..................."..P....@....
71a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 70 01 00 00 00 21 00 00 1c 00 ...................P..p....!....
71a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 21 00 00 40 00 ..........................8!..@.
71a60 00 00 00 00 00 00 00 00 00 00 00 20 00 00 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71a80 00 00 00 00 00 00 00 00 00 00 2e 74 65 78 74 00 00 00 0b 09 00 00 00 10 00 00 00 0a 00 00 00 04 ...........text.................
71aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 2e 72 64 61 74 61 00 00 ce 09 00 00 00 20 .................`.rdata........
71ac0 00 00 00 0a 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 64 61 74 61 00 ......................@..@.data.
71ae0 00 00 90 03 00 00 00 30 00 00 00 02 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 .......0......................@.
71b00 00 c0 2e 72 73 72 63 00 00 00 20 06 00 00 00 40 00 00 00 08 00 00 00 1a 00 00 00 00 00 00 00 00 ...rsrc........@................
71b20 00 00 00 00 00 00 40 00 00 40 2e 72 65 6c 6f 63 00 00 cc 01 00 00 00 50 00 00 00 02 00 00 00 22 ......@..@.reloc.......P......."
71b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............@..B..............
71b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
71ca0 00 00 00 00 00 00 00 00 00 00 6a 24 b8 e6 18 40 00 e8 78 08 00 00 6a f6 ff 15 08 20 40 00 83 65 ..........j$...@..x...j.....@..e
71cc0 d0 00 8b f0 8d 45 d0 50 56 ff 15 00 20 40 00 8b 45 d0 83 e0 fb 50 56 ff 15 04 20 40 00 8d 4d d4 .....E.PV....@..E....PV....@..M.
71ce0 ff 15 58 20 40 00 83 65 fc 00 8d 45 d4 50 ff 35 48 20 40 00 ff 15 4c 20 40 00 59 59 ff 35 5c 20 ..X.@..e...E.P.5H.@...L.@.YY.5\.
71d00 40 00 8d 45 d4 50 ff 35 60 20 40 00 ff 15 44 20 40 00 59 59 8b c8 ff 15 50 20 40 00 83 4d fc ff @..E.P.5`.@...D.@.YY....P.@..M..
71d20 8d 4d d4 ff 15 54 20 40 00 33 c0 e8 48 08 00 00 c3 3b 0d 00 30 40 00 75 02 f3 c3 e9 ac 02 00 00 .M...T.@.3..H....;..0@.u........
71d40 68 80 15 40 00 e8 a3 04 00 00 a1 6c 33 40 00 c7 04 24 34 30 40 00 ff 35 68 33 40 00 a3 34 30 40 h..@.......l3@...$40@..5h3@..40@
71d60 00 68 24 30 40 00 68 28 30 40 00 68 20 30 40 00 ff 15 a0 20 40 00 83 c4 14 a3 30 30 40 00 85 c0 .h$0@.h(0@.h.0@.....@.....00@...
71d80 7d 08 6a 08 e8 b9 03 00 00 59 c3 6a 10 68 08 22 40 00 e8 1f 06 00 00 33 db 89 5d fc 64 a1 18 00 }.j......Y.j.h."@......3..].d...
71da0 00 00 8b 70 04 89 5d e4 bf 80 33 40 00 53 56 57 ff 15 30 20 40 00 3b c3 74 19 3b c6 75 08 33 f6 ...p..]...3@.SVW..0.@.;.t.;.u.3.
71dc0 46 89 75 e4 eb 10 68 e8 03 00 00 ff 15 34 20 40 00 eb da 33 f6 46 a1 7c 33 40 00 3b c6 75 0a 6a F.u...h......4.@...3.F.|3@.;.u.j
71de0 1f e8 5c 03 00 00 59 eb 3b a1 7c 33 40 00 85 c0 75 2c 89 35 7c 33 40 00 68 f0 20 40 00 68 e4 20 ..\...Y.;.|3@...u,.5|3@.h..@.h..
71e00 40 00 e8 a7 05 00 00 59 59 85 c0 74 17 c7 45 fc fe ff ff ff b8 ff 00 00 00 e9 dd 00 00 00 89 35 @......YY..t..E................5
71e20 3c 30 40 00 a1 7c 33 40 00 3b c6 75 1b 68 e0 20 40 00 68 d8 20 40 00 e8 6c 05 00 00 59 59 c7 05 <0@..|3@.;.u.h..@.h..@..l...YY..
71e40 7c 33 40 00 02 00 00 00 39 5d e4 75 08 53 57 ff 15 38 20 40 00 39 1d 8c 33 40 00 74 19 68 8c 33 |3@.....9].u.SW..8.@.9..3@.t.h.3
71e60 40 00 e8 83 04 00 00 59 85 c0 74 0a 53 6a 02 53 ff 15 8c 33 40 00 a1 24 30 40 00 8b 0d bc 20 40 @......Y..t.Sj.S...3@..$0@.....@
71e80 00 89 01 ff 35 24 30 40 00 ff 35 28 30 40 00 ff 35 20 30 40 00 e8 10 fe ff ff 83 c4 0c a3 38 30 ....5$0@..5(0@..5.0@..........80
71ea0 40 00 39 1d 2c 30 40 00 75 37 50 ff 15 c0 20 40 00 8b 45 ec 8b 08 8b 09 89 4d e0 50 51 e8 8e 03 @.9.,0@.u7P....@..E......M.PQ...
71ec0 00 00 59 59 c3 8b 65 e8 8b 45 e0 a3 38 30 40 00 33 db 39 1d 2c 30 40 00 75 07 50 ff 15 68 20 40 ..YY..e..E..80@.3.9.,0@.u.P..h.@
71ee0 00 39 1d 3c 30 40 00 75 06 ff 15 9c 20 40 00 c7 45 fc fe ff ff ff a1 38 30 40 00 e8 fb 04 00 00 .9.<0@.u.....@..E......80@......
71f00 c3 b8 4d 5a 00 00 66 39 05 00 00 40 00 74 04 33 c0 eb 4d a1 3c 00 40 00 8d 80 00 00 40 00 81 38 ..MZ..f9...@.t.3..M.<.@.....@..8
71f20 50 45 00 00 75 e9 0f b7 48 18 81 f9 0b 01 00 00 74 1b 81 f9 0b 02 00 00 75 d5 83 b8 84 00 00 00 PE..u...H.......t.......u.......
71f40 0e 76 cc 33 c9 39 88 f8 00 00 00 eb 0e 83 78 74 0e 76 bc 33 c9 39 88 e8 00 00 00 0f 95 c1 8b c1 .v.3.9........xt.v.3.9..........
71f60 6a 01 a3 2c 30 40 00 ff 15 70 20 40 00 6a ff ff 15 6c 20 40 00 59 59 a3 84 33 40 00 a3 88 33 40 j..,0@...p.@.j...l.@.YY..3@...3@
71f80 00 ff 15 cc 20 40 00 8b 0d 74 33 40 00 89 08 ff 15 88 20 40 00 8b 0d 70 33 40 00 89 08 a1 a8 20 .....@...t3@.......@...p3@......
71fa0 40 00 8b 00 a3 78 33 40 00 e8 56 02 00 00 e8 ac 04 00 00 83 3d 14 30 40 00 00 75 0c 68 b5 17 40 @....x3@..V.........=.0@..u.h..@
71fc0 00 ff 15 ac 20 40 00 59 e8 67 04 00 00 83 3d 10 30 40 00 ff 75 09 6a ff ff 15 b0 20 40 00 59 33 .....@.Y.g....=.0@..u.j.....@.Y3
71fe0 c0 c3 e8 7b 04 00 00 e9 9f fd ff ff 8b ff 55 8b ec 81 ec 28 03 00 00 a3 48 31 40 00 89 0d 44 31 ...{..........U....(....H1@...D1
72000 40 00 89 15 40 31 40 00 89 1d 3c 31 40 00 89 35 38 31 40 00 89 3d 34 31 40 00 66 8c 15 60 31 40 @...@1@...<1@..581@..=41@.f..`1@
72020 00 66 8c 0d 54 31 40 00 66 8c 1d 30 31 40 00 66 8c 05 2c 31 40 00 66 8c 25 28 31 40 00 66 8c 2d .f..T1@.f..01@.f..,1@.f.%(1@.f.-
72040 24 31 40 00 9c 8f 05 58 31 40 00 8b 45 00 a3 4c 31 40 00 8b 45 04 a3 50 31 40 00 8d 45 08 a3 5c $1@....X1@..E..L1@..E..P1@..E..\
72060 31 40 00 8b 85 e0 fc ff ff c7 05 98 30 40 00 01 00 01 00 a1 50 31 40 00 a3 4c 30 40 00 c7 05 40 1@..........0@......P1@..L0@...@
72080 30 40 00 09 04 00 c0 c7 05 44 30 40 00 01 00 00 00 a1 00 30 40 00 89 85 d8 fc ff ff a1 04 30 40 0@.......D0@.......0@.........0@
720a0 00 89 85 dc fc ff ff ff 15 1c 20 40 00 a3 90 30 40 00 6a 01 e8 3f 04 00 00 59 6a 00 ff 15 20 20 ...........@...0@.j..?...Yj.....
720c0 40 00 68 1c 21 40 00 ff 15 24 20 40 00 83 3d 90 30 40 00 00 75 08 6a 01 e8 1b 04 00 00 59 68 09 @.h.!@...$.@..=.0@..u.j......Yh.
720e0 04 00 c0 ff 15 28 20 40 00 50 ff 15 2c 20 40 00 c9 c3 8b ff 55 8b ec 8b 45 08 8b 00 81 38 63 73 .....(.@.P..,.@.....U...E....8cs
72100 6d e0 75 2a 83 78 10 03 75 24 8b 40 14 3d 20 05 93 19 74 15 3d 21 05 93 19 74 0e 3d 22 05 93 19 m.u*.x..u$.@.=....t.=!...t.="...
72120 74 07 3d 00 40 99 01 75 05 e8 d0 03 00 00 33 c0 5d c2 04 00 68 48 14 40 00 ff 15 20 20 40 00 33 t.=.@..u......3.]...hH.@.....@.3
72140 c0 c3 ff 25 a4 20 40 00 6a 14 68 28 22 40 00 e8 62 02 00 00 ff 35 88 33 40 00 8b 35 8c 20 40 00 ...%..@.j.h("@..b....5.3@..5..@.
72160 ff d6 59 89 45 e4 83 f8 ff 75 0c ff 75 08 ff 15 c4 20 40 00 59 eb 67 6a 08 e8 92 03 00 00 59 83 ..Y.E....u..u.....@.Y.gj......Y.
72180 65 fc 00 ff 35 88 33 40 00 ff d6 89 45 e4 ff 35 84 33 40 00 ff d6 59 59 89 45 e0 8d 45 e0 50 8d e...5.3@....E..5.3@...YY.E..E.P.
721a0 45 e4 50 ff 75 08 8b 35 6c 20 40 00 ff d6 59 50 e8 55 03 00 00 89 45 dc ff 75 e4 ff d6 a3 88 33 E.P.u..5l.@...YP.U....E..u.....3
721c0 40 00 ff 75 e0 ff d6 83 c4 14 a3 84 33 40 00 c7 45 fc fe ff ff ff e8 09 00 00 00 8b 45 dc e8 18 @..u........3@..E...........E...
721e0 02 00 00 c3 6a 08 e8 19 03 00 00 59 c3 8b ff 55 8b ec ff 75 08 e8 4e ff ff ff f7 d8 1b c0 f7 d8 ....j......Y...U...u..N.........
72200 59 48 5d c3 8b ff 56 b8 fc 21 40 00 be fc 21 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 YH]...V..!@...!@.W..;.s.....t...
72220 83 c7 04 3b fe 72 f1 5f 5e c3 8b ff 56 b8 04 22 40 00 be 04 22 40 00 57 8b f8 3b c6 73 0f 8b 07 ...;.r._^...V.."@..."@.W..;.s...
72240 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 ff 25 c8 20 40 00 cc cc cc cc 8b ff 55 8b ec 8b ..t......;.r._^..%..@.......U...
72260 4d 08 b8 4d 5a 00 00 66 39 01 74 04 33 c0 5d c3 8b 41 3c 03 c1 81 38 50 45 00 00 75 ef 33 d2 b9 M..MZ..f9.t.3.]..A<...8PE..u.3..
72280 0b 01 00 00 66 39 48 18 0f 94 c2 8b c2 5d c3 cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 8b ....f9H......]..............U...
722a0 45 08 8b 48 3c 03 c8 0f b7 41 14 53 56 0f b7 71 06 33 d2 57 8d 44 08 18 85 f6 76 1b 8b 7d 0c 8b E..H<....A.SV..q.3.W.D....v..}..
722c0 48 0c 3b f9 72 09 8b 58 08 03 d9 3b fb 72 0a 42 83 c0 28 3b d6 72 e8 33 c0 5f 5e 5b 5d c3 cc cc H.;.r..X...;.r.B..(;.r.3._^[]...
722e0 cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 6a fe 68 48 22 40 00 68 65 17 40 00 64 a1 00 00 00 ............U..j.hH"@.he.@.d....
72300 00 50 83 ec 08 53 56 57 a1 00 30 40 00 31 45 f8 33 c5 50 8d 45 f0 64 a3 00 00 00 00 89 65 e8 c7 .P...SVW..0@.1E.3.P.E.d......e..
72320 45 fc 00 00 00 00 68 00 00 40 00 e8 2a ff ff ff 83 c4 04 85 c0 74 55 8b 45 08 2d 00 00 40 00 50 E.....h..@..*........tU.E.-..@.P
72340 68 00 00 40 00 e8 50 ff ff ff 83 c4 08 85 c0 74 3b 8b 40 24 c1 e8 1f f7 d0 83 e0 01 c7 45 fc fe h..@..P........t;.@$.........E..
72360 ff ff ff 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 8b 45 ec 8b 08 8b 01 33 d2 3d 05 ....M.d......Y_^[..]..E.....3.=.
72380 00 00 c0 0f 94 c2 8b c2 c3 8b 65 e8 c7 45 fc fe ff ff ff 33 c0 8b 4d f0 64 89 0d 00 00 00 00 59 ..........e..E.....3..M.d......Y
723a0 5f 5e 5b 8b e5 5d c3 cc ff 25 b8 20 40 00 ff 25 b4 20 40 00 cc cc 68 65 17 40 00 64 ff 35 00 00 _^[..]...%..@..%..@...he.@.d.5..
723c0 00 00 8b 44 24 10 89 6c 24 10 8d 6c 24 10 2b e0 53 56 57 a1 00 30 40 00 31 45 fc 33 c5 50 89 65 ...D$..l$..l$.+.SVW..0@.1E.3.P.e
723e0 e8 ff 75 f8 8b 45 fc c7 45 fc fe ff ff ff 89 45 f8 8d 45 f0 64 a3 00 00 00 00 c3 8b 4d f0 64 89 ..u..E..E......E..E.d.......M.d.
72400 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b ff 55 8b ec ff 75 14 ff 75 10 ff 75 0c ff 75 08 .....Y__^[..]Q...U...u..u..u..u.
72420 68 87 10 40 00 68 00 30 40 00 e8 e7 00 00 00 83 c4 18 5d c3 8b ff 56 68 00 00 03 00 68 00 00 01 h..@.h.0@.........]...Vh....h...
72440 00 33 f6 56 e8 d9 00 00 00 83 c4 0c 85 c0 74 0d 56 56 56 56 56 e8 c2 00 00 00 83 c4 14 5e c3 33 .3.V..........t.VVVVV........^.3
72460 c0 c3 8b ff 55 8b ec 83 ec 10 a1 00 30 40 00 83 65 f8 00 83 65 fc 00 53 57 bf 4e e6 40 bb bb 00 ....U.......0@..e...e..SW.N.@...
72480 00 ff ff 3b c7 74 0d 85 c3 74 09 f7 d0 a3 04 30 40 00 eb 60 56 8d 45 f8 50 ff 15 3c 20 40 00 8b ...;.t...t.....0@..`V.E.P..<.@..
724a0 75 fc 33 75 f8 ff 15 0c 20 40 00 33 f0 ff 15 10 20 40 00 33 f0 ff 15 14 20 40 00 33 f0 8d 45 f0 u.3u.....@.3.....@.3.....@.3..E.
724c0 50 ff 15 18 20 40 00 8b 45 f4 33 45 f0 33 f0 3b f7 75 07 be 4f e6 40 bb eb 0b 85 f3 75 07 8b c6 P....@..E.3E.3.;.u..O.@.....u...
724e0 c1 e0 10 0b f0 89 35 00 30 40 00 f7 d6 89 35 04 30 40 00 5e 5f 5b c9 c3 ff 25 74 20 40 00 ff 25 ......5.0@....5.0@.^_[...%t.@..%
72500 78 20 40 00 ff 25 7c 20 40 00 ff 25 80 20 40 00 ff 25 84 20 40 00 ff 25 90 20 40 00 ff 25 94 20 x.@..%|.@..%..@..%..@..%..@..%..
72520 40 00 ff 25 98 20 40 00 ff 25 d0 20 40 00 50 64 ff 35 00 00 00 00 8d 44 24 0c 2b 64 24 0c 53 56 @..%..@..%..@.Pd.5.....D$.+d$.SV
72540 57 89 28 8b e8 a1 00 30 40 00 33 c5 50 89 45 f0 ff 75 fc c7 45 fc ff ff ff ff 8d 45 f4 64 a3 00 W.(....0@.3.P.E..u..E......E.d..
72560 00 00 00 c3 8b 4d f4 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b 4d f0 33 cd e8 af f7 .....M.d......Y__^[..]Q..M.3....
72580 ff ff e9 dd ff ff ff 8d 4d d4 ff 25 54 20 40 00 8b 54 24 08 8d 42 0c 8b 4a cc 33 c8 e8 90 f7 ff ........M..%T.@..T$..B..J.3.....
725a0 ff 8b 4a fc 33 c8 e8 86 f7 ff ff b8 6c 22 40 00 e9 73 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 ..J.3.......l"@..s..............
725c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
725e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
72680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
726a0 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 ...........#...#...#...)..r)..b)
726c0 00 00 48 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 ..H)..4)...)...(...(...(...(...(
726e0 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 ...(...).......#...$...%...%...&
72700 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 ..d&...&...$......('...'...'...'
72720 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 ...'...(..((..6(...'..H(..Z(..t(
72740 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 ...(...'...'...'...'...'..l'..^'
72760 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 ..R'..F'..>'..>(..0'...'...)....
72780 00 00 00 00 00 00 96 10 40 00 00 00 00 00 00 00 00 00 57 12 40 00 8a 14 40 00 00 00 00 00 00 00 ........@.........W.@...@.......
727a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ac 4d 6f 4f 00 00 00 00 02 00 00 00 6c 00 00 00 80 21 ...............MoO........l....!
727c0 00 00 80 0f 00 00 40 30 40 00 98 30 40 00 62 61 64 20 61 6c 6c 6f 63 61 74 69 6f 6e 00 00 00 00 ......@0@..0@.bad.allocation....
727e0 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..H.............................
72800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 ...............................0
72820 40 00 f0 21 40 00 02 00 00 00 52 53 44 53 d1 8c b3 10 b4 8f 01 4a a8 21 f6 cc eb 4c 5a 00 01 00 @..!@.....RSDS.......J.!...LZ...
72840 00 00 63 3a 5c 75 73 65 72 73 5c 73 65 6c 64 5c 64 6f 63 75 6d 65 6e 74 73 5c 76 69 73 75 61 6c ..c:\users\seld\documents\visual
72860 20 73 74 75 64 69 6f 20 32 30 31 30 5c 50 72 6f 6a 65 63 74 73 5c 68 69 64 64 65 6e 69 6e 70 5c .studio.2010\Projects\hiddeninp\
72880 52 65 6c 65 61 73 65 5c 68 69 64 64 65 6e 69 6e 70 2e 70 64 62 00 00 00 00 00 65 17 00 00 e6 18 Release\hiddeninp.pdb.....e.....
728a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff 00 00 00 00 d0 ff ff ff 00 00 ................................
728c0 00 00 fe ff ff ff 07 12 40 00 1b 12 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 cc ff ff ff 00 00 ........@...@...................
728e0 00 00 fe ff ff ff 00 00 00 00 3a 15 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 d8 ff ff ff 00 00 ..........:.@...................
72900 00 00 fe ff ff ff cb 16 40 00 df 16 40 00 ff ff ff ff dd 18 40 00 22 05 93 19 01 00 00 00 64 22 ........@...@.......@.".......d"
72920 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 22 00 00 00 00 @.........................."....
72940 00 00 00 00 00 00 ec 23 00 00 00 20 00 00 24 23 00 00 00 00 00 00 00 00 00 00 f4 26 00 00 44 20 .......#......$#...........&..D.
72960 00 00 48 23 00 00 00 00 00 00 00 00 00 00 12 28 00 00 68 20 00 00 00 00 00 00 00 00 00 00 00 00 ..H#...........(..h.............
72980 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 ...........#...#...#...)..r)..b)
729a0 00 00 48 29 00 00 34 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 ..H)..4)...)...(...(...(...(...(
729c0 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 ...(...).......#...$...%...%...&
729e0 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 ..d&...&...$......('...'...'...'
72a00 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 ...'...(..((..6(...'..H(..Z(..t(
72a20 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 ...(...'...'...'...'...'..l'..^'
72a40 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 ..R'..F'..>'..>(..0'...'...)....
72a60 00 00 95 01 47 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 b7 03 53 65 74 43 6f 6e 73 6f 6c 65 ....GetConsoleMode....SetConsole
72a80 4d 6f 64 65 00 00 3b 02 47 65 74 53 74 64 48 61 6e 64 6c 65 00 00 4b 45 52 4e 45 4c 33 32 2e 64 Mode..;.GetStdHandle..KERNEL32.d
72aa0 6c 6c 00 00 16 00 3f 3f 24 3f 36 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 ll....??$?6DU?$char_traits@D@std
72ac0 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 31 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 @@V?$allocator@D@1@@std@@YAAAV?$
72ae0 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 basic_ostream@DU?$char_traits@D@
72b00 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 42 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 std@@@0@AAV10@ABV?$basic_string@
72b20 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 DU?$char_traits@D@std@@V?$alloca
72b40 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 91 06 3f 63 6f 75 74 40 73 74 64 40 40 33 56 3f 24 62 tor@D@2@@0@@Z...?cout@std@@3V?$b
72b60 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 asic_ostream@DU?$char_traits@D@s
72b80 74 64 40 40 40 31 40 41 00 00 4a 06 3f 63 69 6e 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f td@@@1@A..J.?cin@std@@3V?$basic_
72ba0 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 istream@DU?$char_traits@D@std@@@
72bc0 31 40 41 00 c2 00 3f 3f 24 67 65 74 6c 69 6e 65 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 1@A...??$getline@DU?$char_traits
72be0 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 59 @D@std@@V?$allocator@D@2@@std@@Y
72c00 41 41 41 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 AAAV?$basic_istream@DU?$char_tra
72c20 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 41 41 56 3f 24 62 61 73 69 63 5f 73 its@D@std@@@0@AAV10@AAV?$basic_s
72c40 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 tring@DU?$char_traits@D@std@@V?$
72c60 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 30 40 40 5a 00 1d 03 3f 3f 36 3f 24 62 61 73 69 63 allocator@D@2@@0@@Z...??6?$basic
72c80 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 _ostream@DU?$char_traits@D@std@@
72ca0 40 73 74 64 40 40 51 41 45 41 41 56 30 31 40 50 36 41 41 41 56 30 31 40 41 41 56 30 31 40 40 5a @std@@QAEAAV01@P6AAAV01@AAV01@@Z
72cc0 40 5a 00 00 5f 02 3f 3f 31 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 @Z.._.??1?$basic_string@DU?$char
72ce0 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 _traits@D@std@@V?$allocator@D@2@
72d00 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 7b 01 3f 3f 30 3f 24 62 61 73 69 63 5f 73 74 72 69 6e @std@@QAE@XZ..{.??0?$basic_strin
72d20 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f g@DU?$char_traits@D@std@@V?$allo
72d40 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 b3 07 3f 65 6e 64 6c 40 cator@D@2@@std@@QAE@XZ....?endl@
72d60 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 std@@YAAAV?$basic_ostream@DU?$ch
72d80 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 41 56 32 31 40 40 5a 00 00 4d 53 ar_traits@D@std@@@1@AAV21@@Z..MS
72da0 56 43 50 39 30 2e 64 6c 6c 00 15 01 5f 61 6d 73 67 5f 65 78 69 74 00 00 9f 00 5f 5f 67 65 74 6d VCP90.dll..._amsg_exit....__getm
72dc0 61 69 6e 61 72 67 73 00 2c 01 5f 63 65 78 69 74 00 00 7c 01 5f 65 78 69 74 00 66 00 5f 58 63 70 ainargs.,._cexit..|._exit.f._Xcp
72de0 74 46 69 6c 74 65 72 00 cc 04 65 78 69 74 00 00 a0 00 5f 5f 69 6e 69 74 65 6e 76 00 04 02 5f 69 tFilter...exit....__initenv..._i
72e00 6e 69 74 74 65 72 6d 00 05 02 5f 69 6e 69 74 74 65 72 6d 5f 65 00 3c 01 5f 63 6f 6e 66 69 67 74 nitterm..._initterm_e.<._configt
72e20 68 72 65 61 64 6c 6f 63 61 6c 65 00 e3 00 5f 5f 73 65 74 75 73 65 72 6d 61 74 68 65 72 72 00 00 hreadlocale...__setusermatherr..
72e40 0b 01 5f 61 64 6a 75 73 74 5f 66 64 69 76 00 00 cb 00 5f 5f 70 5f 5f 63 6f 6d 6d 6f 64 65 00 00 .._adjust_fdiv....__p__commode..
72e60 cf 00 5f 5f 70 5f 5f 66 6d 6f 64 65 00 00 6a 01 5f 65 6e 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 ..__p__fmode..j._encode_pointer.
72e80 e0 00 5f 5f 73 65 74 5f 61 70 70 5f 74 79 70 65 00 00 4b 01 5f 63 72 74 5f 64 65 62 75 67 67 65 ..__set_app_type..K._crt_debugge
72ea0 72 5f 68 6f 6f 6b 00 00 43 00 3f 74 65 72 6d 69 6e 61 74 65 40 40 59 41 58 58 5a 00 4d 53 56 43 r_hook..C.?terminate@@YAXXZ.MSVC
72ec0 52 39 30 2e 64 6c 6c 00 e6 03 5f 75 6e 6c 6f 63 6b 00 96 00 5f 5f 64 6c 6c 6f 6e 65 78 69 74 00 R90.dll..._unlock...__dllonexit.
72ee0 76 02 5f 6c 6f 63 6b 00 1c 03 5f 6f 6e 65 78 69 74 00 60 01 5f 64 65 63 6f 64 65 5f 70 6f 69 6e v._lock..._onexit.`._decode_poin
72f00 74 65 72 00 73 01 5f 65 78 63 65 70 74 5f 68 61 6e 64 6c 65 72 34 5f 63 6f 6d 6d 6f 6e 00 0b 02 ter.s._except_handler4_common...
72f20 5f 69 6e 76 6f 6b 65 5f 77 61 74 73 6f 6e 00 00 3f 01 5f 63 6f 6e 74 72 6f 6c 66 70 5f 73 00 00 _invoke_watson..?._controlfp_s..
72f40 bd 02 49 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67 65 00 21 04 53 6c 65 65 70 00 ba 02 ..InterlockedExchange.!.Sleep...
72f60 49 6e 74 65 72 6c 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 6e 67 65 00 00 2d 04 54 65 InterlockedCompareExchange..-.Te
72f80 72 6d 69 6e 61 74 65 50 72 6f 63 65 73 73 00 00 a9 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 rminateProcess....GetCurrentProc
72fa0 65 73 73 00 3e 04 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 00 ess.>.UnhandledExceptionFilter..
72fc0 15 04 53 65 74 55 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 d1 02 ..SetUnhandledExceptionFilter...
72fe0 49 73 44 65 62 75 67 67 65 72 50 72 65 73 65 6e 74 00 54 03 51 75 65 72 79 50 65 72 66 6f 72 6d IsDebuggerPresent.T.QueryPerform
73000 61 6e 63 65 43 6f 75 6e 74 65 72 00 66 02 47 65 74 54 69 63 6b 43 6f 75 6e 74 00 00 ad 01 47 65 anceCounter.f.GetTickCount....Ge
73020 74 43 75 72 72 65 6e 74 54 68 72 65 61 64 49 64 00 00 aa 01 47 65 74 43 75 72 72 65 6e 74 50 72 tCurrentThreadId....GetCurrentPr
73040 6f 63 65 73 73 49 64 00 4f 02 47 65 74 53 79 73 74 65 6d 54 69 6d 65 41 73 46 69 6c 65 54 69 6d ocessId.O.GetSystemTimeAsFileTim
73060 65 00 73 00 5f 5f 43 78 78 46 72 61 6d 65 48 61 6e 64 6c 65 72 33 00 00 00 00 00 00 00 00 00 00 e.s.__CxxFrameHandler3..........
73080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
730a0 00 00 00 00 00 00 00 00 00 00 4e e6 40 bb b1 19 bf 44 ff ff ff ff ff ff ff ff fe ff ff ff 01 00 ..........N.@....D..............
730c0 00 00 24 21 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..$!@...........................
730e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
731a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
731c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
731e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
732a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 02 00 10 00 00 00 20 00 ................................
732c0 00 80 18 00 00 00 38 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 50 00 ......8.......................P.
732e0 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 68 00 00 80 00 00 00 00 00 00 ......................h.........
73300 00 00 04 00 00 00 00 00 01 00 09 04 00 00 80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ................................
73320 01 00 09 04 00 00 90 00 00 00 a0 40 00 00 28 03 00 00 e4 04 00 00 00 00 00 00 c8 43 00 00 56 02 ...........@..(............C..V.
73340 00 00 e4 04 00 00 00 00 00 00 28 03 34 00 00 00 56 00 53 00 5f 00 56 00 45 00 52 00 53 00 49 00 ..........(.4...V.S._.V.E.R.S.I.
73360 4f 00 4e 00 5f 00 49 00 4e 00 46 00 4f 00 00 00 00 00 bd 04 ef fe 00 00 01 00 00 00 01 00 00 00 O.N._.I.N.F.O...................
73380 00 00 00 00 01 00 00 00 00 00 17 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 ................................
733a0 00 00 00 00 00 00 86 02 00 00 01 00 53 00 74 00 72 00 69 00 6e 00 67 00 46 00 69 00 6c 00 65 00 ............S.t.r.i.n.g.F.i.l.e.
733c0 49 00 6e 00 66 00 6f 00 00 00 62 02 00 00 01 00 30 00 34 00 30 00 39 00 30 00 34 00 62 00 30 00 I.n.f.o...b.....0.4.0.9.0.4.b.0.
733e0 00 00 ca 00 51 00 01 00 46 00 69 00 6c 00 65 00 44 00 65 00 73 00 63 00 72 00 69 00 70 00 74 00 ....Q...F.i.l.e.D.e.s.c.r.i.p.t.
73400 69 00 6f 00 6e 00 00 00 00 00 52 00 65 00 61 00 64 00 73 00 20 00 66 00 72 00 6f 00 6d 00 20 00 i.o.n.....R.e.a.d.s...f.r.o.m...
73420 73 00 74 00 64 00 69 00 6e 00 20 00 77 00 69 00 74 00 68 00 6f 00 75 00 74 00 20 00 6c 00 65 00 s.t.d.i.n...w.i.t.h.o.u.t...l.e.
73440 61 00 6b 00 69 00 6e 00 67 00 20 00 69 00 6e 00 66 00 6f 00 20 00 74 00 6f 00 20 00 74 00 68 00 a.k.i.n.g...i.n.f.o...t.o...t.h.
73460 65 00 20 00 74 00 65 00 72 00 6d 00 69 00 6e 00 61 00 6c 00 20 00 61 00 6e 00 64 00 20 00 6f 00 e...t.e.r.m.i.n.a.l...a.n.d...o.
73480 75 00 74 00 70 00 75 00 74 00 73 00 20 00 62 00 61 00 63 00 6b 00 20 00 74 00 6f 00 20 00 73 00 u.t.p.u.t.s...b.a.c.k...t.o...s.
734a0 74 00 64 00 6f 00 75 00 74 00 00 00 00 00 36 00 0b 00 01 00 46 00 69 00 6c 00 65 00 56 00 65 00 t.d.o.u.t.....6.....F.i.l.e.V.e.
734c0 72 00 73 00 69 00 6f 00 6e 00 00 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 r.s.i.o.n.....1.,...0.,...0.,...
734e0 30 00 00 00 00 00 38 00 0c 00 01 00 49 00 6e 00 74 00 65 00 72 00 6e 00 61 00 6c 00 4e 00 61 00 0.....8.....I.n.t.e.r.n.a.l.N.a.
73500 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 00 00 50 00 m.e...h.i.d.d.e.n.i.n.p.u.t...P.
73520 16 00 01 00 4c 00 65 00 67 00 61 00 6c 00 43 00 6f 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 ....L.e.g.a.l.C.o.p.y.r.i.g.h.t.
73540 00 00 4a 00 6f 00 72 00 64 00 69 00 20 00 42 00 6f 00 67 00 67 00 69 00 61 00 6e 00 6f 00 20 00 ..J.o.r.d.i...B.o.g.g.i.a.n.o...
73560 2d 00 20 00 32 00 30 00 31 00 32 00 00 00 48 00 10 00 01 00 4f 00 72 00 69 00 67 00 69 00 6e 00 -...2.0.1.2...H.....O.r.i.g.i.n.
73580 61 00 6c 00 46 00 69 00 6c 00 65 00 6e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 a.l.F.i.l.e.n.a.m.e...h.i.d.d.e.
735a0 6e 00 69 00 6e 00 70 00 75 00 74 00 2e 00 65 00 78 00 65 00 00 00 3a 00 0d 00 01 00 50 00 72 00 n.i.n.p.u.t...e.x.e...:.....P.r.
735c0 6f 00 64 00 75 00 63 00 74 00 4e 00 61 00 6d 00 65 00 00 00 00 00 48 00 69 00 64 00 64 00 65 00 o.d.u.c.t.N.a.m.e.....H.i.d.d.e.
735e0 6e 00 20 00 49 00 6e 00 70 00 75 00 74 00 00 00 00 00 3a 00 0b 00 01 00 50 00 72 00 6f 00 64 00 n...I.n.p.u.t.....:.....P.r.o.d.
73600 75 00 63 00 74 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 31 00 2c 00 20 00 30 00 2c 00 u.c.t.V.e.r.s.i.o.n...1.,...0.,.
73620 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6c 00 ..0.,...0.....D.....V.a.r.F.i.l.
73640 65 00 49 00 6e 00 66 00 6f 00 00 00 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6e 00 73 00 6c 00 e.I.n.f.o.....$.....T.r.a.n.s.l.
73660 61 00 74 00 69 00 6f 00 6e 00 00 00 00 00 09 04 b0 04 3c 61 73 73 65 6d 62 6c 79 20 78 6d 6c 6e a.t.i.o.n.........<assembly.xmln
73680 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 74 2d 63 6f 6d 3a 61 73 6d s="urn:schemas-microsoft-com:asm
736a0 2e 76 31 22 20 6d 61 6e 69 66 65 73 74 56 65 72 73 69 6f 6e 3d 22 31 2e 30 22 3e 0d 0a 20 20 3c .v1".manifestVersion="1.0">....<
736c0 74 72 75 73 74 49 6e 66 6f 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 trustInfo.xmlns="urn:schemas-mic
736e0 72 6f 73 6f 66 74 2d 63 6f 6d 3a 61 73 6d 2e 76 33 22 3e 0d 0a 20 20 20 20 3c 73 65 63 75 72 69 rosoft-com:asm.v3">......<securi
73700 74 79 3e 0d 0a 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e ty>........<requestedPrivileges>
73720 0d 0a 20 20 20 20 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 ..........<requestedExecutionLev
73740 65 6c 20 6c 65 76 65 6c 3d 22 61 73 49 6e 76 6f 6b 65 72 22 20 75 69 41 63 63 65 73 73 3d 22 66 el.level="asInvoker".uiAccess="f
73760 61 6c 73 65 22 3e 3c 2f 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 3e alse"></requestedExecutionLevel>
73780 0d 0a 20 20 20 20 20 20 3c 2f 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a ........</requestedPrivileges>..
737a0 20 20 20 20 3c 2f 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 3c 2f 74 72 75 73 74 49 6e 66 6f 3e 0d ....</security>....</trustInfo>.
737c0 0a 20 20 3c 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 20 20 20 20 3c 64 65 70 65 6e 64 65 6e 74 41 ...<dependency>......<dependentA
737e0 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 20 20 20 20 3c 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 ssembly>........<assemblyIdentit
73800 79 20 74 79 70 65 3d 22 77 69 6e 33 32 22 20 6e 61 6d 65 3d 22 4d 69 63 72 6f 73 6f 66 74 2e 56 y.type="win32".name="Microsoft.V
73820 43 39 30 2e 43 52 54 22 20 76 65 72 73 69 6f 6e 3d 22 39 2e 30 2e 32 31 30 32 32 2e 38 22 20 70 C90.CRT".version="9.0.21022.8".p
73840 72 6f 63 65 73 73 6f 72 41 72 63 68 69 74 65 63 74 75 72 65 3d 22 78 38 36 22 20 70 75 62 6c 69 rocessorArchitecture="x86".publi
73860 63 4b 65 79 54 6f 6b 65 6e 3d 22 31 66 63 38 62 33 62 39 61 31 65 31 38 65 33 62 22 3e 3c 2f 61 cKeyToken="1fc8b3b9a1e18e3b"></a
73880 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 3e 0d 0a 20 20 20 20 3c 2f 64 65 70 65 6e 64 65 6e ssemblyIdentity>......</dependen
738a0 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 3c 2f 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 3c 2f 61 tAssembly>....</dependency>..</a
738c0 73 73 65 6d 62 6c 79 3e 50 41 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e ssembly>PAPADDINGXXPADDINGPADDIN
738e0 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73900 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73920 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73940 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73960 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73980 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
739a0 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
739c0 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
739e0 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73a00 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73a20 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73a40 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73a60 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73a80 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e GXXPADDINGPADDINGXXPADDINGPADDIN
73aa0 47 58 58 50 41 44 44 49 4e 47 00 10 00 00 40 01 00 00 03 30 10 30 21 30 2f 30 38 30 46 30 4c 30 GXXPADDING....@....0.0!0/080F0L0
73ac0 54 30 5e 30 64 30 6e 30 7b 30 89 30 97 30 a1 30 a8 30 ae 30 b3 30 b8 30 bd 30 c2 30 c8 30 d0 30 T0^0d0n0{0.0.0.0.0.0.0.0.0.0.0.0
73ae0 e4 30 ff 30 08 31 23 31 2d 31 40 31 4a 31 4f 31 54 31 76 31 7b 31 84 31 89 31 96 31 a7 31 ad 31 .0.0.1#1-1@1J1O1T1v1{1.1.1.1.1.1
73b00 b4 31 c8 31 cd 31 d3 31 db 31 e1 31 e7 31 f4 31 fa 31 03 32 22 32 2a 32 33 32 39 32 41 32 4d 32 .1.1.1.1.1.1.1.1.1.2"2*23292A2M2
73b20 5f 32 6a 32 70 32 b9 32 bf 32 c7 32 ce 32 d3 32 d9 32 df 32 e7 32 ed 32 f4 32 fb 32 0b 33 13 33 _2j2p2.2.2.2.2.2.2.2.2.2.2.2.3.3
73b40 19 33 25 33 30 33 4e 33 54 33 5a 33 60 33 66 33 6c 33 73 33 7a 33 81 33 88 33 8f 33 96 33 9d 33 .3%303N3T3Z3`3f3l3s3z3.3.3.3.3.3
73b60 a5 33 ad 33 b5 33 c1 33 ca 33 cf 33 d5 33 df 33 e8 33 f3 33 ff 33 04 34 14 34 19 34 1f 34 25 34 .3.3.3.3.3.3.3.3.3.3.3.4.4.4.4%4
73b80 3b 34 42 34 8b 34 91 34 9a 34 a1 34 ac 34 b2 34 c6 34 db 34 e6 34 fe 34 14 35 21 35 5e 35 63 35 ;4B4.4.4.4.4.4.4.4.4.4.4.5!5^5c5
73ba0 84 35 89 35 a8 35 48 36 4d 36 5f 36 7d 36 91 36 97 36 00 37 06 37 0d 37 2a 37 77 37 7c 37 c1 37 .5.5.5H6M6_6}6.6.6.7.7.7*7w7|7.7
73bc0 e4 37 f1 37 fd 37 05 38 0d 38 19 38 3d 38 45 38 50 38 56 38 5c 38 62 38 68 38 6e 38 74 38 7a 38 .7.7.7.8.8.8=8E8P8V8\8b8h8n8t8z8
73be0 80 38 9c 38 e2 38 02 39 00 00 00 20 00 00 24 00 00 00 dc 30 e8 30 ec 30 1c 31 20 31 74 31 78 31 .8.8.8.9......$....0.0.0.1.1t1x1
73c00 1c 32 20 32 40 32 5c 32 60 32 68 32 74 32 00 30 00 00 0c 00 00 00 18 30 00 00 00 00 00 00 00 00 .2.2@2\2`2h2t2.0.......0........
73c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73ca0 00 00 00 00 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ..........<?php...........namesp
73cc0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a ace.Symfony\Component\Process;..
73ce0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 use.Symfony\Component\Process\Ex
73d00 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a ception\RuntimeException;.......
73d20 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 50 72 6f 63 65 73 73 20 65 78 74 65 6e 64 73 20 50 ......class.PhpProcess.extends.P
73d40 72 6f 63 65 73 73 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 rocess.{.private.$executableFind
73d60 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 er;.............public.function.
73d80 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c __construct($script,.$cwd.=.null
73da0 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 2c 20 24 74 69 6d 65 6f 75 74 ,.array.$env.=.array(),.$timeout
73dc0 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 .=.60,.array.$options.=.array())
73de0 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 6e 75 6c 6c 2c 20 24 63 77 .{.parent::__construct(null,.$cw
73e00 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c 20 24 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 d,.$env,.$script,.$timeout,.$opt
73e20 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 ions);..$this->executableFinder.
73e40 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 7d 0a 0a =.new.PhpExecutableFinder();.}..
73e60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 .....public.function.setPhpBinar
73e80 79 28 24 70 68 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 y($php).{.$this->setCommandLine(
73ea0 24 70 68 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $php);.}............public.funct
73ec0 69 6f 6e 20 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 ion.run($callback.=.null).{.if.(
73ee0 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 null.===.$this->getCommandLine()
73f00 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 68 70 20 3d 20 24 74 68 69 73 2d 3e ).{.if.(false.===.$php.=.$this->
73f20 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 29 20 7b 0a 74 68 72 6f executableFinder->find()).{.thro
73f40 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 w.new.RuntimeException('Unable.t
73f60 6f 20 66 69 6e 64 20 74 68 65 20 50 48 50 20 65 78 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d 0a o.find.the.PHP.executable.');.}.
73f80 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a $this->setCommandLine($php);.}..
73fa0 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d return.parent::run($callback);.}
73fc0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
73fe0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 fony\Component\Process;........c
74000 6c 61 73 73 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 lass.ExecutableFinder.{.private.
74020 73 74 61 74 69 63 20 24 69 73 57 69 6e 64 6f 77 73 3b 0a 0a 70 72 69 76 61 74 65 20 24 73 75 66 static.$isWindows;..private.$suf
74040 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e fixes.=.array('.exe',.'.bat',.'.
74060 63 6d 64 27 2c 20 27 2e 63 6f 6d 27 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 cmd',.'.com');..public.function.
74080 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 73 65 6c __construct().{.if.(null.===.sel
740a0 66 3a 3a 24 69 73 57 69 6e 64 6f 77 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 69 73 57 69 6e 64 6f 77 f::$isWindows).{.self::$isWindow
740c0 73 20 3d 20 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 50 48 50 5f 4f 53 2c 20 27 77 69 6e 27 29 s.=.0.===.stripos(PHP_OS,.'win')
740e0 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 66 66 69 78 ;.}.}..public.function.setSuffix
74100 65 73 28 61 72 72 61 79 20 24 73 75 66 66 69 78 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 es(array.$suffixes).{.$this->suf
74120 66 69 78 65 73 20 3d 20 24 73 75 66 66 69 78 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e fixes.=.$suffixes;.}..public.fun
74140 63 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 73 75 66 66 69 78 29 0a 7b 0a 24 74 68 69 73 ction.addSuffix($suffix).{.$this
74160 2d 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 75 66 66 69 78 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ->suffixes[].=.$suffix;.}.......
74180 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 2c 20 ....public.function.find($name,.
741a0 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 78 74 72 61 44 69 72 $default.=.null,.array.$extraDir
741c0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e s.=.array()).{.if.(ini_get('open
741e0 5f 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 61 72 63 68 50 61 74 68 20 3d 20 65 78 70 6c _basedir')).{.$searchPath.=.expl
74200 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 65 74 65 6e 76 28 27 6f 70 65 6e ode(PATH_SEPARATOR,.getenv('open
74220 5f 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f _basedir'));.$dirs.=.array();.fo
74240 72 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 74 68 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 reach.($searchPath.as.$path).{.i
74260 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 24 70 f.(is_dir($path)).{.$dirs[].=.$p
74280 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 69 6c 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 ath;.}.else.{.$file.=.str_replac
742a0 65 28 64 69 72 6e 61 6d 65 28 24 70 61 74 68 29 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 69 66 e(dirname($path),.'',.$path);.if
742c0 20 28 24 66 69 6c 65 20 3d 3d 20 24 6e 61 6d 65 20 26 26 20 69 73 5f 65 78 65 63 75 74 61 62 6c .($file.==.$name.&&.is_executabl
742e0 65 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a e($path)).{.return.$path;.}.}.}.
74300 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 65 78 }.else.{.$dirs.=.array_merge(.ex
74320 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 65 74 65 6e 76 28 27 50 41 plode(PATH_SEPARATOR,.getenv('PA
74340 54 48 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 27 29 29 2c 0a 24 65 78 74 72 61 44 TH').?:.getenv('Path')),.$extraD
74360 69 72 73 0a 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 27 29 3b irs.);.}..$suffixes.=.array('');
74380 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f .if.(defined('PHP_WINDOWS_VERSIO
743a0 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 70 61 74 68 45 78 74 20 3d 20 67 65 74 65 6e 76 28 27 N_BUILD')).{.$pathExt.=.getenv('
743c0 50 41 54 48 45 58 54 27 29 3b 0a 24 73 75 66 66 69 78 65 73 20 3d 20 24 70 61 74 68 45 78 74 20 PATHEXT');.$suffixes.=.$pathExt.
743e0 3f 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 70 61 74 68 45 ?.explode(PATH_SEPARATOR,.$pathE
74400 78 74 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 3b 0a 7d 0a 66 6f 72 65 61 63 68 xt).:.$this->suffixes;.}.foreach
74420 20 28 24 73 75 66 66 69 78 65 73 20 61 73 20 24 73 75 66 66 69 78 29 20 7b 0a 66 6f 72 65 61 63 .($suffixes.as.$suffix).{.foreac
74440 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 h.($dirs.as.$dir).{.if.(is_file(
74460 24 66 69 6c 65 20 3d 20 24 64 69 72 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 $file.=.$dir.DIRECTORY_SEPARATOR
74480 2e 24 6e 61 6d 65 2e 24 73 75 66 66 69 78 29 20 26 26 20 28 73 65 6c 66 3a 3a 24 69 73 57 69 6e .$name.$suffix).&&.(self::$isWin
744a0 64 6f 77 73 20 7c 7c 20 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 66 69 6c 65 29 29 29 20 7b dows.||.is_executable($file))).{
744c0 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 .return.$file;.}.}.}..return.$de
744e0 66 61 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 fault;.}.}.<?php...........names
74500 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a pace.Symfony\Component\Process;.
74520 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 .use.Symfony\Component\Process\E
74540 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f xception\InvalidArgumentExceptio
74560 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 n;.use.Symfony\Component\Process
74580 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a \Exception\RuntimeException;....
745a0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 ......class.Process.{.const.ERR.
745c0 3d 20 27 65 72 72 27 3b 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e =.'err';.const.OUT.=.'out';..con
745e0 73 74 20 53 54 41 54 55 53 5f 52 45 41 44 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 st.STATUS_READY.=.'ready';.const
74600 20 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e .STATUS_STARTED.=.'started';.con
74620 73 74 20 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 st.STATUS_TERMINATED.=.'terminat
74640 65 64 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 ed';..const.STDIN.=.0;.const.STD
74660 4f 55 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 44 45 52 52 20 3d 20 32 3b 0a 0a 70 72 69 76 OUT.=.1;.const.STDERR.=.2;..priv
74680 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a ate.$commandline;.private.$cwd;.
746a0 70 72 69 76 61 74 65 20 24 65 6e 76 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 69 6e 3b 0a 70 72 private.$env;.private.$stdin;.pr
746c0 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 ivate.$timeout;.private.$options
746e0 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 66 61 ;.private.$exitcode;.private.$fa
74700 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 llbackExitcode;.private.$process
74720 49 6e 66 6f 72 6d 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 6f 75 74 3b 0a 70 72 Information;.private.$stdout;.pr
74740 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 57 ivate.$stderr;.private.$enhanceW
74760 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 65 6e indowsCompatibility;.private.$en
74780 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 hanceSigchildCompatibility;.priv
747a0 61 74 65 20 24 70 69 70 65 73 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 ate.$pipes;.private.$process;.pr
747c0 69 76 61 74 65 20 24 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 ivate.$status.=.self::STATUS_REA
747e0 44 59 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 70 72 69 76 61 DY;..private.$fileHandles;.priva
74800 74 65 20 24 72 65 61 64 42 79 74 65 73 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 te.$readBytes;..private.static.$
74820 73 69 67 63 68 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 sigchild;.........public.static.
74840 24 65 78 69 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 4f 4b 27 2c 0a 31 $exitCodes.=.array(.0.=>.'OK',.1
74860 20 3d 3e 20 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 27 2c 0a 32 20 3d 3e 20 27 4d 69 73 75 73 .=>.'General.error',.2.=>.'Misus
74880 65 20 6f 66 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e 73 27 2c 0a 0a 31 32 36 20 3d 3e 20 27 49 e.of.shell.builtins',..126.=>.'I
748a0 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 6e 6f 74 20 65 78 65 63 75 74 65 27 2c 0a nvoked.command.cannot.execute',.
748c0 31 32 37 20 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 31 32 38 20 127.=>.'Command.not.found',.128.
748e0 3d 3e 20 27 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 72 67 75 6d 65 6e 74 27 2c 0a 0a 0a 20 31 =>.'Invalid.exit.argument',....1
74900 32 39 20 3d 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 30 20 3d 3e 20 27 49 6e 74 65 72 72 75 70 29.=>.'Hangup',.130.=>.'Interrup
74920 74 27 2c 0a 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 6e 64 20 64 75 6d 70 20 63 6f 72 65 27 2c t',.131.=>.'Quit.and.dump.core',
74940 0a 31 33 32 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 27 2c 0a 31 .132.=>.'Illegal.instruction',.1
74960 33 33 20 3d 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 70 27 2c 0a 31 33.=>.'Trace/breakpoint.trap',.1
74980 33 34 20 3d 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f 72 74 65 64 27 2c 0a 31 33 35 20 3d 3e 20 34.=>.'Process.aborted',.135.=>.
749a0 27 42 75 73 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 73 20 74 6f 20 75 6e 64 65 66 69 6e 65 64 'Bus.error:."access.to.undefined
749c0 20 70 6f 72 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 62 6a 65 63 74 22 27 2c 0a 31 33 36 .portion.of.memory.object"',.136
749e0 20 3d 3e 20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 78 63 65 70 74 69 6f 6e 3a 20 22 .=>.'Floating.point.exception:."
74a00 65 72 72 6f 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 69 6f 6e 22 27 erroneous.arithmetic.operation"'
74a20 2c 0a 31 33 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 72 6d 69 6e 61 74 65 20 69 6d 6d 65 64 69 ,.137.=>.'Kill.(terminate.immedi
74a40 61 74 65 6c 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 31 27 ately)',.138.=>.'User-defined.1'
74a60 2c 0a 31 33 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f 6e ,.139.=>.'Segmentation.violation
74a80 27 2c 0a 31 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 32 27 2c 0a 31 34 31 20 ',.140.=>.'User-defined.2',.141.
74aa0 3d 3e 20 27 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 77 69 74 68 20 6e 6f 20 6f 6e 65 20 72 65 =>.'Write.to.pipe.with.no.one.re
74ac0 61 64 69 6e 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 ading',.142.=>.'Signal.raised.by
74ae0 20 61 6c 61 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 65 72 6d 69 6e 61 74 69 6f 6e 20 28 72 65 .alarm',.143.=>.'Termination.(re
74b00 71 75 65 73 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 29 27 2c 0a 0a 20 31 34 35 20 3d 3e 20 27 quest.to.terminate)',...145.=>.'
74b20 43 68 69 6c 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 73 74 6f 70 70 65 Child.process.terminated,.stoppe
74b40 64 20 28 6f 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 2c 0a 31 34 36 20 3d 3e 20 27 43 6f 6e 74 d.(or.continued*)',.146.=>.'Cont
74b60 69 6e 75 65 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a 31 34 37 20 3d 3e 20 27 53 74 6f 70 20 65 inue.if.stopped',.147.=>.'Stop.e
74b80 78 65 63 75 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 6c 79 27 2c 0a 31 34 38 20 3d 3e 20 27 54 xecuting.temporarily',.148.=>.'T
74ba0 65 72 6d 69 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 6c 27 2c 0a 31 34 39 20 3d 3e 20 27 42 61 erminal.stop.signal',.149.=>.'Ba
74bc0 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 72 ckground.process.attempting.to.r
74be0 65 61 64 20 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 29 27 2c 0a 31 35 30 20 3d 3e 20 27 42 61 ead.from.tty.("in")',.150.=>.'Ba
74c00 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 77 ckground.process.attempting.to.w
74c20 72 69 74 65 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 29 27 2c 0a 31 35 31 20 3d 3e 20 27 55 72 rite.to.tty.("out")',.151.=>.'Ur
74c40 67 65 6e 74 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 73 6f 63 6b 65 74 27 2c 0a gent.data.available.on.socket',.
74c60 31 35 32 20 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 27 152.=>.'CPU.time.limit.exceeded'
74c80 2c 0a 31 35 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 ,.153.=>.'File.size.limit.exceed
74ca0 65 64 27 2c 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 74 69 ed',.154.=>.'Signal.raised.by.ti
74cc0 6d 65 72 20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 61 6c 20 74 69 6d 65 3a 20 22 76 69 72 74 mer.counting.virtual.time:."virt
74ce0 75 61 6c 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 27 2c 0a 31 35 35 20 3d 3e 20 27 50 72 6f ual.timer.expired"',.155.=>.'Pro
74d00 66 69 6c 69 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 27 2c 0a 0a 20 31 35 37 20 3d 3e 20 filing.timer.expired',...157.=>.
74d20 27 50 6f 6c 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a 0a 20 31 35 39 20 3d 3e 20 27 42 61 64 20 'Pollable.event',...159.=>.'Bad.
74d40 73 79 73 63 61 6c 6c 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c syscall',.);................publ
74d60 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 ic.function.__construct($command
74d80 6c 69 6e 65 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d 20 line,.$cwd.=.null,.array.$env.=.
74da0 6e 75 6c 6c 2c 20 24 73 74 64 69 6e 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 null,.$stdin.=.null,.$timeout.=.
74dc0 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 60,.array.$options.=.array()).{.
74de0 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 if.(!function_exists('proc_open'
74e00 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 )).{.throw.new.RuntimeException(
74e20 27 54 68 65 20 50 72 6f 63 65 73 73 20 63 6c 61 73 73 20 72 65 6c 69 65 73 20 6f 6e 20 70 72 6f 'The.Process.class.relies.on.pro
74e40 63 5f 6f 70 65 6e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 6f c_open,.which.is.not.available.o
74e60 6e 20 79 6f 75 72 20 50 48 50 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 27 29 3b 0a 7d 0a 0a 24 n.your.PHP.installation.');.}..$
74e80 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 this->commandline.=.$commandline
74ea0 3b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 63 77 64 20 3f 20 67 ;.$this->cwd.=.null.===.$cwd.?.g
74ec0 65 74 63 77 64 28 29 20 3a 20 24 63 77 64 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 6e etcwd().:.$cwd;.if.(null.!==.$en
74ee0 76 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 v).{.$this->env.=.array();.forea
74f00 63 68 20 28 24 65 6e 76 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 ch.($env.as.$key.=>.$value).{.$t
74f20 68 69 73 2d 3e 65 6e 76 5b 28 62 69 6e 61 72 79 29 20 24 6b 65 79 5d 20 3d 20 28 62 69 6e 61 72 his->env[(binary).$key].=.(binar
74f40 79 29 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 y).$value;.}.}.else.{.$this->env
74f60 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e .=.null;.}.$this->stdin.=.$stdin
74f80 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 24 ;.$this->setTimeout($timeout);.$
74fa0 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 this->enhanceWindowsCompatibilit
74fc0 79 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 y.=.true;.$this->enhanceSigchild
74fe0 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 Compatibility.=.!defined('PHP_WI
75000 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e NDOWS_VERSION_BUILD').&&.$this->
75020 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 isSigchildEnabled();.$this->opti
75040 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 ons.=.array_replace(array('suppr
75060 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 ess_errors'.=>.true,.'binary_pip
75080 65 73 27 20 3d 3e 20 74 72 75 65 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c es'.=>.true),.$options);.}..publ
750a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 ic.function.__destruct().{...$th
750c0 69 73 2d 3e 73 74 6f 70 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f is->stop();.}..public.function._
750e0 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c _clone().{.$this->exitcode.=.nul
75100 6c 3b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c l;.$this->fallbackExitcode.=.nul
75120 6c 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 6e l;.$this->processInformation.=.n
75140 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 ull;.$this->stdout.=.null;.$this
75160 2d 3e 73 74 64 65 72 72 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 ->stderr.=.null;.$this->pipes.=.
75180 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 null;.$this->process.=.null;.$th
751a0 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b is->status.=.self::STATUS_READY;
751c0 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 .$this->fileHandles.=.null;.$thi
751e0 73 2d 3e 72 65 61 64 42 79 74 65 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->readBytes.=.null;.}..........
75200 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 24 ...........public.function.run($
75220 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 28 callback.=.null).{.$this->start(
75240 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 69 74 28 $callback);..return.$this->wait(
75260 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $callback);.}...................
75280 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 ....public.function.start($callb
752a0 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 ack.=.null).{.if.($this->isRunni
752c0 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 ng()).{.throw.new.RuntimeExcepti
752e0 6f 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 on('Process.is.already.running')
75300 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e ;.}..$this->stdout.=.'';.$this->
75320 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e stderr.=.'';.$callback.=.$this->
75340 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 0a 20 0a 20 0a buildCallback($callback);.......
75360 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f .if.(defined('PHP_WINDOWS_VERSIO
75380 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 N_BUILD')).{.$this->fileHandles.
753a0 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 74 6d 70 66 69 6c 65 =.array(.self::STDOUT.=>.tmpfile
753c0 28 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 79 28 (),.);.$this->readBytes.=.array(
753e0 0a 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 29 3b 0a 24 64 65 73 63 72 69 70 74 .self::STDOUT.=>.0,.);.$descript
75400 6f 72 73 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 20 ors.=.array(array('pipe',.'r'),.
75420 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d $this->fileHandles[self::STDOUT]
75440 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ,.array('pipe',.'w'));.}.else.{.
75460 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 $descriptors.=.array(.array('pip
75480 65 27 2c 20 27 72 27 29 2c 20 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 e',.'r'),...array('pipe',.'w'),.
754a0 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 29 3b 0a 0a 69 66 20 28 ..array('pipe',.'w'),...);..if.(
754c0 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c $this->enhanceSigchildCompatibil
754e0 69 74 79 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 ity.&&.$this->isSigchildEnabled(
75500 29 29 20 7b 0a 0a 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 )).{...$descriptors.=.array_merg
75520 65 28 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 e($descriptors,.array(array('pip
75540 65 27 2c 20 27 77 27 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 e',.'w')));..$this->commandline.
75560 3d 20 27 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 20 33 3e 2f 64 =.'('.$this->commandline.').3>/d
75580 65 76 2f 6e 75 6c 6c 3b 20 63 6f 64 65 3d 24 3f 3b 20 65 63 68 6f 20 24 63 6f 64 65 20 3e 26 33 ev/null;.code=$?;.echo.$code.>&3
755a0 3b 20 65 78 69 74 20 24 63 6f 64 65 27 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 ;.exit.$code';.}.}..$commandline
755c0 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 64 65 66 69 .=.$this->commandline;..if.(defi
755e0 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
75600 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 .&&.$this->enhanceWindowsCompati
75620 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d 64 20 2f 56 bility).{.$commandline.=.'cmd./V
75640 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 22 27 :ON./E:ON./C."'.$commandline.'"'
75660 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 ;.if.(!isset($this->options['byp
75680 61 73 73 5f 73 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 ass_shell'])).{.$this->options['
756a0 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 bypass_shell'].=.true;.}.}..$thi
756c0 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c s->process.=.proc_open($commandl
756e0 69 6e 65 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 2c ine,.$descriptors,.$this->pipes,
75700 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 74 68 69 73 2d 3e .$this->cwd,.$this->env,.$this->
75720 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 options);..if.(!is_resource($thi
75740 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 s->process)).{.throw.new.Runtime
75760 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 6c 61 75 6e 63 68 20 61 20 6e 65 Exception('Unable.to.launch.a.ne
75780 77 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 w.process.');.}.$this->status.=.
757a0 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 66 6f 72 65 61 63 68 20 28 self::STATUS_STARTED;..foreach.(
757c0 24 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f $this->pipes.as.$pipe).{.stream_
757e0 73 65 74 5f 62 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 set_blocking($pipe,.false);.}..i
75800 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 20 7b 0a 66 63 6c 6f f.(null.===.$this->stdin).{.fclo
75820 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 se($this->pipes[0]);.unset($this
75840 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 72 69 74 65 50 ->pipes[0]);..return;.}..$writeP
75860 69 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 ipes.=.array($this->pipes[0]);.u
75880 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 24 73 74 64 69 6e 4c 65 6e nset($this->pipes[0]);.$stdinLen
758a0 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 3b 0a 24 73 74 64 69 6e 4f .=.strlen($this->stdin);.$stdinO
758c0 66 66 73 65 74 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 24 77 72 69 74 65 50 69 70 65 73 29 20 ffset.=.0;..while.($writePipes).
758e0 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 {.if.(defined('PHP_WINDOWS_VERSI
75900 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 46 69 6c 65 ON_BUILD')).{.$this->processFile
75920 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 24 72 20 3d 20 24 74 68 69 Handles($callback);.}..$r.=.$thi
75940 73 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 24 77 72 69 74 65 50 69 70 65 73 3b 0a 24 65 20 3d s->pipes;.$w.=.$writePipes;.$e.=
75960 20 6e 75 6c 6c 3b 0a 0a 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 .null;..$n.=.@stream_select($r,.
75980 24 77 2c 20 24 65 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 29 3b 0a 0a 69 66 20 28 66 61 $w,.$e,.$this->timeout);..if.(fa
759a0 6c 73 65 20 3d 3d 3d 20 24 6e 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6e 20 3d 3d lse.===.$n).{.break;.}.if.($n.==
759c0 3d 20 30 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d 3e 70 72 6f =.0).{.proc_terminate($this->pro
759e0 63 65 73 73 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 cess);..throw.new.RuntimeExcepti
75a00 6f 6e 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 74 69 6d 65 64 20 6f 75 74 2e 27 29 3b 0a 7d 0a on('The.process.timed.out.');.}.
75a20 0a 69 66 20 28 24 77 29 20 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 69 74 65 28 24 77 72 .if.($w).{.$written.=.fwrite($wr
75a40 69 74 65 50 69 70 65 73 5b 30 5d 2c 20 28 62 69 6e 61 72 79 29 20 73 75 62 73 74 72 28 24 74 68 itePipes[0],.(binary).substr($th
75a60 69 73 2d 3e 73 74 64 69 6e 2c 20 24 73 74 64 69 6e 4f 66 66 73 65 74 29 2c 20 38 31 39 32 29 3b is->stdin,.$stdinOffset),.8192);
75a80 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 72 69 74 74 65 6e 29 20 7b 0a 24 73 74 64 69 .if.(false.!==.$written).{.$stdi
75aa0 6e 4f 66 66 73 65 74 20 2b 3d 20 24 77 72 69 74 74 65 6e 3b 0a 7d 0a 69 66 20 28 24 73 74 64 69 nOffset.+=.$written;.}.if.($stdi
75ac0 6e 4f 66 66 73 65 74 20 3e 3d 20 24 73 74 64 69 6e 4c 65 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 nOffset.>=.$stdinLen).{.fclose($
75ae0 77 72 69 74 65 50 69 70 65 73 5b 30 5d 29 3b 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d 20 6e 75 writePipes[0]);.$writePipes.=.nu
75b00 6c 6c 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b ll;.}.}..foreach.($r.as.$pipe).{
75b20 0a 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 70 69 70 65 2c 20 24 74 68 .$type.=.array_search($pipe,.$th
75b40 69 73 2d 3e 70 69 70 65 73 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c is->pipes);.$data.=.fread($pipe,
75b60 20 38 31 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b .8192);.if.(strlen($data).>.0).{
75b80 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 .call_user_func($callback,.$type
75ba0 20 3d 3d 20 31 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 .==.1.?.self::OUT.:.self::ERR,.$
75bc0 64 61 74 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 data);.}.if.(false.===.$data.||.
75be0 66 65 6f 66 28 24 70 69 70 65 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 75 6e feof($pipe)).{.fclose($pipe);.un
75c00 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a set($this->pipes[$type]);.}.}.}.
75c20 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .$this->updateStatus();.}.......
75c40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 74 61 72 ..........public.function.restar
75c60 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d t($callback.=.null).{.if.($this-
75c80 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 >isRunning()).{.throw.new.\Runti
75ca0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 meException('Process.is.already.
75cc0 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 63 6c 6f 6e 65 20 24 running');.}..$process.=.clone.$
75ce0 74 68 69 73 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 this;.$process->start($callback)
75d00 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ;..return.$process;.}...........
75d20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 28 24 63 61 6c 6c 62 61 ....public.function.wait($callba
75d40 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 ck.=.null).{.$this->updateStatus
75d60 28 29 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 61 6c 6c ();.$callback.=.$this->buildCall
75d80 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 70 back($callback);.while.($this->p
75da0 69 70 65 73 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 ipes.||.(defined('PHP_WINDOWS_VE
75dc0 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 RSION_BUILD').&&.$this->fileHand
75de0 6c 65 73 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 les)).{.if.(defined('PHP_WINDOWS
75e00 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 _VERSION_BUILD').&&.$this->fileH
75e20 61 6e 64 6c 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 andles).{.$this->processFileHand
75e40 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 21 24 74 68 69 73 2d 3e 70 69 70 65 73 29 3b 0a 7d les($callback,.!$this->pipes);.}
75e60 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 20 7b 0a 24 72 20 3d 20 24 74 68 69 73 ..if.($this->pipes).{.$r.=.$this
75e80 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 6e 75 6c 6c 3b 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a ->pipes;.$w.=.null;.$e.=.null;..
75ea0 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 $n.=.@stream_select($r,.$w,.$e,.
75ec0 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 $this->timeout);..if.(false.===.
75ee0 24 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 63 $n).{.$this->pipes.=.array();..c
75f00 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 29 20 7b 0a 70 72 6f 63 5f ontinue;.}.if.(0.===.$n).{.proc_
75f20 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 0a 74 68 72 6f terminate($this->process);..thro
75f40 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 70 72 6f 63 w.new.RuntimeException('The.proc
75f60 65 73 73 20 74 69 6d 65 64 20 6f 75 74 2e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 ess.timed.out.');.}..foreach.($r
75f80 20 61 73 20 24 70 69 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 .as.$pipe).{.$type.=.array_searc
75fa0 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 29 3b 0a 24 64 61 74 61 20 3d 20 h($pipe,.$this->pipes);.$data.=.
75fc0 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 fread($pipe,.8192);..if.(strlen(
75fe0 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 0a 20 69 66 20 28 33 20 3d 3d 20 24 74 79 70 65 29 20 $data).>.0).{...if.(3.==.$type).
76000 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 28 69 6e 74 {.$this->fallbackExitcode.=.(int
76020 29 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 ).$data;.}.else.{.call_user_func
76040 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 20 3d 3d 20 31 20 3f 20 73 65 6c 66 3a 3a 4f ($callback,.$type.==.1.?.self::O
76060 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 69 66 20 28 UT.:.self::ERR,.$data);.}.}.if.(
76080 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 66 65 6f 66 28 24 70 69 70 65 29 29 20 false.===.$data.||.feof($pipe)).
760a0 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 {.fclose($pipe);.unset($this->pi
760c0 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 75 70 64 61 pes[$type]);.}.}.}.}.$this->upda
760e0 74 65 53 74 61 74 75 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e teStatus();.if.($this->processIn
76100 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 74 68 72 6f 77 20 6e formation['signaled']).{.throw.n
76120 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 ew.RuntimeException(sprintf('The
76140 20 70 72 6f 63 65 73 73 20 73 74 6f 70 70 65 64 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 22 25 .process.stopped.because.of.a."%
76160 73 22 20 73 69 67 6e 61 6c 2e 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 s".signal.',.$this->processInfor
76180 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 24 74 69 6d 65 20 3d 20 mation['stopsig']));.}..$time.=.
761a0 30 3b 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 0;.while.($this->isRunning().&&.
761c0 24 74 69 6d 65 20 3c 20 31 30 30 30 30 30 30 29 20 7b 0a 24 74 69 6d 65 20 2b 3d 20 31 30 30 30 $time.<.1000000).{.$time.+=.1000
761e0 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 70 ;.usleep(1000);.}..$exitcode.=.p
76200 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 0a 69 66 20 28 roc_close($this->process);..if.(
76220 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 $this->processInformation['signa
76240 6c 65 64 27 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 led']).{.throw.new.RuntimeExcept
76260 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 73 74 6f 70 70 65 64 ion(sprintf('The.process.stopped
76280 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 22 25 73 22 20 73 69 67 6e 61 6c 2e 27 2c 20 24 74 68 .because.of.a."%s".signal.',.$th
762a0 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 is->processInformation['stopsig'
762c0 5d 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d ]));.}..$this->exitcode.=.$this-
762e0 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3f >processInformation['running'].?
76300 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 .$exitcode.:.$this->processInfor
76320 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 0a 69 66 20 28 2d 31 20 3d 3d 20 24 mation['exitcode'];..if.(-1.==.$
76340 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 this->exitcode.&&.null.!==.$this
76360 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 ->fallbackExitcode).{.$this->exi
76380 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 3b tcode.=.$this->fallbackExitcode;
763a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a .}..return.$this->exitcode;.}...
763c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 ......public.function.getOutput(
763e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 ).{.$this->updateOutput();..retu
76400 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rn.$this->stdout;.}.........publ
76420 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 ic.function.getErrorOutput().{.$
76440 74 68 69 73 2d 3e 75 70 64 61 74 65 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 this->updateErrorOutput();..retu
76460 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$this->stderr;.}...........pu
76480 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 blic.function.getExitCode().{.if
764a0 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 20 26 26 20 .($this->isSigchildEnabled().&&.
764c0 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 !$this->enhanceSigchildCompatibi
764e0 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 lity).{.throw.new.RuntimeExcepti
76500 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 on('This.PHP.has.been.compiled.w
76520 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 59 6f 75 20 6d 75 73 74 20 ith.--enable-sigchild..You.must.
76540 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c use.setEnhanceSigchildCompatibil
76560 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 68 6f 64 27 29 3b 0a 7d 0a 0a 24 ity().to.use.this.method');.}..$
76580 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 this->updateStatus();..return.$t
765a0 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 his->exitcode;.}...............p
765c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 ublic.function.getExitCodeText()
765e0 0a 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 .{.$exitcode.=.$this->getExitCod
76600 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f e();..return.isset(self::$exitCo
76620 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 des[$exitcode]).?.self::$exitCod
76640 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 3b es[$exitcode].:.'Unknown.error';
76660 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 .}...........public.function.isS
76680 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 30 20 3d 3d 20 24 74 68 69 73 2d uccessful().{.return.0.==.$this-
766a0 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 >getExitCode();.}.............pu
766c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 29 0a blic.function.hasBeenSignaled().
766e0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 {.if.($this->isSigchildEnabled()
76700 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 ).{.throw.new.RuntimeException('
76720 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 This.PHP.has.been.compiled.with.
76740 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 --enable-sigchild..Term.signal.c
76760 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d an.not.be.retrieved');.}..$this-
76780 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e >updateStatus();..return.$this->
767a0 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 3b 0a processInformation['signaled'];.
767c0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 }.............public.function.ge
767e0 74 54 65 72 6d 53 69 67 6e 61 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 tTermSignal().{.if.($this->isSig
76800 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 childEnabled()).{.throw.new.Runt
76820 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 imeException('This.PHP.has.been.
76840 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e compiled.with.--enable-sigchild.
76860 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 .Term.signal.can.not.be.retrieve
76880 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a d');.}..$this->updateStatus();..
768a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e return.$this->processInformation
768c0 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ['termsig'];.}...........public.
768e0 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 function.hasBeenStopped().{.$thi
76900 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->updateStatus();..return.$this
76920 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 70 65 64 27 5d 3b ->processInformation['stopped'];
76940 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .}...........public.function.get
76960 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 StopSignal().{.$this->updateStat
76980 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f us();..return.$this->processInfo
769a0 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rmation['stopsig'];.}.......publ
769c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a 69 66 20 28 73 65 ic.function.isRunning().{.if.(se
769e0 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 lf::STATUS_STARTED.!==.$this->st
76a00 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e atus).{.return.false;.}..$this->
76a20 75 70 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 updateStatus();..return.$this->p
76a40 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 3b 0a 7d 0a rocessInformation['running'];.}.
76a60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 ..........public.function.stop($
76a80 74 69 6d 65 6f 75 74 3d 31 30 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 28 69 timeout=10).{.$timeoutMicro.=.(i
76aa0 6e 74 29 20 24 74 69 6d 65 6f 75 74 2a 31 30 45 36 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 nt).$timeout*10E6;.if.($this->is
76ac0 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 Running()).{.proc_terminate($thi
76ae0 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 69 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 31 s->process);.$time.=.0;.while.(1
76b00 20 3d 3d 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 24 74 69 6d 65 20 .==.$this->isRunning().&&.$time.
76b20 3c 20 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 29 20 7b 0a 24 74 69 6d 65 20 2b 3d 20 31 30 30 30 <.$timeoutMicro).{.$time.+=.1000
76b40 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ;.usleep(1000);.}..foreach.($thi
76b60 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 s->pipes.as.$pipe).{.fclose($pip
76b80 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 e);.}.$this->pipes.=.array();..$
76ba0 65 78 69 74 63 6f 64 65 20 3d 20 70 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f exitcode.=.proc_close($this->pro
76bc0 63 65 73 73 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 20 3d 3d 3d 20 cess);.$this->exitcode.=.-1.===.
76be0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 $this->processInformation['exitc
76c00 6f 64 65 27 5d 20 3f 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 ode'].?.$exitcode.:.$this->proce
76c20 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 0a 69 66 20 28 ssInformation['exitcode'];..if.(
76c40 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
76c60 4c 44 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 LD')).{.foreach.($this->fileHand
76c80 6c 65 73 20 61 73 20 24 66 69 6c 65 48 61 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 66 69 les.as.$fileHandle).{.fclose($fi
76ca0 6c 65 48 61 6e 64 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 leHandle);.}.$this->fileHandles.
76cc0 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 =.array();.}.}.$this->status.=.s
76ce0 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 0a 72 65 74 75 72 6e 20 elf::STATUS_TERMINATED;..return.
76d00 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $this->exitcode;.}.......public.
76d20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 function.addOutput($line).{.$thi
76d40 73 2d 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c s->stdout..=.$line;.}.......publ
76d60 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e 65 ic.function.addErrorOutput($line
76d80 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a ).{.$this->stderr..=.$line;.}...
76da0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 ....public.function.getCommandLi
76dc0 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 ne().{.return.$this->commandline
76de0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 ;.}.........public.function.setC
76e00 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 ommandLine($commandline).{.$this
76e20 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 72 ->commandline.=.$commandline;..r
76e40 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 eturn.$this;.}.......public.func
76e60 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getTimeout().{.return.$this
76e80 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ->timeout;.}.............public.
76ea0 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a function.setTimeout($timeout).{.
76ec0 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e if.(null.===.$timeout).{.$this->
76ee0 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d timeout.=.null;..return.$this;.}
76f00 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 69 6e 74 65 67 65 72 29 20 24 74 69 6d 65 6f 75 74 3b ..$timeout.=.(integer).$timeout;
76f20 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ..if.($timeout.<.0).{.throw.new.
76f40 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 InvalidArgumentException('The.ti
76f60 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 meout.value.must.be.a.valid.posi
76f80 74 69 76 65 20 69 6e 74 65 67 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f tive.integer.');.}..$this->timeo
76fa0 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ut.=.$timeout;..return.$this;.}.
76fc0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 6f 72 6b 69 6e 67 ......public.function.getWorking
76fe0 44 69 72 65 63 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b Directory().{.return.$this->cwd;
77000 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f .}.........public.function.setWo
77020 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 rkingDirectory($cwd).{.$this->cw
77040 64 20 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a d.=.$cwd;..return.$this;.}......
77060 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 28 29 0a 7b 0a 72 65 74 75 .public.function.getEnv().{.retu
77080 72 6e 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$this->env;.}.........public.
770a0 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 24 74 function.setEnv(array.$env).{.$t
770c0 68 69 73 2d 3e 65 6e 76 20 3d 20 24 65 6e 76 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a his->env.=.$env;..return.$this;.
770e0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 64 69 6e }.......public.function.getStdin
77100 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 3b 0a 7d 0a 0a 0a 0a 0a ().{.return.$this->stdin;.}.....
77120 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 64 69 6e 28 24 73 74 ....public.function.setStdin($st
77140 64 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 din).{.$this->stdin.=.$stdin;..r
77160 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 eturn.$this;.}.......public.func
77180 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getOptions().{.return.$this
771a0 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->options;.}.........public.func
771c0 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a tion.setOptions(array.$options).
771e0 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 72 65 {.$this->options.=.$options;..re
77200 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e turn.$this;.}.........public.fun
77220 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 ction.getEnhanceWindowsCompatibi
77240 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 lity().{.return.$this->enhanceWi
77260 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ndowsCompatibility;.}.........pu
77280 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 blic.function.setEnhanceWindowsC
772a0 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e ompatibility($enhance).{.$this->
772c0 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 42 enhanceWindowsCompatibility.=.(B
772e0 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b oolean).$enhance;..return.$this;
77300 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 .}.......public.function.getEnha
77320 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 nceSigchildCompatibility().{.ret
77340 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 urn.$this->enhanceSigchildCompat
77360 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ibility;.}.............public.fu
77380 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 nction.setEnhanceSigchildCompati
773a0 62 69 6c 69 74 79 28 24 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 bility($enhance).{.$this->enhanc
773c0 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 42 6f 6f 6c 65 61 eSigchildCompatibility.=.(Boolea
773e0 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a n).$enhance;..return.$this;.}...
77400 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c .........protected.function.buil
77420 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 dCallback($callback).{.$that.=.$
77440 74 68 69 73 3b 0a 24 6f 75 74 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 65 72 72 20 3d 20 73 this;.$out.=.self::OUT;.$err.=.s
77460 65 6c 66 3a 3a 45 52 52 3b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 elf::ERR;.$callback.=.function.(
77480 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 $type,.$data).use.($that,.$callb
774a0 61 63 6b 2c 20 24 6f 75 74 2c 20 24 65 72 72 29 20 7b 0a 69 66 20 28 24 6f 75 74 20 3d 3d 20 24 ack,.$out,.$err).{.if.($out.==.$
774c0 74 79 70 65 29 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b type).{.$that->addOutput($data);
774e0 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 .}.else.{.$that->addErrorOutput(
77500 24 64 61 74 61 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 $data);.}..if.(null.!==.$callbac
77520 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 k).{.call_user_func($callback,.$
77540 74 79 70 65 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 63 61 6c 6c type,.$data);.}.};..return.$call
77560 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 back;.}.....protected.function.u
77580 70 64 61 74 65 53 74 61 74 75 73 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 pdateStatus().{.if.(self::STATUS
775a0 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 _STARTED.!==.$this->status).{.re
775c0 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 turn;.}..$this->processInformati
775e0 6f 6e 20 3d 20 70 72 6f 63 5f 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 on.=.proc_get_status($this->proc
77600 65 73 73 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 ess);.if.(!$this->processInforma
77620 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 tion['running']).{.$this->status
77640 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 69 66 20 28 .=.self::STATUS_TERMINATED;.if.(
77660 2d 31 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e -1.!==.$this->processInformation
77680 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 ['exitcode']).{.$this->exitcode.
776a0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 =.$this->processInformation['exi
776c0 74 63 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 tcode'];.}.}.}..protected.functi
776e0 6f 6e 20 75 70 64 61 74 65 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 69 73 73 on.updateErrorOutput().{.if.(iss
77700 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 20 26 et($this->pipes[self::STDERR]).&
77720 26 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a &.is_resource($this->pipes[self:
77740 3a 53 54 44 45 52 52 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 :STDERR])).{.$this->addErrorOutp
77760 75 74 28 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 69 ut(stream_get_contents($this->pi
77780 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 pes[self::STDERR]));.}.}..protec
777a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 ted.function.updateOutput().{.if
777c0 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 .(defined('PHP_WINDOWS_VERSION_B
777e0 55 49 4c 44 27 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c UILD').&&.isset($this->fileHandl
77800 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 es[self::STDOUT]).&&.is_resource
77820 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 ($this->fileHandles[self::STDOUT
77840 5d 29 29 20 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 ])).{.fseek($this->fileHandles[s
77860 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 73 elf::STDOUT],.$this->readBytes[s
77880 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 74 70 75 74 28 elf::STDOUT]);.$this->addOutput(
778a0 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 stream_get_contents($this->fileH
778c0 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 20 65 6c 73 65 69 66 andles[self::STDOUT]));.}.elseif
778e0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 .(isset($this->pipes[self::STDOU
77900 54 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b T]).&&.is_resource($this->pipes[
77920 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 74 70 self::STDOUT])).{.$this->addOutp
77940 75 74 28 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 69 ut(stream_get_contents($this->pi
77960 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 pes[self::STDOUT]));.}.}.......p
77980 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 rotected.function.isSigchildEnab
779a0 6c 65 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 69 67 63 led().{.if.(null.!==.self::$sigc
779c0 68 69 6c 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 3b 0a hild).{.return.self::$sigchild;.
779e0 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 }..ob_start();.phpinfo(INFO_GENE
77a00 52 41 4c 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 20 3d 20 RAL);..return.self::$sigchild.=.
77a20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 2c false.!==.strpos(ob_get_clean(),
77a40 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .'--enable-sigchild');.}........
77a60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 private.function.processFileHand
77a80 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 6f 73 65 45 6d 70 74 79 48 61 6e 64 6c 65 les($callback,.$closeEmptyHandle
77aa0 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 s.=.false).{.$fh.=.$this->fileHa
77ac0 6e 64 6c 65 73 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 65 20 3d 3e 20 ndles;.foreach.($fh.as.$type.=>.
77ae0 24 66 69 6c 65 48 61 6e 64 6c 65 29 20 7b 0a 66 73 65 65 6b 28 24 66 69 6c 65 48 61 6e 64 6c 65 $fileHandle).{.fseek($fileHandle
77b00 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 3b 0a 24 64 61 74 ,.$this->readBytes[$type]);.$dat
77b20 61 20 3d 20 66 72 65 61 64 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 38 31 39 32 29 3b 0a 69 66 a.=.fread($fileHandle,.8192);.if
77b40 20 28 73 74 72 6c 65 6e 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 .(strlen($data).>.0).{.$this->re
77b60 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 20 2b 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b adBytes[$type].+=.strlen($data);
77b80 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 .call_user_func($callback,.$type
77ba0 20 3d 3d 20 31 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 .==.1.?.self::OUT.:.self::ERR,.$
77bc0 64 61 74 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 data);.}.if.(false.===.$data.||.
77be0 28 24 63 6c 6f 73 65 45 6d 70 74 79 48 61 6e 64 6c 65 73 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 ($closeEmptyHandles.&&.''.===.$d
77c00 61 74 61 20 26 26 20 66 65 6f 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 29 20 7b 0a 66 63 6c ata.&&.feof($fileHandle))).{.fcl
77c20 6f 73 65 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 66 ose($fileHandle);.unset($this->f
77c40 69 6c 65 48 61 6e 64 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 ileHandles[$type]);.}.}.}.}.<?ph
77c60 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
77c80 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f mponent\Process;..use.Symfony\Co
77ca0 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 mponent\Process\Exception\Invali
77cc0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c dArgumentException;.use.Symfony\
77ce0 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 Component\Process\Exception\Logi
77d00 63 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 cException;.......class.ProcessB
77d20 75 69 6c 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 uilder.{.private.$arguments;.pri
77d40 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 3b 0a 70 72 69 76 61 74 65 vate.$cwd;.private.$env;.private
77d60 20 24 73 74 64 69 6e 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 .$stdin;.private.$timeout;.priva
77d80 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 68 65 72 69 74 45 6e 76 te.$options;.private.$inheritEnv
77da0 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ;..public.function.__construct(a
77dc0 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 rray.$arguments.=.array()).{.$th
77de0 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 24 74 68 is->arguments.=.$arguments;..$th
77e00 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 36 30 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 is->timeout.=.60;.$this->options
77e20 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 29 .=.array();.$this->env.=.array()
77e40 3b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 ;.$this->inheritEnv.=.true;.}..p
77e60 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 61 72 72 ublic.static.function.create(arr
77e80 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 ay.$arguments.=.array()).{.retur
77ea0 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a n.new.static($arguments);.}.....
77ec0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 61 72 67 75 6d 65 6e 74 29 ..public.function.add($argument)
77ee0 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 61 72 67 75 6d 65 6e .{.$this->arguments[].=.$argumen
77f00 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 t;..return.$this;.}..public.func
77f20 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b tion.setWorkingDirectory($cwd).{
77f40 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 .$this->cwd.=.$cwd;..return.$thi
77f60 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 s;.}..public.function.inheritEnv
77f80 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 ironmentVariables($inheritEnv.=.
77fa0 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 true).{.$this->inheritEnv.=.$inh
77fc0 65 72 69 74 45 6e 76 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 eritEnv;..return.$this;.}..publi
77fe0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 c.function.setEnv($name,.$value)
78000 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a .{.$this->env[$name].=.$value;..
78020 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e return.$this;.}..public.function
78040 20 73 65 74 49 6e 70 75 74 28 24 73 74 64 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e .setInput($stdin).{.$this->stdin
78060 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a .=.$stdin;..return.$this;.}.....
78080 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 ....public.function.setTimeout($
780a0 74 69 6d 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 timeout).{.if.(null.===.$timeout
780c0 29 20 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 ).{.$this->timeout.=.null;..retu
780e0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 69 6e 74 65 67 65 72 rn.$this;.}..$timeout.=.(integer
78100 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b ).$timeout;..if.($timeout.<.0).{
78120 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 .throw.new.InvalidArgumentExcept
78140 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 ion('The.timeout.value.must.be.a
78160 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 27 29 3b 0a 7d 0a 0a 24 .valid.positive.integer.');.}..$
78180 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 72 this->timeout.=.$timeout;..retur
781a0 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f n.$this;.}..public.function.setO
781c0 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 ption($name,.$value).{.$this->op
781e0 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 tions[$name].=.$value;..return.$
78200 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 this;.}..public.function.getProc
78220 65 73 73 28 29 0a 7b 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 ess().{.if.(!count($this->argume
78240 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e nts)).{.throw.new.LogicException
78260 28 27 59 6f 75 20 6d 75 73 74 20 61 64 64 28 29 20 63 6f 6d 6d 61 6e 64 20 61 72 67 75 6d 65 6e ('You.must.add().command.argumen
78280 74 73 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 67 65 74 50 72 6f 63 65 73 73 28 29 2e 27 ts.before.calling.getProcess().'
782a0 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b );.}..$options.=.$this->options;
782c0 0a 0a 24 73 63 72 69 70 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d ..$script.=.implode('.',.array_m
782e0 61 70 28 27 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 27 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 ap('escapeshellarg',.$this->argu
78300 6d 65 6e 74 73 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 ments));..if.($this->inheritEnv)
78320 20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 65 6e 76 20 3f 20 24 74 68 69 73 2d 3e 65 6e .{.$env.=.$this->env.?.$this->en
78340 76 20 2b 20 24 5f 45 4e 56 20 3a 20 6e 75 6c 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 6e 76 20 v.+.$_ENV.:.null;.}.else.{.$env.
78360 3d 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 =.$this->env;.}..return.new.Proc
78380 65 73 73 28 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 65 6e 76 2c 20 24 ess($script,.$this->cwd,.$env,.$
783a0 74 68 69 73 2d 3e 73 74 64 69 6e 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 2c 20 24 6f 70 this->stdin,.$this->timeout,.$op
783c0 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 tions);.}.}.<?php...........name
783e0 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c space.Symfony\Component\Process\
78400 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 Exception;.......interface.Excep
78420 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a tionInterface.{.}.<?php.........
78440 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 ..namespace.Symfony\Component\Pr
78460 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e ocess\Exception;.......class.Run
78480 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 timeException.extends.\RuntimeEx
784a0 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 ception.implements.ExceptionInte
784c0 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 rface.{.}.<?php...........namesp
784e0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 ace.Symfony\Component\Process\Ex
78500 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 67 69 63 45 78 63 65 70 74 ception;.......class.LogicExcept
78520 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c ion.extends.\LogicException.impl
78540 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f ements.ExceptionInterface.{.}.<?
78560 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
78580 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 Component\Process\Exception;..us
785a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 e.Symfony\Component\Process\Proc
785c0 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 ess;.......class.ProcessFailedEx
785e0 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ception.extends.RuntimeException
78600 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e .{.private.$process;..public.fun
78620 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 ction.__construct(Process.$proce
78640 73 73 29 0a 7b 0a 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c ss).{.if.($process->isSuccessful
78660 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 ()).{.throw.new.InvalidArgumentE
78680 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 74 65 64 20 61 20 66 61 69 6c 65 64 20 70 72 6f 63 xception('Expected.a.failed.proc
786a0 65 73 73 2c 20 62 75 74 20 74 68 65 20 67 69 76 65 6e 20 70 72 6f 63 65 73 73 20 77 61 73 20 73 ess,.but.the.given.process.was.s
786c0 75 63 63 65 73 73 66 75 6c 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 uccessful.');.}..parent::__const
786e0 72 75 63 74 28 0a 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 ruct(.sprintf(.'The.command."%s"
78700 20 66 61 69 6c 65 64 2e 27 2e 22 5c 6e 5c 6e 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d .failed.'."\n\nOutput:\n========
78720 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 ========\n".$process->getOutput(
78740 29 2e 22 5c 6e 5c 6e 45 72 72 6f 72 20 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d )."\n\nError.Output:\n==========
78760 3d 3d 3d 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 ======\n".$process->getErrorOutp
78780 75 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 ut(),.$process->getCommandLine()
787a0 0a 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 .).);..$this->process.=.$process
787c0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 ;.}..public.function.getProcess(
787e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c ).{.return.$this->process;.}.}.<
78800 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 ?php...........namespace.Symfony
78820 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a \Component\Process\Exception;...
78840 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 ....class.InvalidArgumentExcepti
78860 6f 6e 20 65 78 74 65 6e 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 on.extends.\InvalidArgumentExcep
78880 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 tion.implements.ExceptionInterfa
788a0 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ce.{.}.<?php...........namespace
788c0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a .Symfony\Component\Process;.....
788e0 0a 0a 0a 63 6c 61 73 73 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 ...class.PhpExecutableFinder.{.p
78900 72 69 76 61 74 65 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 70 75 62 6c 69 rivate.$executableFinder;..publi
78920 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 c.function.__construct().{.$this
78940 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 ->executableFinder.=.new.Executa
78960 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 bleFinder();.}.......public.func
78980 74 69 6f 6e 20 66 69 6e 64 28 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 tion.find().{...if.(defined('PHP
789a0 5f 42 49 4e 41 52 59 27 29 20 26 26 20 50 48 50 5f 42 49 4e 41 52 59 20 26 26 20 28 27 63 6c 69 _BINARY').&&.PHP_BINARY.&&.('cli
789c0 27 20 3d 3d 3d 20 50 48 50 5f 53 41 50 49 29 29 20 7b 0a 72 65 74 75 72 6e 20 50 48 50 5f 42 49 '.===.PHP_SAPI)).{.return.PHP_BI
789e0 4e 41 52 59 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f NARY;.}..if.($php.=.getenv('PHP_
78a00 50 41 54 48 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 PATH')).{.if.(!is_executable($ph
78a20 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 p)).{.return.false;.}..return.$p
78a40 68 70 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 27 50 48 50 5f 50 45 hp;.}..if.($php.=.getenv('PHP_PE
78a60 41 52 5f 50 48 50 5f 42 49 4e 27 29 29 20 7b 0a 69 66 20 28 69 73 5f 65 78 65 63 75 74 61 62 6c AR_PHP_BIN')).{.if.(is_executabl
78a80 65 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 7d 0a 0a 24 64 69 e($php)).{.return.$php;.}.}..$di
78aa0 72 73 20 3d 20 61 72 72 61 79 28 50 48 50 5f 42 49 4e 44 49 52 29 3b 0a 69 66 20 28 64 65 66 69 rs.=.array(PHP_BINDIR);.if.(defi
78ac0 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
78ae0 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 3a 5c 78 61 6d 70 70 5c 70 68 70 5c 5c 27 3b 0a ).{.$dirs[].=.'C:\xampp\php\\';.
78b00 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 }..return.$this->executableFinde
78b20 72 2d 3e 66 69 6e 64 28 27 70 68 70 27 2c 20 66 61 6c 73 65 2c 20 24 64 69 72 73 29 3b 0a 7d 0a r->find('php',.false,.$dirs);.}.
78b40 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
78b60 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a ony\Component\Console\Command;..
78b80 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
78ba0 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 put\InputArgument;.use.Symfony\C
78bc0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 omponent\Console\Input\InputOpti
78be0 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
78c00 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
78c20 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
78c40 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e putInterface;.use.Symfony\Compon
78c60 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a ent\Console\Command\Command;....
78c80 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d ...class.HelpCommand.extends.Com
78ca0 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f mand.{.private.$command;.....pro
78cc0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 tected.function.configure().{.$t
78ce0 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 3b 0a 0a his->ignoreValidationErrors();..
78d00 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 68 65 6c 70 27 29 0a 2d 3e 73 65 74 44 65 66 $this.->setName('help').->setDef
78d20 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 inition(array(.new.InputArgument
78d40 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a ('command_name',.InputArgument::
78d60 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 OPTIONAL,.'The.command.name',.'h
78d80 65 6c 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 elp'),.new.InputOption('xml',.nu
78da0 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f ll,.InputOption::VALUE_NONE,.'To
78dc0 20 6f 75 74 70 75 74 20 68 65 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 .output.help.as.XML'),.)).->setD
78de0 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 escription('Displays.help.for.a.
78e00 63 6f 6d 6d 61 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c command').->setHelp(<<<EOF.The.<
78e20 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 info>%command.name%</info>.comma
78e40 6e 64 20 64 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 6f 6d nd.displays.help.for.a.given.com
78e60 6d 61 6e 64 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c mand:....<info>php.%command.full
78e80 5f 6e 61 6d 65 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f _name%.list</info>..You.can.also
78ea0 20 6f 75 74 70 75 74 20 74 68 65 20 68 65 6c 70 20 61 73 20 58 4d 4c 20 62 79 20 75 73 69 6e 67 .output.the.help.as.XML.by.using
78ec0 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 78 6d 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 .the.<comment>--xml</comment>.op
78ee0 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c tion:....<info>php.%command.full
78f00 5f 6e 61 6d 65 25 20 2d 2d 78 6d 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 64 69 73 _name%.--xml.list</info>..To.dis
78f20 70 6c 61 79 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 play.the.list.of.available.comma
78f40 6e 64 73 2c 20 70 6c 65 61 73 65 20 75 73 65 20 74 68 65 20 3c 69 6e 66 6f 3e 6c 69 73 74 3c 2f nds,.please.use.the.<info>list</
78f60 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 2e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 info>.command..EOF.).;.}.......p
78f80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e ublic.function.setCommand(Comman
78fa0 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 d.$command).{.$this->command.=.$
78fc0 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f command;.}.....protected.functio
78fe0 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c n.execute(InputInterface.$input,
79000 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 .OutputInterface.$output).{.if.(
79020 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 null.===.$this->command).{.$this
79040 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f ->command.=.$this->getApplicatio
79060 6e 28 29 2d 3e 66 69 6e 64 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 63 n()->find($input->getArgument('c
79080 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 ommand_name'));.}..if.($input->g
790a0 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 etOption('xml')).{.$output->writ
790c0 65 6c 6e 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 61 73 58 6d 6c 28 29 2c 20 4f 75 74 eln($this->command->asXml(),.Out
790e0 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d 20 65 6c 73 putInterface::OUTPUT_RAW);.}.els
79100 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 63 6f 6d 6d e.{.$output->writeln($this->comm
79120 61 6e 64 2d 3e 61 73 54 65 78 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e and->asText());.}..$this->comman
79140 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 d.=.null;.}.}.<?php...........na
79160 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
79180 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e e\Command;..use.Symfony\Componen
791a0 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b t\Console\Input\InputDefinition;
791c0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
791e0 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f nput\InputOption;.use.Symfony\Co
79200 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d mponent\Console\Input\InputArgum
79220 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ent;.use.Symfony\Component\Conso
79240 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d le\Input\InputInterface;.use.Sym
79260 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
79280 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f tputInterface;.use.Symfony\Compo
792a0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 nent\Console\Application;.use.Sy
792c0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 mfony\Component\Console\Helper\H
792e0 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a elperSet;.........class.Command.
79300 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 {.private.$application;.private.
79320 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 3b 0a 70 72 69 76 61 74 65 $name;.private.$aliases;.private
79340 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 3b 0a 70 72 69 .$definition;.private.$help;.pri
79360 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f vate.$description;.private.$igno
79380 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 reValidationErrors;.private.$app
793a0 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 3b 0a 70 72 69 76 61 74 licationDefinitionMerged;.privat
793c0 65 20 24 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 73 79 6e 6f 70 73 69 73 3b 0a 70 72 69 76 e.$code;.private.$synopsis;.priv
793e0 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ate.$helperSet;...........public
79400 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 6e 75 .function.__construct($name.=.nu
79420 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e ll).{.$this->definition.=.new.In
79440 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 putDefinition();.$this->ignoreVa
79460 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 lidationErrors.=.false;.$this->a
79480 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c pplicationDefinitionMerged.=.fal
794a0 73 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 se;.$this->aliases.=.array();..i
794c0 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4e f.(null.!==.$name).{.$this->setN
794e0 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 28 ame($name);.}..$this->configure(
79500 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 );..if.(!$this->name).{.throw.ne
79520 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e w.\LogicException('The.command.n
79540 61 6d 65 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ame.cannot.be.empty.');.}.}.....
79560 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 ..public.function.ignoreValidati
79580 6f 6e 45 72 72 6f 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 onErrors().{.$this->ignoreValida
795a0 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 tionErrors.=.true;.}.........pub
795c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c lic.function.setApplication(Appl
795e0 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 ication.$application.=.null).{.$
79600 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e this->application.=.$application
79620 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 ;.if.($application).{.$this->set
79640 48 65 6c 70 65 72 53 65 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 65 HelperSet($application->getHelpe
79660 72 53 65 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 rSet());.}.else.{.$this->helperS
79680 65 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 et.=.null;.}.}.......public.func
796a0 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c tion.setHelperSet(HelperSet.$hel
796c0 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 perSet).{.$this->helperSet.=.$he
796e0 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e lperSet;.}.......public.function
79700 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .getHelperSet().{.return.$this->
79720 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 helperSet;.}.........public.func
79740 74 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 tion.getApplication().{.return.$
79760 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 this->application;.}..........pu
79780 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 blic.function.isEnabled().{.retu
797a0 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f rn.true;.}.....protected.functio
797c0 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n.configure().{.}...............
797e0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e ...protected.function.execute(In
79800 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 putInterface.$input,.OutputInter
79820 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 face.$output).{.throw.new.\Logic
79840 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 6f 76 65 72 72 69 64 65 20 74 68 65 Exception('You.must.override.the
79860 20 65 78 65 63 75 74 65 28 29 20 6d 65 74 68 6f 64 20 69 6e 20 74 68 65 20 63 6f 6e 63 72 65 74 .execute().method.in.the.concret
79880 65 20 63 6f 6d 6d 61 6e 64 20 63 6c 61 73 73 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f e.command.class.');.}........pro
798a0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e tected.function.interact(InputIn
798c0 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
798e0 24 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 $output).{.}...........protected
79900 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 .function.initialize(InputInterf
79920 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
79940 70 75 74 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 put).{.}...................publi
79960 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 c.function.run(InputInterface.$i
79980 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b nput,.OutputInterface.$output).{
799a0 0a 0a 20 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 0a 0a 20 24 74 68 69 ...$this->getSynopsis();....$thi
799c0 73 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b s->mergeApplicationDefinition();
799e0 0a 0a 0a 20 74 72 79 20 7b 0a 24 69 6e 70 75 74 2d 3e 62 69 6e 64 28 24 74 68 69 73 2d 3e 64 65 ....try.{.$input->bind($this->de
79a00 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 finition);.}.catch.(\Exception.$
79a20 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f e).{.if.(!$this->ignoreValidatio
79a40 6e 45 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d nErrors).{.throw.$e;.}.}..$this-
79a60 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 >initialize($input,.$output);..i
79a80 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 f.($input->isInteractive()).{.$t
79aa0 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a his->interact($input,.$output);.
79ac0 7d 0a 0a 24 69 6e 70 75 74 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 }..$input->validate();..if.($thi
79ae0 73 2d 3e 63 6f 64 65 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 63 61 6c 6c 5f 75 73 s->code).{.$statusCode.=.call_us
79b00 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e 63 6f 64 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 er_func($this->code,.$input,.$ou
79b20 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 tput);.}.else.{.$statusCode.=.$t
79b40 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d his->execute($input,.$output);.}
79b60 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 ..return.is_numeric($statusCode)
79b80 20 3f 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .?.$statusCode.:.0;.}...........
79ba0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 5c 43 6c .....public.function.setCode(\Cl
79bc0 6f 73 75 72 65 20 24 63 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 63 6f osure.$code).{.$this->code.=.$co
79be0 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 de;..return.$this;.}.......priva
79c00 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 te.function.mergeApplicationDefi
79c20 6e 69 74 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 nition($mergeArgs.=.true).{.if.(
79c40 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 7c 7c 20 74 null.===.$this->application.||.t
79c60 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 rue.===.$this->applicationDefini
79c80 74 69 6f 6e 4d 65 72 67 65 64 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 tionMerged).{.return;.}..if.($me
79ca0 72 67 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 24 rgeArgs).{.$currentArguments.=.$
79cc0 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 this->definition->getArguments()
79ce0 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 ;.$this->definition->setArgument
79d00 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 s($this->application->getDefinit
79d20 69 6f 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 ion()->getArguments());.$this->d
79d40 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 63 75 72 72 65 6e 74 efinition->addArguments($current
79d60 41 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e Arguments);.}..$this->definition
79d80 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d ->addOptions($this->application-
79da0 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 3b >getDefinition()->getOptions());
79dc0 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 ..$this->applicationDefinitionMe
79de0 72 67 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rged.=.true;.}...........public.
79e00 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 function.setDefinition($definiti
79e20 6f 6e 29 0a 7b 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 on).{.if.($definition.instanceof
79e40 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e .InputDefinition).{.$this->defin
79e60 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 ition.=.$definition;.}.else.{.$t
79e80 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 his->definition->setDefinition($
79ea0 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 definition);.}..$this->applicati
79ec0 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 onDefinitionMerged.=.false;..ret
79ee0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this;.}.........public.func
79f00 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 tion.getDefinition().{.return.$t
79f20 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 his->definition;.}..........prot
79f40 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 ected.function.getNativeDefiniti
79f60 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 on().{.return.$this->getDefiniti
79f80 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 on();.}..............public.func
79fa0 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 20 3d 20 tion.addArgument($name,.$mode.=.
79fc0 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c null,.$description.=.'',.$defaul
79fe0 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 t.=.null).{.$this->definition->a
7a000 64 64 41 72 67 75 6d 65 6e 74 28 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 ddArgument(new.InputArgument($na
7a020 6d 65 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c me,.$mode,.$description,.$defaul
7a040 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t));..return.$this;.}...........
7a060 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 24 6e ....public.function.addOption($n
7a080 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 20 3d 20 6e ame,.$shortcut.=.null,.$mode.=.n
7a0a0 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 ull,.$description.=.'',.$default
7a0c0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 .=.null).{.$this->definition->ad
7a0e0 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 dOption(new.InputOption($name,.$
7a100 73 68 6f 72 74 63 75 74 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 shortcut,.$mode,.$description,.$
7a120 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a default));..return.$this;.}.....
7a140 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .............public.function.set
7a160 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d Name($name).{.$this->validateNam
7a180 65 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a e($name);..$this->name.=.$name;.
7a1a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
7a1c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getName().{.return.$thi
7a1e0 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s->name;.}...........public.func
7a200 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e tion.setDescription($description
7a220 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 ).{.$this->description.=.$descri
7a240 70 74 69 6f 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ption;..return.$this;.}.........
7a260 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 public.function.getDescription()
7a280 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a .{.return.$this->description;.}.
7a2a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c ..........public.function.setHel
7a2c0 70 28 24 68 65 6c 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 20 3d 20 24 68 65 6c 70 3b 0a p($help).{.$this->help.=.$help;.
7a2e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
7a300 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getHelp().{.return.$thi
7a320 73 2d 3e 68 65 6c 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s->help;.}........public.functio
7a340 6e 20 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 n.getProcessedHelp().{.$name.=.$
7a360 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 0a 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 20 3d 20 61 72 72 this->name;..$placeholders.=.arr
7a380 61 79 28 0a 27 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 27 2c 0a 27 25 63 6f 6d 6d 61 6e 64 2e ay(.'%command.name%',.'%command.
7a3a0 66 75 6c 6c 5f 6e 61 6d 65 25 27 0a 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 full_name%'.);.$replacements.=.a
7a3c0 72 72 61 79 28 0a 24 6e 61 6d 65 2c 0a 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 rray(.$name,.$_SERVER['PHP_SELF'
7a3e0 5d 2e 27 20 27 2e 24 6e 61 6d 65 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 ].'.'.$name.);..return.str_repla
7a400 63 65 28 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 2c ce($placeholders,.$replacements,
7a420 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$this->getHelp());.}...........
7a440 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 public.function.setAliases($alia
7a460 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 ses).{.foreach.($aliases.as.$ali
7a480 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 61 6c 69 61 73 as).{.$this->validateName($alias
7a4a0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b );.}..$this->aliases.=.$aliases;
7a4c0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this;.}.........public
7a4e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getAliases().{.return.
7a500 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $this->aliases;.}.......public.f
7a520 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c unction.getSynopsis().{.if.(null
7a540 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 29 20 7b 0a 24 74 68 69 73 2d 3e 73 .===.$this->synopsis).{.$this->s
7a560 79 6e 6f 70 73 69 73 20 3d 20 74 72 69 6d 28 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 ynopsis.=.trim(sprintf('%s.%s',.
7a580 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e $this->name,.$this->definition->
7a5a0 67 65 74 53 79 6e 6f 70 73 69 73 28 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 getSynopsis()));.}..return.$this
7a5c0 2d 3e 73 79 6e 6f 70 73 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ->synopsis;.}.............public
7a5e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 .function.getHelper($name).{.ret
7a600 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 24 6e 61 6d 65 29 urn.$this->helperSet->get($name)
7a620 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 ;.}.......public.function.asText
7a640 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 26 26 20 21 ().{.if.($this->application.&&.!
7a660 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 $this->applicationDefinitionMerg
7a680 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 74 68 69 ed).{.$this->getSynopsis();.$thi
7a6a0 73 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 s->mergeApplicationDefinition(fa
7a6c0 6c 73 65 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 3c 63 6f lse);.}..$messages.=.array(.'<co
7a6e0 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 27 20 27 2e 24 74 68 mment>Usage:</comment>',.'.'.$th
7a700 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 0a 27 27 2c 0a 29 3b 0a 0a 69 66 20 28 24 is->getSynopsis(),.'',.);..if.($
7a720 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b this->getAliases()).{.$messages[
7a740 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 6c 69 61 73 65 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e ].=.'<comment>Aliases:</comment>
7a760 20 3c 69 6e 66 6f 3e 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 74 68 69 73 2d 3e 67 65 .<info>'.implode(',.',.$this->ge
7a780 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 24 6d 65 73 73 61 tAliases()).'</info>';.}..$messa
7a7a0 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 ges[].=.$this->getNativeDefiniti
7a7c0 6f 6e 28 29 2d 3e 61 73 54 65 78 74 28 29 3b 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 74 68 on()->asText();..if.($help.=.$th
7a7e0 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a 24 6d 65 73 73 61 is->getProcessedHelp()).{.$messa
7a800 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 48 65 6c 70 3a 3c 2f 63 6f 6d 6d 65 6e 74 ges[].=.'<comment>Help:</comment
7a820 3e 27 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 20 27 2e 73 74 72 5f 72 65 70 6c 61 63 >';.$messages[].=.'.'.str_replac
7a840 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 68 65 6c 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 72 e("\n",."\n.",.$help)."\n";.}..r
7a860 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a eturn.implode("\n",.$messages);.
7a880 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 }.........public.function.asXml(
7a8a0 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 70 70 $asDom.=.false).{.if.($this->app
7a8c0 6c 69 63 61 74 69 6f 6e 20 26 26 20 21 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 lication.&&.!$this->applicationD
7a8e0 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 53 79 6e efinitionMerged).{.$this->getSyn
7a900 6f 70 73 69 73 28 29 3b 0a 24 74 68 69 73 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e opsis();.$this->mergeApplication
7a920 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 64 6f 6d 20 3d 20 6e 65 77 Definition(false);.}..$dom.=.new
7a940 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 .\DOMDocument('1.0',.'UTF-8');.$
7a960 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d 2d 3e dom->formatOutput.=.true;.$dom->
7a980 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e appendChild($commandXML.=.$dom->
7a9a0 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a 24 63 6f 6d 6d createElement('command'));.$comm
7a9c0 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 74 68 69 73 andXML->setAttribute('id',.$this
7a9e0 2d 3e 6e 61 6d 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 ->name);.$commandXML->setAttribu
7aa00 74 65 28 27 6e 61 6d 65 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 29 3b 0a 0a 24 63 6f 6d 6d 61 te('name',.$this->name);..$comma
7aa20 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 75 73 61 67 65 58 4d 4c 20 3d 20 24 ndXML->appendChild($usageXML.=.$
7aa40 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 75 73 61 67 65 27 29 29 3b 0a 24 75 dom->createElement('usage'));.$u
7aa60 73 61 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 sageXML->appendChild($dom->creat
7aa80 65 54 65 78 74 4e 6f 64 65 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f eTextNode(sprintf($this->getSyno
7aaa0 70 73 69 73 28 29 2c 20 27 27 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 psis(),.'')));..$commandXML->app
7aac0 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d endChild($descriptionXML.=.$dom-
7aae0 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a >createElement('description'));.
7ab00 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f $descriptionXML->appendChild($do
7ab20 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c m->createTextNode(str_replace("\
7ab40 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e n",."\n.",.$this->getDescription
7ab60 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 ())));..$commandXML->appendChild
7ab80 28 24 68 65 6c 70 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 ($helpXML.=.$dom->createElement(
7aba0 27 68 65 6c 70 27 29 29 3b 0a 24 68 65 6c 70 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 'help'));.$helpXML->appendChild(
7abc0 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 $dom->createTextNode(str_replace
7abe0 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 ("\n",."\n.",.$this->getProcesse
7ac00 64 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 dHelp())));..$commandXML->append
7ac20 43 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 Child($aliasesXML.=.$dom->create
7ac40 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 65 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 Element('aliases'));.foreach.($t
7ac60 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 his->getAliases().as.$alias).{.$
7ac80 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 58 4d aliasesXML->appendChild($aliasXM
7aca0 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 27 29 L.=.$dom->createElement('alias')
7acc0 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e );.$aliasXML->appendChild($dom->
7ace0 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 6c 69 61 73 29 29 3b 0a 7d 0a 0a 24 64 65 66 createTextNode($alias));.}..$def
7ad00 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 inition.=.$this->getNativeDefini
7ad20 74 69 6f 6e 28 29 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c tion()->asXml(true);.$commandXML
7ad40 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 ->appendChild($dom->importNode($
7ad60 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 definition->getElementsByTagName
7ad80 28 27 61 72 67 75 6d 65 6e 74 73 27 29 2d 3e 69 74 65 6d 28 30 29 2c 20 74 72 75 65 29 29 3b 0a ('arguments')->item(0),.true));.
7ada0 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 69 $commandXML->appendChild($dom->i
7adc0 6d 70 6f 72 74 4e 6f 64 65 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e mportNode($definition->getElemen
7ade0 74 73 42 79 54 61 67 4e 61 6d 65 28 27 6f 70 74 69 6f 6e 73 27 29 2d 3e 69 74 65 6d 28 30 29 2c tsByTagName('options')->item(0),
7ae00 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f 20 24 64 6f 6d 20 3a .true));..return.$asDom.?.$dom.:
7ae20 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e .$dom->saveXml();.}..private.fun
7ae40 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 ction.validateName($name).{.if.(
7ae60 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5e 5c 3a 5d 2b 28 5c 3a 5b 5e 5c 3a 5d 2b 29 2a !preg_match('/^[^\:]+(\:[^\:]+)*
7ae80 24 2f 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 $/',.$name)).{.throw.new.\Invali
7aea0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d dArgumentException(sprintf('Comm
7aec0 61 6e 64 20 6e 61 6d 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 2e 27 2c 20 24 6e 61 6d and.name."%s".is.invalid.',.$nam
7aee0 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 e));.}.}.}.<?php...........names
7af00 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 pace.Symfony\Component\Console\C
7af20 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ommand;..use.Symfony\Component\C
7af40 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 onsole\Input\InputArgument;.use.
7af60 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
7af80 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 InputOption;.use.Symfony\Compone
7afa0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b nt\Console\Input\InputInterface;
7afc0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
7afe0 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f utput\OutputInterface;.use.Symfo
7b000 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d ny\Component\Console\Command\Com
7b020 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 mand;.use.Symfony\Component\Cons
7b040 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a ole\Input\InputDefinition;......
7b060 0a 63 6c 61 73 73 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 .class.ListCommand.extends.Comma
7b080 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 nd.{....protected.function.confi
7b0a0 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 6c 69 73 74 27 29 gure().{.$this.->setName('list')
7b0c0 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 .->setDefinition($this->createDe
7b0e0 66 69 6e 69 74 69 6f 6e 28 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4c 69 finition()).->setDescription('Li
7b100 73 74 73 20 63 6f 6d 6d 61 6e 64 73 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a sts.commands').->setHelp(<<<EOF.
7b120 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 The.<info>%command.name%</info>.
7b140 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 73 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 20 20 3c command.lists.all.commands:....<
7b160 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e info>php.%command.full_name%</in
7b180 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f fo>..You.can.also.display.the.co
7b1a0 6d 6d 61 6e 64 73 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 6e 61 6d 65 73 70 61 63 65 3a mmands.for.a.specific.namespace:
7b1c0 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 ....<info>php.%command.full_name
7b1e0 25 20 74 65 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 %.test</info>..You.can.also.outp
7b200 75 74 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 73 20 58 4d 4c 20 62 79 20 75 73 69 ut.the.information.as.XML.by.usi
7b220 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 78 6d 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 ng.the.<comment>--xml</comment>.
7b240 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 option:....<info>php.%command.fu
7b260 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 78 6d 6c 3c 2f 69 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 6f ll_name%.--xml</info>..It's.also
7b280 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f 6d .possible.to.get.raw.list.of.com
7b2a0 6d 61 6e 64 73 20 28 75 73 65 66 75 6c 20 66 6f 72 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d 6d mands.(useful.for.embedding.comm
7b2c0 61 6e 64 20 72 75 6e 6e 65 72 29 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 and.runner):....<info>php.%comma
7b2e0 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 72 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 nd.full_name%.--raw</info>.EOF.)
7b300 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e .;.}.....protected.function.getN
7b320 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ativeDefinition().{.return.$this
7b340 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 ->createDefinition();.}.....prot
7b360 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 ected.function.execute(InputInte
7b380 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f rface.$input,.OutputInterface.$o
7b3a0 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 utput).{.if.($input->getOption('
7b3c0 78 6d 6c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d xml')).{.$output->writeln($this-
7b3e0 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 61 73 58 6d 6c 28 24 69 6e 70 75 74 2d >getApplication()->asXml($input-
7b400 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 29 2c 20 4f 75 74 70 >getArgument('namespace')),.Outp
7b420 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d 20 65 6c 73 65 utInterface::OUTPUT_RAW);.}.else
7b440 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 41 70 .{.$output->writeln($this->getAp
7b460 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 61 73 54 65 78 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 plication()->asText($input->getA
7b480 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 rgument('namespace'),.$input->ge
7b4a0 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 tOption('raw')));.}.}..private.f
7b4c0 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 unction.createDefinition().{.ret
7b4e0 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e urn.new.InputDefinition(array(.n
7b500 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 49 6e ew.InputArgument('namespace',.In
7b520 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 6e 61 6d 65 putArgument::OPTIONAL,.'The.name
7b540 73 70 61 63 65 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 space.name'),.new.InputOption('x
7b560 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ml',.null,.InputOption::VALUE_NO
7b580 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 NE,.'To.output.help.as.XML'),.ne
7b5a0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 w.InputOption('raw',.null,.Input
7b5c0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 Option::VALUE_NONE,.'To.output.r
7b5e0 61 77 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 27 29 2c 0a 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 aw.command.list'),.));.}.}.<?php
7b600 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ...........namespace.Symfony\Com
7b620 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 ponent\Console\Tester;..use.Symf
7b640 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f ony\Component\Console\Applicatio
7b660 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
7b680 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \Input\ArrayInput;.use.Symfony\C
7b6a0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 omponent\Console\Input\InputInte
7b6c0 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e rface;.use.Symfony\Component\Con
7b6e0 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 sole\Output\OutputInterface;.use
7b700 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
7b720 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c t\StreamOutput;.......class.Appl
7b740 69 63 61 74 69 6f 6e 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 icationTester.{.private.$applica
7b760 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f tion;.private.$input;.private.$o
7b780 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 utput;.......public.function.__c
7b7a0 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f onstruct(Application.$applicatio
7b7c0 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 n).{.$this->application.=.$appli
7b7e0 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 cation;.}................public.
7b800 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 61 72 72 61 79 20 24 69 6e 70 75 74 2c 20 24 6f 70 74 69 function.run(array.$input,.$opti
7b820 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 ons.=.array()).{.$this->input.=.
7b840 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 new.ArrayInput($input);.if.(isse
7b860 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 t($options['interactive'])).{.$t
7b880 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 his->input->setInteractive($opti
7b8a0 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f ons['interactive']);.}..$this->o
7b8c0 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 utput.=.new.StreamOutput(fopen('
7b8e0 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 php://memory',.'w',.false));.if.
7b900 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b (isset($options['decorated'])).{
7b920 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 .$this->output->setDecorated($op
7b940 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 tions['decorated']);.}.if.(isset
7b960 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 ($options['verbosity'])).{.$this
7b980 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b ->output->setVerbosity($options[
7b9a0 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 'verbosity']);.}..return.$this->
7b9c0 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 application->run($this->input,.$
7b9e0 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->output);.}.......public.fu
7ba00 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 28 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 nction.getDisplay().{.rewind($th
7ba20 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 72 65 74 75 72 is->output->getStream());..retur
7ba40 6e 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 n.stream_get_contents($this->out
7ba60 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 put->getStream());.}.......publi
7ba80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 c.function.getInput().{.return.$
7baa0 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->input;.}.......public.func
7bac0 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tion.getOutput().{.return.$this-
7bae0 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d >output;.}.}.<?php...........nam
7bb00 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 espace.Symfony\Component\Console
7bb20 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Tester;..use.Symfony\Component\
7bb40 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d Console\Command\Command;.use.Sym
7bb60 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 fony\Component\Console\Input\Arr
7bb80 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ayInput;.use.Symfony\Component\C
7bba0 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a onsole\Output\StreamOutput;.....
7bbc0 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 ..class.CommandTester.{.private.
7bbe0 24 63 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 $command;.private.$input;.privat
7bc00 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e e.$output;.......public.function
7bc20 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b .__construct(Command.$command).{
7bc40 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a .$this->command.=.$command;.}...
7bc60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 .............public.function.exe
7bc80 63 75 74 65 28 61 72 72 61 79 20 24 69 6e 70 75 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e cute(array.$input,.array.$option
7bca0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 s.=.array()).{.$this->input.=.ne
7bcc0 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 w.ArrayInput($input);.if.(isset(
7bce0 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 $options['interactive'])).{.$thi
7bd00 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e s->input->setInteractive($option
7bd20 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 s['interactive']);.}..$this->out
7bd40 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 put.=.new.StreamOutput(fopen('ph
7bd60 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 p://memory',.'w',.false));.if.(i
7bd80 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 sset($options['decorated'])).{.$
7bda0 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 this->output->setDecorated($opti
7bdc0 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 ons['decorated']);.}.if.(isset($
7bde0 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e options['verbosity'])).{.$this->
7be00 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 output->setVerbosity($options['v
7be20 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f erbosity']);.}..return.$this->co
7be40 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e mmand->run($this->input,.$this->
7be60 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e output);.}.......public.function
7be80 20 67 65 74 44 69 73 70 6c 61 79 28 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 69 73 2d 3e 6f 75 .getDisplay().{.rewind($this->ou
7bea0 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 tput->getStream());..return.stre
7bec0 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 am_get_contents($this->output->g
7bee0 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etStream());.}.......public.func
7bf00 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tion.getInput().{.return.$this->
7bf20 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 input;.}.......public.function.g
7bf40 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 etOutput().{.return.$this->outpu
7bf60 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 t;.}.}.<?php...........namespace
7bf80 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 .Symfony\Component\Console\Forma
7bfa0 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 tter;.....class.OutputFormatterS
7bfc0 74 79 6c 65 53 74 61 63 6b 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 73 3b 0a tyleStack.{....private.$styles;.
7bfe0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 ....private.$emptyStyle;.......p
7c000 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4f 75 74 70 75 ublic.function.__construct(Outpu
7c020 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 tFormatterStyleInterface.$emptyS
7c040 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 tyle.=.null).{.$this->emptyStyle
7c060 20 3d 20 24 65 6d 70 74 79 53 74 79 6c 65 20 3f 3a 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d .=.$emptyStyle.?:.new.OutputForm
7c080 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a atterStyle();.$this->reset();.}.
7c0a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 24 74 ....public.function.reset().{.$t
7c0c0 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 his->styles.=.array();.}.......p
7c0e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 75 73 68 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 ublic.function.push(OutputFormat
7c100 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 terStyleInterface.$style).{.$thi
7c120 73 2d 3e 73 74 79 6c 65 73 5b 5d 20 3d 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a s->styles[].=.$style;.}.........
7c140 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 28 4f 75 74 70 75 74 46 6f 72 6d ..public.function.pop(OutputForm
7c160 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 20 3d 20 6e 75 6c atterStyleInterface.$style.=.nul
7c180 6c 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b l).{.if.(empty($this->styles)).{
7c1a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 0a 69 66 .return.$this->emptyStyle;.}..if
7c1c0 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 .(null.===.$style).{.return.arra
7c1e0 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 y_pop($this->styles);.}..foreach
7c200 20 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 74 .(array_reverse($this->styles,.t
7c220 72 75 65 29 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 29 rue).as.$index.=>.$stackedStyle)
7c240 20 7b 0a 69 66 20 28 24 73 74 79 6c 65 2d 3e 61 70 70 6c 79 28 27 27 29 20 3d 3d 3d 20 24 73 74 .{.if.($style->apply('').===.$st
7c260 61 63 6b 65 64 53 74 79 6c 65 2d 3e 61 70 70 6c 79 28 27 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e ackedStyle->apply('')).{.$this->
7c280 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 73 74 79 6c styles.=.array_slice($this->styl
7c2a0 65 73 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 63 6b 65 64 es,.0,.$index);..return.$stacked
7c2c0 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 Style;.}.}..throw.new.\InvalidAr
7c2e0 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 63 6f 72 72 65 63 74 6c 79 20 6e 65 73 gumentException('Incorrectly.nes
7c300 74 65 64 20 73 74 79 6c 65 20 74 61 67 20 66 6f 75 6e 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ted.style.tag.found.');.}.......
7c320 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 28 29 0a 7b 0a 69 public.function.getCurrent().{.i
7c340 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 f.(empty($this->styles)).{.retur
7c360 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 n.$this->emptyStyle;.}..return.$
7c380 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 this->styles[count($this->styles
7c3a0 29 2d 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 )-1];.}.......public.function.se
7c3c0 74 45 6d 70 74 79 53 74 79 6c 65 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 tEmptyStyle(OutputFormatterStyle
7c3e0 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e Interface.$emptyStyle).{.$this->
7c400 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 65 6d 70 74 79 53 74 79 6c 65 3b 0a 0a 72 65 74 75 72 emptyStyle.=.$emptyStyle;..retur
7c420 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 n.$this;.}.....public.function.g
7c440 65 74 45 6d 70 74 79 53 74 79 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 etEmptyStyle().{.return.$this->e
7c460 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e mptyStyle;.}.}.<?php...........n
7c480 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f amespace.Symfony\Component\Conso
7c4a0 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 le\Formatter;.........class.Outp
7c4c0 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 utFormatterStyle.implements.Outp
7c4e0 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 utFormatterStyleInterface.{.priv
7c500 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 ate.static.$availableForegroundC
7c520 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 33 30 2c 0a 27 72 olors.=.array(.'black'.=>.30,.'r
7c540 65 64 27 20 3d 3e 20 33 31 2c 0a 27 67 72 65 65 6e 27 20 3d 3e 20 33 32 2c 0a 27 79 65 6c 6c 6f ed'.=>.31,.'green'.=>.32,.'yello
7c560 77 27 20 3d 3e 20 33 33 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 33 34 2c 0a 27 6d 61 67 65 6e 74 61 w'.=>.33,.'blue'.=>.34,.'magenta
7c580 27 20 3d 3e 20 33 35 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 33 36 2c 0a 27 77 68 69 74 65 27 20 3d '.=>.35,.'cyan'.=>.36,.'white'.=
7c5a0 3e 20 33 37 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c >.37.);.private.static.$availabl
7c5c0 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6c 61 63 eBackgroundColors.=.array(.'blac
7c5e0 6b 27 20 3d 3e 20 34 30 2c 0a 27 72 65 64 27 20 3d 3e 20 34 31 2c 0a 27 67 72 65 65 6e 27 20 3d k'.=>.40,.'red'.=>.41,.'green'.=
7c600 3e 20 34 32 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 34 33 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 >.42,.'yellow'.=>.43,.'blue'.=>.
7c620 34 34 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 34 35 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 34 44,.'magenta'.=>.45,.'cyan'.=>.4
7c640 36 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 34 37 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 6,.'white'.=>.47.);.private.stat
7c660 69 63 20 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 62 ic.$availableOptions.=.array(.'b
7c680 6f 6c 64 27 20 3d 3e 20 31 2c 0a 27 75 6e 64 65 72 73 63 6f 72 65 27 20 3d 3e 20 34 2c 0a 27 62 old'.=>.1,.'underscore'.=>.4,.'b
7c6a0 6c 69 6e 6b 27 20 3d 3e 20 35 2c 0a 27 72 65 76 65 72 73 65 27 20 3d 3e 20 37 2c 0a 27 63 6f 6e link'.=>.5,.'reverse'.=>.7,.'con
7c6c0 63 65 61 6c 27 20 3d 3e 20 38 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 65 67 72 6f 75 ceal'.=>.8.);..private.$foregrou
7c6e0 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 nd;.private.$background;.private
7c700 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .$options.=.array();...........p
7c720 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 6f 72 65 ublic.function.__construct($fore
7c740 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 24 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c ground.=.null,.$background.=.nul
7c760 6c 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 l,.array.$options.=.array()).{.i
7c780 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 66 6f 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 f.(null.!==.$foreground).{.$this
7c7a0 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 66 6f 72 65 67 72 6f 75 6e 64 29 3b 0a 7d 0a ->setForeground($foreground);.}.
7c7c0 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 if.(null.!==.$background).{.$thi
7c7e0 73 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 62 61 63 6b 67 72 6f 75 6e 64 29 3b 0a 7d s->setBackground($background);.}
7c800 0a 69 66 20 28 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 .if.(count($options)).{.$this->s
7c820 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a etOptions($options);.}.}........
7c840 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 ...public.function.setForeground
7c860 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ($color.=.null).{.if.(null.===.$
7c880 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c color).{.$this->foreground.=.nul
7c8a0 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 l;..return;.}..if.(!isset(static
7c8c0 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f ::$availableForegroundColors[$co
7c8e0 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d lor])).{.throw.new.\InvalidArgum
7c900 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 66 entException(sprintf(.'Invalid.f
7c920 6f 72 65 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e oreground.color.specified:."%s".
7c940 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a .Expected.one.of.(%s)',.$color,.
7c960 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a implode(',.',.array_keys(static:
7c980 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 :$availableForegroundColors)).))
7c9a0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a ;.}..$this->foreground.=.static:
7c9c0 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c :$availableForegroundColors[$col
7c9e0 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e or];.}...........public.function
7ca00 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a .setBackground($color.=.null).{.
7ca20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 if.(null.===.$color).{.$this->ba
7ca40 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 ckground.=.null;..return;.}..if.
7ca60 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 (!isset(static::$availableBackgr
7ca80 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 oundColors[$color])).{.throw.new
7caa0 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
7cac0 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 tf(.'Invalid.background.color.sp
7cae0 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 ecified:."%s"..Expected.one.of.(
7cb00 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 %s)',.$color,.implode(',.',.arra
7cb20 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f y_keys(static::$availableBackgro
7cb40 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 undColors)).));.}..$this->backgr
7cb60 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f ound.=.static::$availableBackgro
7cb80 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 undColors[$color];.}...........p
7cba0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e ublic.function.setOption($option
7cbc0 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c ).{.if.(!isset(static::$availabl
7cbe0 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 eOptions[$option])).{.throw.new.
7cc00 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
7cc20 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 f(.'Invalid.option.specified:."%
7cc40 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 s"..Expected.one.of.(%s)',.$opti
7cc60 6f 6e 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 on,.implode(',.',.array_keys(sta
7cc80 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a tic::$availableOptions)).));.}..
7cca0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 69 if.(false.===.array_search(stati
7ccc0 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 c::$availableOptions[$option],.$
7cce0 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 this->options)).{.$this->options
7cd00 5b 5d 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 [].=.static::$availableOptions[$
7cd20 6f 70 74 69 6f 6e 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e option];.}.}..........public.fun
7cd40 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 ction.unsetOption($option).{.if.
7cd60 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e (!isset(static::$availableOption
7cd80 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 s[$option])).{.throw.new.\Invali
7cda0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 dArgumentException(sprintf(.'Inv
7cdc0 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 alid.option.specified:."%s"..Exp
7cde0 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 ected.one.of.(%s)',.$option,.imp
7ce00 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 lode(',.',.array_keys(static::$a
7ce20 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 70 6f 73 20 3d 20 vailableOptions)).));.}..$pos.=.
7ce40 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f array_search(static::$availableO
7ce60 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 ptions[$option],.$this->options)
7ce80 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 29 20 7b 0a 75 6e 73 65 74 28 24 74 ;.if.(false.!==.$pos).{.unset($t
7cea0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 70 6f 73 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 his->options[$pos]);.}.}.......p
7cec0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 ublic.function.setOptions(array.
7cee0 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 $options).{.$this->options.=.arr
7cf00 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 ay();..foreach.($options.as.$opt
7cf20 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 ion).{.$this->setOption($option)
7cf40 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 ;.}.}.........public.function.ap
7cf60 70 6c 79 28 24 74 65 78 74 29 0a 7b 0a 24 63 6f 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a ply($text).{.$codes.=.array();..
7cf80 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 29 20 if.(null.!==.$this->foreground).
7cfa0 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 3b 0a {.$codes[].=.$this->foreground;.
7cfc0 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 }.if.(null.!==.$this->background
7cfe0 29 20 7b 0a 24 63 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 ).{.$codes[].=.$this->background
7d000 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b ;.}.if.(count($this->options)).{
7d020 0a 24 63 6f 64 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 6f 64 65 73 2c 20 24 74 .$codes.=.array_merge($codes,.$t
7d040 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e his->options);.}..if.(0.===.coun
7d060 74 28 24 63 6f 64 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 72 65 t($codes)).{.return.$text;.}..re
7d080 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5c 30 33 33 5b 25 73 6d 25 73 5c 30 33 33 5b 30 6d 22 turn.sprintf("\033[%sm%s\033[0m"
7d0a0 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c 20 24 63 6f 64 65 73 29 2c 20 24 74 65 78 74 29 3b 0a ,.implode(';',.$codes),.$text);.
7d0c0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 }.}.<?php...........namespace.Sy
7d0e0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 mfony\Component\Console\Formatte
7d100 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 r;.........interface.OutputForma
7d120 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tterStyleInterface.{........publ
7d140 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 ic.function.setForeground($color
7d160 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .=.null);.........public.functio
7d180 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a n.setBackground($color.=.null);.
7d1a0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f ........public.function.setOptio
7d1c0 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n($option);.......public.functio
7d1e0 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 n.unsetOption($option);.......pu
7d200 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 blic.function.setOptions(array.$
7d220 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f options);.........public.functio
7d240 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a n.apply($text);.}.<?php.........
7d260 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
7d280 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f nsole\Formatter;.........class.O
7d2a0 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 utputFormatter.implements.Output
7d2c0 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 46 4f FormatterInterface.{....const.FO
7d2e0 52 4d 41 54 5f 50 41 54 54 45 52 4e 20 3d 20 27 23 28 5c 5c 5c 5c 3f 29 3c 28 2f 3f 29 28 5b 61 RMAT_PATTERN.=.'#(\\\\?)<(/?)([a
7d300 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2b 29 3f 3e 28 28 3f 3a 28 3f 21 5c 5c 5c 5c 3f 3c -z][a-z0-9_=;-]+)?>((?:(?!\\\\?<
7d320 29 2e 29 2a 29 23 69 73 27 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 63 6f 72 61 74 65 64 3b 0a ).)*)#is';..private.$decorated;.
7d340 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 private.$styles.=.array();.priva
7d360 74 65 20 24 73 74 79 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 te.$styleStack;.........public.s
7d380 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 tatic.function.escape($text).{.r
7d3a0 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c eturn.preg_replace('/([^\\\\]?)<
7d3c0 2f 69 73 27 2c 20 27 24 31 5c 5c 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a /is',.'$1\\<',.$text);.}........
7d3e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 ..public.function.__construct($d
7d400 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d ecorated.=.null,.array.$styles.=
7d420 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 .array()).{.$this->decorated.=.(
7d440 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 Boolean).$decorated;..$this->set
7d460 53 74 79 6c 65 28 27 65 72 72 6f 72 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 Style('error',.new.OutputFormatt
7d480 65 72 53 74 79 6c 65 28 27 77 68 69 74 65 27 2c 20 27 72 65 64 27 29 29 3b 0a 24 74 68 69 73 2d erStyle('white',.'red'));.$this-
7d4a0 3e 73 65 74 53 74 79 6c 65 28 27 69 6e 66 6f 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d >setStyle('info',.new.OutputForm
7d4c0 61 74 74 65 72 53 74 79 6c 65 28 27 67 72 65 65 6e 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 atterStyle('green'));.$this->set
7d4e0 53 74 79 6c 65 28 27 63 6f 6d 6d 65 6e 74 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 Style('comment',.new.OutputForma
7d500 74 74 65 72 53 74 79 6c 65 28 27 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 tterStyle('yellow'));.$this->set
7d520 53 74 79 6c 65 28 27 71 75 65 73 74 69 6f 6e 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d Style('question',.new.OutputForm
7d540 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 63 79 61 6e 27 29 29 3b 0a 0a 66 atterStyle('black',.'cyan'));..f
7d560 6f 72 65 61 63 68 20 28 24 73 74 79 6c 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 74 79 oreach.($styles.as.$name.=>.$sty
7d580 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 le).{.$this->setStyle($name,.$st
7d5a0 79 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 20 3d 20 6e 65 77 yle);.}..$this->styleStack.=.new
7d5c0 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 28 29 3b 0a 7d 0a .OutputFormatterStyleStack();.}.
7d5e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 ........public.function.setDecor
7d600 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 ated($decorated).{.$this->decora
7d620 74 65 64 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a ted.=.(Boolean).$decorated;.}...
7d640 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 ......public.function.isDecorate
7d660 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 3b 0a 7d d().{.return.$this->decorated;.}
7d680 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 ..........public.function.setSty
7d6a0 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e le($name,.OutputFormatterStyleIn
7d6c0 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b terface.$style).{.$this->styles[
7d6e0 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 20 3d 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a strtolower($name)].=.$style;.}..
7d700 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c .........public.function.hasStyl
7d720 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 e($name).{.return.isset($this->s
7d740 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 3b 0a 7d 0a 0a 0a 0a tyles[strtolower($name)]);.}....
7d760 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c .........public.function.getStyl
7d780 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 79 6c 65 28 e($name).{.if.(!$this->hasStyle(
7d7a0 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 $name)).{.throw.new.\InvalidArgu
7d7c0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 3a 20 mentException('Undefined.style:.
7d7e0 27 2e 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 '.$name);.}..return.$this->style
7d800 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a s[strtolower($name)];.}.........
7d820 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 ..public.function.format($messag
7d840 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c e).{.$message.=.preg_replace_cal
7d860 6c 62 61 63 6b 28 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 2c 20 61 72 72 61 lback(self::FORMAT_PATTERN,.arra
7d880 79 28 24 74 68 69 73 2c 20 27 72 65 70 6c 61 63 65 53 74 79 6c 65 27 29 2c 20 24 6d 65 73 73 61 y($this,.'replaceStyle'),.$messa
7d8a0 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 27 2c 20 ge);..return.str_replace('\\<',.
7d8c0 27 3c 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e '<',.$message);.}.....public.fun
7d8e0 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 63 6b 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ction.getStyleStack().{.return.$
7d900 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 this->styleStack;.}.........priv
7d920 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 53 74 79 6c 65 28 24 6d 61 74 63 68 ate.function.replaceStyle($match
7d940 29 0a 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a ).{...if.('\\'.===.$match[1]).{.
7d960 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 return.$this->applyCurrentStyle(
7d980 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 6d 61 74 63 68 $match[0]);.}..if.(''.===.$match
7d9a0 5b 33 5d 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 20 7b 0a [3]).{.if.('/'.===.$match[2]).{.
7d9c0 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 29 3b 0a 0a 72 65 74 ..$this->styleStack->pop();..ret
7d9e0 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 urn.$this->applyCurrentStyle($ma
7da00 74 63 68 5b 34 5d 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 27 3c 3e 27 2e 24 74 68 69 73 2d tch[4]);.}....return.'<>'.$this-
7da20 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d >applyCurrentStyle($match[4]);.}
7da40 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c ..if.(isset($this->styles[strtol
7da60 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 5d 29 5d 29 29 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 ower($match[3])])).{.$style.=.$t
7da80 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 5d his->styles[strtolower($match[3]
7daa0 29 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 )];.}.else.{.$style.=.$this->cre
7dac0 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 6d 61 74 63 68 5b 33 5d 29 3b 0a 0a ateStyleFromString($match[3]);..
7dae0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 if.(false.===.$style).{.return.$
7db00 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 30 this->applyCurrentStyle($match[0
7db20 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 20 ]);.}.}..if.('/'.===.$match[2]).
7db40 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 24 73 74 79 6c 65 29 {.$this->styleStack->pop($style)
7db60 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 75 ;.}.else.{.$this->styleStack->pu
7db80 73 68 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 sh($style);.}..return.$this->app
7dba0 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d 0a 0a 0a 0a lyCurrentStyle($match[4]);.}....
7dbc0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 53 74 79 6c .....private.function.createStyl
7dbe0 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 eFromString($string).{.if.(!preg
7dc00 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c 24 _match_all('/([^=]+)=([^;]+)(;|$
7dc20 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 69 6e 67 29 2c 20 24 6d 61 74 63 68 )/',.strtolower($string),.$match
7dc40 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 es,.PREG_SET_ORDER)).{.return.fa
7dc60 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 lse;.}..$style.=.new.OutputForma
7dc80 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 tterStyle();.foreach.($matches.a
7dca0 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 6d 61 74 63 68 29 3b s.$match).{.array_shift($match);
7dcc0 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c ..if.('fg'.==.$match[0]).{.$styl
7dce0 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 e->setForeground($match[1]);.}.e
7dd00 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 lseif.('bg'.==.$match[0]).{.$sty
7dd20 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 le->setBackground($match[1]);.}.
7dd40 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 5b else.{.$style->setOption($match[
7dd60 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 1]);.}.}..return.$style;.}......
7dd80 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 43 75 72 72 65 6e 74 ...private.function.applyCurrent
7dda0 53 74 79 6c 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 44 Style($text).{.return.$this->isD
7ddc0 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 20 3e 20 30 20 ecorated().&&.strlen($text).>.0.
7dde0 3f 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 67 65 74 43 75 72 72 65 6e 74 28 ?.$this->styleStack->getCurrent(
7de00 29 2d 3e 61 70 70 6c 79 28 24 74 65 78 74 29 20 3a 20 24 74 65 78 74 3b 0a 7d 0a 7d 0a 3c 3f 70 )->apply($text).:.$text;.}.}.<?p
7de20 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
7de40 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a omponent\Console\Formatter;.....
7de60 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 ....interface.OutputFormatterInt
7de80 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 erface.{........public.function.
7dea0 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a setDecorated($decorated);.......
7dec0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b ..public.function.isDecorated();
7dee0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 ..........public.function.setSty
7df00 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e le($name,.OutputFormatterStyleIn
7df20 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 terface.$style);...........publi
7df40 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a c.function.hasStyle($name);.....
7df60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 ......public.function.getStyle($
7df80 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e name);...........public.function
7dfa0 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .format($message);.}.<?php......
7dfc0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
7dfe0 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 \Console;..use.Symfony\Component
7e000 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 \Console\Input\InputInterface;.u
7e020 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
7e040 75 74 5c 41 72 67 76 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ut\ArgvInput;.use.Symfony\Compon
7e060 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 ent\Console\Input\ArrayInput;.us
7e080 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
7e0a0 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\InputDefinition;.use.Symfony\C
7e0c0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 omponent\Console\Input\InputOpti
7e0e0 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
7e100 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f e\Input\InputArgument;.use.Symfo
7e120 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 ny\Component\Console\Output\Outp
7e140 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 utInterface;.use.Symfony\Compone
7e160 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b nt\Console\Output\ConsoleOutput;
7e180 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
7e1a0 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 utput\ConsoleOutputInterface;.us
7e1c0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d e.Symfony\Component\Console\Comm
7e1e0 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 and\Command;.use.Symfony\Compone
7e200 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a nt\Console\Command\HelpCommand;.
7e220 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f use.Symfony\Component\Console\Co
7e240 6d 6d 61 6e 64 5c 4c 69 73 74 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 mmand\ListCommand;.use.Symfony\C
7e260 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 omponent\Console\Helper\HelperSe
7e280 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 t;.use.Symfony\Component\Console
7e2a0 5c 48 65 6c 70 65 72 5c 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d \Helper\FormatterHelper;.use.Sym
7e2c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 fony\Component\Console\Helper\Di
7e2e0 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e alogHelper;.use.Symfony\Componen
7e300 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 3b t\Console\Helper\ProgressHelper;
7e320 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 ...................class.Applica
7e340 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 70 72 69 76 61 74 tion.{.private.$commands;.privat
7e360 65 20 24 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 e.$wantHelps.=.false;.private.$r
7e380 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 unningCommand;.private.$name;.pr
7e3a0 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 63 61 74 63 68 45 78 ivate.$version;.private.$catchEx
7e3c0 63 65 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 78 69 74 3b 0a 70 72 69 ceptions;.private.$autoExit;.pri
7e3e0 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 vate.$definition;.private.$helpe
7e400 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f rSet;..........public.function._
7e420 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 2c 20 24 76 _construct($name.=.'UNKNOWN',.$v
7e440 65 72 73 69 6f 6e 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d ersion.=.'UNKNOWN').{.$this->nam
7e460 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 e.=.$name;.$this->version.=.$ver
7e480 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 74 sion;.$this->catchExceptions.=.t
7e4a0 72 75 65 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 74 72 75 65 3b 0a 24 74 68 rue;.$this->autoExit.=.true;.$th
7e4c0 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 68 is->commands.=.array();.$this->h
7e4e0 65 6c 70 65 72 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 elperSet.=.$this->getDefaultHelp
7e500 65 72 53 65 74 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 erSet();.$this->definition.=.$th
7e520 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b is->getDefaultInputDefinition();
7e540 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d ..foreach.($this->getDefaultComm
7e560 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 ands().as.$command).{.$this->add
7e580 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ($command);.}.}..............pub
7e5a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 lic.function.run(InputInterface.
7e5c0 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 $input.=.null,.OutputInterface.$
7e5e0 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 69 output.=.null).{.if.(null.===.$i
7e600 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 67 76 49 6e 70 75 74 28 29 nput).{.$input.=.new.ArgvInput()
7e620 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 ;.}..if.(null.===.$output).{.$ou
7e640 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 74 tput.=.new.ConsoleOutput();.}..t
7e660 72 79 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 28 ry.{.$statusCode.=.$this->doRun(
7e680 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 $input,.$output);.}.catch.(\Exce
7e6a0 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 ption.$e).{.if.(!$this->catchExc
7e6c0 65 70 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 6f 75 74 eptions).{.throw.$e;.}..if.($out
7e6e0 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 put.instanceof.ConsoleOutputInte
7e700 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 rface).{.$this->renderException(
7e720 24 65 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a $e,.$output->getErrorOutput());.
7e740 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 }.else.{.$this->renderException(
7e760 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 65 $e,.$output);.}.$statusCode.=.$e
7e780 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 69 73 5f 6e ->getCode();..$statusCode.=.is_n
7e7a0 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 26 26 20 24 73 74 61 74 75 73 43 6f umeric($statusCode).&&.$statusCo
7e7c0 64 65 20 3f 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 de.?.$statusCode.:.1;.}..if.($th
7e7e0 69 73 2d 3e 61 75 74 6f 45 78 69 74 29 20 7b 0a 69 66 20 28 24 73 74 61 74 75 73 43 6f 64 65 20 is->autoExit).{.if.($statusCode.
7e800 3e 20 32 35 35 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 32 35 35 3b 0a 7d 0a 0a 20 >.255).{.$statusCode.=.255;.}...
7e820 65 78 69 74 28 24 73 74 61 74 75 73 43 6f 64 65 29 3b 0a 0a 20 7d 0a 0a 72 65 74 75 72 6e 20 24 exit($statusCode);...}..return.$
7e840 73 74 61 74 75 73 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 statusCode;.}..........public.fu
7e860 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 nction.doRun(InputInterface.$inp
7e880 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 ut,.OutputInterface.$output).{.$
7e8a0 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 6e name.=.$this->getCommandName($in
7e8c0 70 75 74 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 put);..if.(true.===.$input->hasP
7e8e0 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 61 6e 73 69 27 29 29 29 arameterOption(array('--ansi')))
7e900 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 74 72 75 65 29 3b 0a .{.$output->setDecorated(true);.
7e920 7d 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 }.elseif.(true.===.$input->hasPa
7e940 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 29 rameterOption(array('--no-ansi')
7e960 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 )).{.$output->setDecorated(false
7e980 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 );.}..if.(true.===.$input->hasPa
7e9a0 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d rameterOption(array('--help',.'-
7e9c0 68 27 29 29 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 68 h'))).{.if.(!$name).{.$name.=.'h
7e9e0 65 6c 70 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 elp';.$input.=.new.ArrayInput(ar
7ea00 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 27 68 65 6c 70 27 29 29 3b 0a 7d 20 65 6c 73 ray('command'.=>.'help'));.}.els
7ea20 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d e.{.$this->wantHelps.=.true;.}.}
7ea40 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 ..if.(true.===.$input->hasParame
7ea60 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f terOption(array('--no-interactio
7ea80 6e 27 2c 20 27 2d 6e 27 29 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 n',.'-n'))).{.$input->setInterac
7eaa0 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 tive(false);.}..if.(function_exi
7eac0 73 74 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 sts('posix_isatty').&&.$this->ge
7eae0 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 68 61 73 28 27 64 69 61 6c 6f 67 27 29 29 20 7b 0a 24 tHelperSet()->has('dialog')).{.$
7eb00 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 inputStream.=.$this->getHelperSe
7eb20 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 67 65 74 49 6e 70 75 74 53 74 72 65 t()->get('dialog')->getInputStre
7eb40 61 6d 28 29 3b 0a 69 66 20 28 21 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 69 6e 70 75 74 53 74 am();.if.(!posix_isatty($inputSt
7eb60 72 65 61 6d 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 ream)).{.$input->setInteractive(
7eb80 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 false);.}.}..if.(true.===.$input
7eba0 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 71 75 ->hasParameterOption(array('--qu
7ebc0 69 65 74 27 2c 20 27 2d 71 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 iet',.'-q'))).{.$output->setVerb
7ebe0 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 osity(OutputInterface::VERBOSITY
7ec00 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 _QUIET);.}.elseif.(true.===.$inp
7ec20 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d ut->hasParameterOption(array('--
7ec40 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 verbose',.'-v'))).{.$output->set
7ec60 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f Verbosity(OutputInterface::VERBO
7ec80 53 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 SITY_VERBOSE);.}..if.(true.===.$
7eca0 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 input->hasParameterOption(array(
7ecc0 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e '--version',.'-V'))).{.$output->
7ece0 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 29 writeln($this->getLongVersion())
7ed00 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e ;..return.0;.}..if.(!$name).{.$n
7ed20 61 6d 65 20 3d 20 27 6c 69 73 74 27 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 ame.=.'list';.$input.=.new.Array
7ed40 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 27 6c 69 73 74 27 29 Input(array('command'.=>.'list')
7ed60 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 28 24 );.}....$command.=.$this->find($
7ed80 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 name);..$this->runningCommand.=.
7eda0 24 63 6f 6d 6d 61 6e 64 3b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 $command;.$statusCode.=.$command
7edc0 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 ->run($input,.$output);.$this->r
7ede0 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 69 73 unningCommand.=.null;..return.is
7ee00 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 74 75 73 43 6f 64 65 29 20 3f 20 24 73 74 61 74 75 73 43 _numeric($statusCode).?.$statusC
7ee20 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ode.:.0;.}.........public.functi
7ee40 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 on.setHelperSet(HelperSet.$helpe
7ee60 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 rSet).{.$this->helperSet.=.$help
7ee80 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e erSet;.}.........public.function
7eea0 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .getHelperSet().{.return.$this->
7eec0 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 helperSet;.}.......public.functi
7eee0 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 on.getDefinition().{.return.$thi
7ef00 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s->definition;.}.......public.fu
7ef20 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 nction.getHelp().{.$messages.=.a
7ef40 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 2c 0a 27 rray(.$this->getLongVersion(),.'
7ef60 27 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a ',.'<comment>Usage:</comment>',.
7ef80 73 70 72 69 6e 74 66 28 22 20 20 5b 6f 70 74 69 6f 6e 73 5d 20 63 6f 6d 6d 61 6e 64 20 5b 61 72 sprintf("..[options].command.[ar
7efa0 67 75 6d 65 6e 74 73 5d 5c 6e 22 29 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a guments]\n"),.'<comment>Options:
7efc0 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d </comment>',.);..foreach.($this-
7efe0 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 >getDefinition()->getOptions().a
7f000 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e s.$option).{.$messages[].=.sprin
7f020 74 66 28 27 20 20 25 2d 32 39 73 20 25 73 20 25 73 27 2c 0a 27 3c 69 6e 66 6f 3e 2d 2d 27 2e 24 tf('..%-29s.%s.%s',.'<info>--'.$
7f040 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 6f 70 option->getName().'</info>',.$op
7f060 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 3c 69 6e 66 6f 3e 2d 27 2e tion->getShortcut().?.'<info>-'.
7f080 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 $option->getShortcut().'</info>'
7f0a0 20 3a 20 27 20 20 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e .:.'..',.$option->getDescription
7f0c0 28 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c ().);.}..return.implode(PHP_EOL,
7f0e0 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$messages);.}.........public.fu
7f100 6e 63 74 69 6f 6e 20 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f 6c 65 nction.setCatchExceptions($boole
7f120 61 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 an).{.$this->catchExceptions.=.(
7f140 42 6f 6f 6c 65 61 6e 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 Boolean).$boolean;.}.........pub
7f160 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 28 24 62 6f 6f 6c 65 61 lic.function.setAutoExit($boolea
7f180 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 n).{.$this->autoExit.=.(Boolean)
7f1a0 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$boolean;.}.........public.func
7f1c0 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e tion.getName().{.return.$this->n
7f1e0 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ame;.}.........public.function.s
7f200 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e etName($name).{.$this->name.=.$n
7f220 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ame;.}.........public.function.g
7f240 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 etVersion().{.return.$this->vers
7f260 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ion;.}.........public.function.s
7f280 65 74 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 etVersion($version).{.$this->ver
7f2a0 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 sion.=.$version;.}.........publi
7f2c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 c.function.getLongVersion().{.if
7f2e0 20 28 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 .('UNKNOWN'.!==.$this->getName()
7f300 20 26 26 20 27 55 4e 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 .&&.'UNKNOWN'.!==.$this->getVers
7f320 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 ion()).{.return.sprintf('<info>%
7f340 73 3c 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f s</info>.version.<comment>%s</co
7f360 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 mment>',.$this->getName(),.$this
7f380 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 6e 66 ->getVersion());.}..return.'<inf
7f3a0 6f 3e 43 6f 6e 73 6f 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a o>Console.Tool</info>';.}.......
7f3c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 6e 61 ....public.function.register($na
7f3e0 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d me).{.return.$this->add(new.Comm
7f400 61 6e 64 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 and($name));.}.........public.fu
7f420 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e nction.addCommands(array.$comman
7f440 64 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d ds).{.foreach.($commands.as.$com
7f460 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a mand).{.$this->add($command);.}.
7f480 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 }.............public.function.ad
7f4a0 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e d(Command.$command).{.$command->
7f4c0 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 21 24 63 6f setApplication($this);..if.(!$co
7f4e0 6d 6d 61 6e 64 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e mmand->isEnabled()).{.$command->
7f500 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d setApplication(null);..return;.}
7f520 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e ..$this->commands[$command->getN
7f540 61 6d 65 28 29 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f ame()].=.$command;..foreach.($co
7f560 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b mmand->getAliases().as.$alias).{
7f580 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 63 6f 6d 6d .$this->commands[$alias].=.$comm
7f5a0 61 6e 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a and;.}..return.$command;.}......
7f5c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 .......public.function.get($name
7f5e0 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 ).{.if.(!isset($this->commands[$
7f600 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 name])).{.throw.new.\InvalidArgu
7f620 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 6f 6d 6d 61 mentException(sprintf('The.comma
7f640 6e 64 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 nd."%s".does.not.exist.',.$name)
7f660 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 );.}..$command.=.$this->commands
7f680 5b 24 6e 61 6d 65 5d 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 29 20 [$name];..if.($this->wantHelps).
7f6a0 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 68 65 {.$this->wantHelps.=.false;..$he
7f6c0 6c 70 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 27 68 65 6c 70 27 29 3b 0a lpCommand.=.$this->get('help');.
7f6e0 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e $helpCommand->setCommand($comman
7f700 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 72 65 74 d);..return.$helpCommand;.}..ret
7f720 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 urn.$command;.}...........public
7f740 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 .function.has($name).{.return.is
7f760 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a set($this->commands[$name]);.}..
7f780 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 .......public.function.getNamesp
7f7a0 61 63 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a aces().{.$namespaces.=.array();.
7f7c0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d foreach.($this->commands.as.$com
7f7e0 6d 61 6e 64 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 mand).{.$namespaces[].=.$this->e
7f800 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d xtractNamespace($command->getNam
7f820 65 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 e());..foreach.($command->getAli
7f840 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b ases().as.$alias).{.$namespaces[
7f860 5d 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 61 6c 69 ].=.$this->extractNamespace($ali
7f880 61 73 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 as);.}.}..return.array_values(ar
7f8a0 72 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 73 70 61 ray_unique(array_filter($namespa
7f8c0 63 65 73 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ces)));.}...........public.funct
7f8e0 69 6f 6e 20 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 0a 7b 0a ion.findNamespace($namespace).{.
7f900 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 $allNamespaces.=.array();.foreac
7f920 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 29 h.($this->getNamespaces().as.$n)
7f940 20 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 5b 24 6e 5d 20 3d 20 65 78 70 6c 6f 64 65 28 .{.$allNamespaces[$n].=.explode(
7f960 27 3a 27 2c 20 24 6e 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 ':',.$n);.}..$found.=.array();.f
7f980 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 oreach.(explode(':',.$namespace)
7f9a0 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 74 29 20 7b 0a 24 61 62 62 72 65 76 73 20 3d 20 73 74 .as.$i.=>.$part).{.$abbrevs.=.st
7f9c0 61 74 69 63 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 atic::getAbbreviations(array_uni
7f9e0 71 75 65 28 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 que(array_values(array_filter(ar
7fa00 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 75 73 65 20 28 24 69 29 20 7b ray_map(function.($p).use.($i).{
7fa20 20 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 70 5b 24 69 5d 29 20 3f 20 24 70 5b 24 69 5d 20 3a .return.isset($p[$i]).?.$p[$i].:
7fa40 20 27 27 3b 20 7d 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 29 29 29 29 29 3b 0a 0a 69 66 .'';.},.$allNamespaces)))));..if
7fa60 20 28 21 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 29 29 20 7b 0a 24 6d 65 .(!isset($abbrevs[$part])).{.$me
7fa80 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 54 68 65 72 65 20 61 72 65 20 6e 6f 20 63 6f ssage.=.sprintf('There.are.no.co
7faa0 6d 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 22 25 73 22 20 6e 61 6d 65 73 mmands.defined.in.the."%s".names
7fac0 70 61 63 65 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 66 20 28 31 20 3c 3d 20 24 pace.',.$namespace);..if.(1.<=.$
7fae0 69 29 20 7b 0a 24 70 61 72 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 3a 27 2c 20 24 66 6f 75 6e 64 i).{.$part.=.implode(':',.$found
7fb00 29 2e 27 3a 27 2e 24 70 61 72 74 3b 0a 7d 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 ).':'.$part;.}..if.($alternative
7fb20 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 4e 61 6d 65 73 70 s.=.$this->findAlternativeNamesp
7fb40 61 63 65 28 24 70 61 72 74 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d ace($part,.$abbrevs)).{.if.(1.==
7fb60 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 .count($alternatives)).{.$messag
7fb80 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 e..=."\n\nDid.you.mean.this?\n..
7fba0 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 ..";.}.else.{.$message..=."\n\nD
7fbc0 69 64 20 79 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 id.you.mean.one.of.these?\n...."
7fbe0 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 ;.}..$message..=.implode("\n....
7fc00 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 ",.$alternatives);.}..throw.new.
7fc20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 \InvalidArgumentException($messa
7fc40 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 ge);.}..if.(count($abbrevs[$part
7fc60 5d 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 ]).>.1).{.throw.new.\InvalidArgu
7fc80 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 6e 61 6d 65 73 mentException(sprintf('The.names
7fca0 70 61 63 65 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 pace."%s".is.ambiguous.(%s).',.$
7fcc0 6e 61 6d 65 73 70 61 63 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f namespace,.$this->getAbbreviatio
7fce0 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 29 29 29 3b nSuggestions($abbrevs[$part])));
7fd00 0a 7d 0a 0a 24 66 6f 75 6e 64 5b 5d 20 3d 20 24 61 62 62 72 65 76 73 5b 24 70 61 72 74 5d 5b 30 .}..$found[].=.$abbrevs[$part][0
7fd20 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 3a 27 2c 20 24 66 6f 75 6e 64 ];.}..return.implode(':',.$found
7fd40 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 );.}................public.funct
7fd60 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 0a 20 24 6e 61 6d 65 73 70 61 63 65 20 3d ion.find($name).{...$namespace.=
7fd80 20 27 27 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 69 66 20 28 66 61 .'';.$searchName.=.$name;.if.(fa
7fda0 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3a lse.!==.$pos.=.strrpos($name,.':
7fdc0 27 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 ')).{.$namespace.=.$this->findNa
7fde0 6d 65 73 70 61 63 65 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b mespace(substr($name,.0,.$pos));
7fe00 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 2e 73 75 62 73 74 72 .$searchName.=.$namespace.substr
7fe20 28 24 6e 61 6d 65 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 ($name,.$pos);.}....$commands.=.
7fe40 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 array();.foreach.($this->command
7fe60 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 s.as.$command).{.$extractedNames
7fe80 70 61 63 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 pace.=.$this->extractNamespace($
7fea0 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 69 66 20 28 24 65 78 74 72 61 63 command->getName());.if.($extrac
7fec0 74 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 0a 7c 7c 20 21 tedNamespace.===.$namespace.||.!
7fee0 65 6d 70 74 79 28 24 6e 61 6d 65 73 70 61 63 65 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f empty($namespace).&&.0.===.strpo
7ff00 73 28 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 s($extractedNamespace,.$namespac
7ff20 65 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 e).).{.$commands[].=.$command->g
7ff40 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 61 62 62 72 65 76 73 20 3d 20 73 74 61 74 69 63 etName();.}.}..$abbrevs.=.static
7ff60 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 ::getAbbreviations(array_unique(
7ff80 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b $commands));.if.(isset($abbrevs[
7ffa0 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 26 26 20 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 62 62 $searchName]).&&.1.==.count($abb
7ffc0 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 revs[$searchName])).{.return.$th
7ffe0 69 73 2d 3e 67 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 5d is->get($abbrevs[$searchName][0]
80000 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 );.}..if.(isset($abbrevs[$search
80020 4e 61 6d 65 5d 29 20 26 26 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 Name]).&&.count($abbrevs[$search
80040 4e 61 6d 65 5d 29 20 3e 20 31 29 20 7b 0a 24 73 75 67 67 65 73 74 69 6f 6e 73 20 3d 20 24 74 68 Name]).>.1).{.$suggestions.=.$th
80060 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 is->getAbbreviationSuggestions($
80080 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 abbrevs[$searchName]);..throw.ne
800a0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
800c0 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 ntf('Command."%s".is.ambiguous.(
800e0 25 73 29 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a %s).',.$name,.$suggestions));.}.
80100 0a 0a 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 ...$aliases.=.array();.foreach.(
80120 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 66 $this->commands.as.$command).{.f
80140 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 oreach.($command->getAliases().a
80160 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 20 s.$alias).{.$extractedNamespace.
80180 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 61 6c 69 61 73 =.$this->extractNamespace($alias
801a0 29 3b 0a 69 66 20 28 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 );.if.($extractedNamespace.===.$
801c0 6e 61 6d 65 73 70 61 63 65 0a 7c 7c 20 21 65 6d 70 74 79 28 24 6e 61 6d 65 73 70 61 63 65 29 20 namespace.||.!empty($namespace).
801e0 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 65 78 74 72 61 63 74 65 64 4e 61 6d 65 73 70 &&.0.===.strpos($extractedNamesp
80200 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 0a 29 20 7b 0a 24 61 6c 69 61 73 65 73 5b 5d 20 ace,.$namespace).).{.$aliases[].
80220 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 73 74 61 74 =.$alias;.}.}.}..$aliases.=.stat
80240 69 63 3a 3a 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 ic::getAbbreviations(array_uniqu
80260 65 28 24 61 6c 69 61 73 65 73 29 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 61 6c 69 61 73 65 e($aliases));.if.(!isset($aliase
80280 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 s[$searchName])).{.$message.=.sp
802a0 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e rintf('Command."%s".is.not.defin
802c0 65 64 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 ed.',.$name);..if.($alternatives
802e0 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 43 6f 6d 6d 61 6e 64 .=.$this->findAlternativeCommand
80300 73 28 24 73 65 61 72 63 68 4e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a 69 66 20 28 s($searchName,.$abbrevs)).{.if.(
80320 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 1.==.count($alternatives)).{.$me
80340 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f ssage..=."\n\nDid.you.mean.this?
80360 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c \n....";.}.else.{.$message..=."\
80380 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 n\nDid.you.mean.one.of.these?\n.
803a0 20 20 20 22 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 ...";.}.$message..=.implode("\n.
803c0 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e ...",.$alternatives);.}..throw.n
803e0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 ew.\InvalidArgumentException($me
80400 73 73 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 6c 69 61 73 65 73 5b 24 73 ssage);.}..if.(count($aliases[$s
80420 65 61 72 63 68 4e 61 6d 65 5d 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e earchName]).>.1).{.throw.new.\In
80440 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
80460 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 Command."%s".is.ambiguous.(%s).'
80480 2c 20 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 53 ,.$name,.$this->getAbbreviationS
804a0 75 67 67 65 73 74 69 6f 6e 73 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d uggestions($aliases[$searchName]
804c0 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 61 6c 69 61 73 )));.}..return.$this->get($alias
804e0 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a es[$searchName][0]);.}..........
80500 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 6e 61 6d 65 73 70 61 63 ...public.function.all($namespac
80520 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 e.=.null).{.if.(null.===.$namesp
80540 61 63 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d ace).{.return.$this->commands;.}
80560 0a 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 ..$commands.=.array();.foreach.(
80580 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d $this->commands.as.$name.=>.$com
805a0 6d 61 6e 64 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 74 68 69 73 mand).{.if.($namespace.===.$this
805c0 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 73 75 62 73 74 72 ->extractNamespace($name,.substr
805e0 5f 63 6f 75 6e 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 3a 27 29 20 2b 20 31 29 29 20 7b 0a _count($namespace,.':').+.1)).{.
80600 24 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d $commands[$name].=.$command;.}.}
80620 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ..return.$commands;.}.........pu
80640 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 blic.static.function.getAbbrevia
80660 74 69 6f 6e 73 28 24 6e 61 6d 65 73 29 0a 7b 0a 24 61 62 62 72 65 76 73 20 3d 20 61 72 72 61 79 tions($names).{.$abbrevs.=.array
80680 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a ();.foreach.($names.as.$name).{.
806a0 66 6f 72 20 28 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2d 20 31 3b 20 24 for.($len.=.strlen($name).-.1;.$
806c0 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 6c 65 6e 29 20 7b 0a 24 61 62 62 72 65 76 20 3d 20 73 75 62 len.>.0;.--$len).{.$abbrev.=.sub
806e0 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 6c 65 6e 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 str($name,.0,.$len);.if.(!isset(
80700 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 29 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 $abbrevs[$abbrev])).{.$abbrevs[$
80720 61 62 62 72 65 76 5d 20 3d 20 61 72 72 61 79 28 24 6e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 20 7b abbrev].=.array($name);.}.else.{
80740 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a .$abbrevs[$abbrev][].=.$name;.}.
80760 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 }.}....foreach.($names.as.$name)
80780 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 24 6e 61 6d 65 .{.$abbrevs[$name].=.array($name
807a0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a );.}..return.$abbrevs;.}........
807c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 24 6e 61 6d 65 73 70 ..public.function.asText($namesp
807e0 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d ace.=.null,.$raw.=.false).{.$com
80800 6d 61 6e 64 73 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 6c 6c 28 mands.=.$namespace.?.$this->all(
80820 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 $this->findNamespace($namespace)
80840 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 24 77 69 64 74 68 20 3d 20 30 ).:.$this->commands;..$width.=.0
80860 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 ;.foreach.($commands.as.$command
80880 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 ).{.$width.=.strlen($command->ge
808a0 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 20 3f 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d tName()).>.$width.?.strlen($comm
808c0 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3a 20 24 77 69 64 74 68 3b 0a 7d 0a 24 77 69 64 and->getName()).:.$width;.}.$wid
808e0 74 68 20 2b 3d 20 32 3b 0a 0a 69 66 20 28 24 72 61 77 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 th.+=.2;..if.($raw).{.$messages.
80900 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 =.array();.foreach.($this->sortC
80920 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 ommands($commands).as.$space.=>.
80940 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 $commands).{.foreach.($commands.
80960 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6d 65 73 73 61 67 65 as.$name.=>.$command).{.$message
80980 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 25 2d 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 s[].=.sprintf("%-${width}s.%s",.
809a0 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 $name,.$command->getDescription(
809c0 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c ));.}.}..return.implode(PHP_EOL,
809e0 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 .$messages);.}..$messages.=.arra
80a00 79 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 2c 20 27 27 29 3b 0a 69 66 20 28 24 6e 61 y($this->getHelp(),.'');.if.($na
80a20 6d 65 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 mespace).{.$messages[].=.sprintf
80a40 28 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f ("<comment>Available.commands.fo
80a60 72 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 r.the.\"%s\".namespace:</comment
80a80 3e 22 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 >",.$namespace);.}.else.{.$messa
80aa0 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d ges[].=.'<comment>Available.comm
80ac0 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 ands:</comment>';.}....foreach.(
80ae0 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 20 61 $this->sortCommands($commands).a
80b00 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 69 66 20 28 21 24 6e s.$space.=>.$commands).{.if.(!$n
80b20 61 6d 65 73 70 61 63 65 20 26 26 20 27 5f 67 6c 6f 62 61 6c 27 20 21 3d 3d 20 24 73 70 61 63 65 amespace.&&.'_global'.!==.$space
80b40 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 73 ).{.$messages[].=.'<comment>'.$s
80b60 70 61 63 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 pace.'</comment>';.}..foreach.($
80b80 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b commands.as.$name.=>.$command).{
80ba0 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 3c 69 6e 66 6f 3e .$messages[].=.sprintf("..<info>
80bc0 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 %-${width}s</info>.%s",.$name,.$
80be0 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a command->getDescription());.}.}.
80c00 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 .return.implode(PHP_EOL,.$messag
80c20 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 es);.}..........public.function.
80c40 61 73 58 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 61 73 44 6f 6d 20 asXml($namespace.=.null,.$asDom.
80c60 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 24 6e 61 6d 65 73 70 61 63 =.false).{.$commands.=.$namespac
80c80 65 20 3f 20 24 74 68 69 73 2d 3e 61 6c 6c 28 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 e.?.$this->all($this->findNamesp
80ca0 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e ace($namespace)).:.$this->comman
80cc0 64 73 3b 0a 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e ds;..$dom.=.new.\DOMDocument('1.
80ce0 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 0',.'UTF-8');.$dom->formatOutput
80d00 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 78 6d 6c 20 .=.true;.$dom->appendChild($xml.
80d20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 =.$dom->createElement('symfony')
80d40 29 3b 0a 0a 24 78 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 73 58 );..$xml->appendChild($commandsX
80d60 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e ML.=.$dom->createElement('comman
80d80 64 73 27 29 29 3b 0a 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 ds'));..if.($namespace).{.$comma
80da0 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 ndsXML->setAttribute('namespace'
80dc0 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 70 61 ,.$namespace);.}.else.{.$namespa
80de0 63 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 cesXML.=.$dom->createElement('na
80e00 6d 65 73 70 61 63 65 73 27 29 3b 0a 24 78 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e mespaces');.$xml->appendChild($n
80e20 61 6d 65 73 70 61 63 65 73 58 4d 4c 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 amespacesXML);.}....foreach.($th
80e40 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 is->sortCommands($commands).as.$
80e60 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 space.=>.$commands).{.if.(!$name
80e80 73 70 61 63 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 20 3d 20 24 64 space).{.$namespaceArrayXML.=.$d
80ea0 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 3b 0a om->createElement('namespace');.
80ec0 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d $namespacesXML->appendChild($nam
80ee0 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 espaceArrayXML);.$namespaceArray
80f00 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 73 70 61 63 65 29 3b XML->setAttribute('id',.$space);
80f20 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 .}..foreach.($commands.as.$name.
80f40 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 21 3d 3d 20 24 63 6f =>.$command).{.if.($name.!==.$co
80f60 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a mmand->getName()).{.continue;.}.
80f80 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 .if.(!$namespace).{.$commandXML.
80fa0 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 =.$dom->createElement('command')
80fc0 3b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c ;.$namespaceArrayXML->appendChil
80fe0 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 d($commandXML);.$commandXML->app
81000 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e endChild($dom->createTextNode($n
81020 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6e 6f 64 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 73 58 6d ame));.}..$node.=.$command->asXm
81040 6c 28 74 72 75 65 29 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 63 l(true)->getElementsByTagName('c
81060 6f 6d 6d 61 6e 64 27 29 2d 3e 69 74 65 6d 28 30 29 3b 0a 24 6e 6f 64 65 20 3d 20 24 64 6f 6d 2d ommand')->item(0);.$node.=.$dom-
81080 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 6e 6f 64 65 2c 20 74 72 75 65 29 3b 0a 0a 24 63 6f 6d 6d >importNode($node,.true);..$comm
810a0 61 6e 64 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d andsXML->appendChild($node);.}.}
810c0 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f 20 24 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 ..return.$asDom.?.$dom.:.$dom->s
810e0 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 aveXml();.}........public.functi
81100 6f 6e 20 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 0a on.renderException($e,.$output).
81120 7b 0a 24 73 74 72 6c 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 72 69 6e 67 29 20 7b {.$strlen.=.function.($string).{
81140 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e .if.(!function_exists('mb_strlen
81160 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a ')).{.return.strlen($string);.}.
81180 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 .if.(false.===.$encoding.=.mb_de
811a0 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e tect_encoding($string)).{.return
811c0 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 .strlen($string);.}..return.mb_s
811e0 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 3b 0a 0a 64 trlen($string,.$encoding);.};..d
81200 6f 20 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c o.{.$title.=.sprintf('..[%s]..',
81220 20 67 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a 24 6c 65 6e 20 3d 20 24 73 74 72 6c 65 6e 28 .get_class($e));.$len.=.$strlen(
81240 24 74 69 74 6c 65 29 3b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d $title);.$width.=.$this->getTerm
81260 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c inalWidth().?.$this->getTerminal
81280 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 24 6c 69 6e 65 Width().-.1.:.PHP_INT_MAX;.$line
812a0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 s.=.array();.foreach.(preg_split
812c0 28 22 7b 5c 72 3f 5c 6e 7d 22 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 20 61 73 ("{\r?\n}",.$e->getMessage()).as
812e0 20 24 6c 69 6e 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 73 74 72 5f 73 70 6c 69 74 28 24 6c 69 .$line).{.foreach.(str_split($li
81300 6e 65 2c 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e ne,.$width.-.4).as.$line).{.$lin
81320 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 25 73 20 20 27 2c 20 24 6c 69 6e 65 29 3b es[].=.sprintf('..%s..',.$line);
81340 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 20 2b 20 34 2c 20 .$len.=.max($strlen($line).+.4,.
81360 24 6c 65 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 73 74 $len);.}.}..$messages.=.array(st
81380 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 2c 20 24 74 69 74 6c 65 2e 73 74 72 5f r_repeat('.',.$len),.$title.str_
813a0 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 repeat('.',.max(0,.$len.-.$strle
813c0 6e 28 24 74 69 74 6c 65 29 29 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 n($title))));..foreach.($lines.a
813e0 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 s.$line).{.$messages[].=.$line.s
81400 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 6c tr_repeat('.',.$len.-.$strlen($l
81420 69 6e 65 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 ine));.}..$messages[].=.str_repe
81440 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e at('.',.$len);..$output->writeln
81460 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 66 6f 72 65 ("");.$output->writeln("");.fore
81480 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6f ach.($messages.as.$message).{.$o
814a0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 6d 65 73 73 61 67 utput->writeln('<error>'.$messag
814c0 65 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c e.'</error>');.}.$output->writel
814e0 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 0a 69 66 n("");.$output->writeln("");..if
81500 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 .(OutputInterface::VERBOSITY_VER
81520 42 4f 53 45 20 3d 3d 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 BOSE.===.$output->getVerbosity()
81540 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 45 ).{.$output->writeln('<comment>E
81560 78 63 65 70 74 69 6f 6e 20 74 72 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 0a 20 xception.trace:</comment>');....
81580 24 74 72 61 63 65 20 3d 20 24 65 2d 3e 67 65 74 54 72 61 63 65 28 29 3b 0a 61 72 72 61 79 5f 75 $trace.=.$e->getTrace();.array_u
815a0 6e 73 68 69 66 74 28 24 74 72 61 63 65 2c 20 61 72 72 61 79 28 0a 27 66 75 6e 63 74 69 6f 6e 27 nshift($trace,.array(.'function'
815c0 20 3d 3e 20 27 27 2c 0a 27 66 69 6c 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 .=>.'',.'file'.=>.$e->getFile().
815e0 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 3a 20 27 6e 2f 61 27 2c !=.null.?.$e->getFile().:.'n/a',
81600 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 21 3d 20 6e 75 6c 6c .'line'.=>.$e->getLine().!=.null
81620 20 3f 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 3a 20 27 6e 2f 61 27 2c 0a 27 61 72 67 73 27 .?.$e->getLine().:.'n/a',.'args'
81640 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 29 29 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 .=>.array(),.));..for.($i.=.0,.$
81660 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 72 61 63 65 29 3b 20 24 69 20 3c 20 24 63 6f 75 count.=.count($trace);.$i.<.$cou
81680 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 nt;.$i++).{.$class.=.isset($trac
816a0 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c e[$i]['class']).?.$trace[$i]['cl
816c0 61 73 73 27 5d 20 3a 20 27 27 3b 0a 24 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 65 ass'].:.'';.$type.=.isset($trace
816e0 5b 24 69 5d 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 [$i]['type']).?.$trace[$i]['type
81700 27 5d 20 3a 20 27 27 3b 0a 24 66 75 6e 63 74 69 6f 6e 20 3d 20 24 74 72 61 63 65 5b 24 69 5d 5b '].:.'';.$function.=.$trace[$i][
81720 27 66 75 6e 63 74 69 6f 6e 27 5d 3b 0a 24 66 69 6c 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 'function'];.$file.=.isset($trac
81740 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c e[$i]['file']).?.$trace[$i]['fil
81760 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 24 6c 69 6e 65 20 3d 20 69 73 73 65 74 28 24 74 72 61 63 e'].:.'n/a';.$line.=.isset($trac
81780 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e e[$i]['line']).?.$trace[$i]['lin
817a0 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 e'].:.'n/a';..$output->writeln(s
817c0 70 72 69 6e 74 66 28 27 20 25 73 25 73 25 73 28 29 20 61 74 20 3c 69 6e 66 6f 3e 25 73 3a 25 73 printf('.%s%s%s().at.<info>%s:%s
817e0 3c 2f 69 6e 66 6f 3e 27 2c 20 24 63 6c 61 73 73 2c 20 24 74 79 70 65 2c 20 24 66 75 6e 63 74 69 </info>',.$class,.$type,.$functi
81800 6f 6e 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e on,.$file,.$line));.}..$output->
81820 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 writeln("");.$output->writeln(""
81840 29 3b 0a 7d 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 3d 20 24 65 2d 3e 67 65 74 50 72 65 76 69 6f );.}.}.while.($e.=.$e->getPrevio
81860 75 73 28 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e 6e us());..if.(null.!==.$this->runn
81880 69 6e 67 43 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 ingCommand).{.$output->writeln(s
818a0 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 73 70 72 69 6e 74 printf('<info>%s</info>',.sprint
818c0 66 28 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f f($this->runningCommand->getSyno
818e0 70 73 69 73 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 29 3b 0a 24 6f 75 psis(),.$this->getName())));.$ou
81900 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 tput->writeln("");.$output->writ
81920 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e eln("");.}.}.......protected.fun
81940 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 0a 7b 0a 69 66 20 28 64 ction.getTerminalWidth().{.if.(d
81960 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c efined('PHP_WINDOWS_VERSION_BUIL
81980 44 27 29 29 20 7b 0a 69 66 20 28 24 61 6e 73 69 63 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 41 4e D')).{.if.($ansicon.=.getenv('AN
819a0 53 49 43 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 SICON')).{.return.preg_replace('
819c0 7b 5e 28 5c 64 2b 29 78 2e 2a 24 7d 27 2c 20 27 24 31 27 2c 20 24 61 6e 73 69 63 6f 6e 29 3b 0a {^(\d+)x.*$}',.'$1',.$ansicon);.
819e0 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 63 6f 6c 75 6d 6e 73 3a 5c 73 2a 28 }..if.(preg_match('{columns:\s*(
81a00 5c 64 2b 29 7d 69 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 \d+)}i',.$this->getConsoleMode()
81a20 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 ,.$matches)).{.return.$matches[1
81a40 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 72 6f 77 73 2e 28 5c ];.}.}..if.(preg_match("{rows.(\
81a60 64 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e 28 5c 64 2b 29 3b 7d 69 22 2c 20 24 74 68 69 73 2d 3e 67 d+);.columns.(\d+);}i",.$this->g
81a80 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 etSttyColumns(),.$match)).{.retu
81aa0 72 6e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 rn.$match[2];.}.}.......protecte
81ac0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 48 65 69 67 68 74 28 29 0a 7b d.function.getTerminalHeight().{
81ae0 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f .if.(defined('PHP_WINDOWS_VERSIO
81b00 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 69 66 20 28 24 61 6e 73 69 63 6f 6e 20 3d 20 67 65 74 65 N_BUILD')).{.if.($ansicon.=.gete
81b20 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 nv('ANSICON')).{.return.preg_rep
81b40 6c 61 63 65 28 27 7b 5e 5c 64 2b 78 5c 64 2b 20 5c 28 5c 64 2b 78 28 5c 64 2b 29 5c 29 24 7d 27 lace('{^\d+x\d+.\(\d+x(\d+)\)$}'
81b60 2c 20 27 24 31 27 2c 20 74 72 69 6d 28 24 61 6e 73 69 63 6f 6e 29 29 3b 0a 7d 0a 0a 69 66 20 28 ,.'$1',.trim($ansicon));.}..if.(
81b80 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 6c 69 6e 65 73 3a 5c 73 2a 28 5c 64 2b 29 7d 69 27 2c 20 preg_match('{lines:\s*(\d+)}i',.
81ba0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 2c 20 24 6d 61 74 63 68 65 $this->getConsoleMode(),.$matche
81bc0 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 69 s)).{.return.$matches[1];.}.}..i
81be0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e 63 6f 6c 75 f.(preg_match("{rows.(\d+);.colu
81c00 6d 6e 73 2e 28 5c 64 2b 29 3b 7d 69 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c mns.(\d+);}i",.$this->getSttyCol
81c20 75 6d 6e 73 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 umns(),.$match)).{.return.$match
81c40 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 [1];.}.}.........protected.funct
81c60 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 ion.getCommandName(InputInterfac
81c80 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 2d 3e 67 65 74 46 69 e.$input).{.return.$input->getFi
81ca0 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 rstArgument();.}.......protected
81cc0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 .function.getDefaultInputDefinit
81ce0 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 ion().{.return.new.InputDefiniti
81d00 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d on(array(.new.InputArgument('com
81d20 6d 61 6e 64 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 mand',.InputArgument::REQUIRED,.
81d40 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 65 78 65 63 75 74 65 27 29 2c 0a 0a 6e 65 77 20 'The.command.to.execute'),..new.
81d60 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 2c 20 49 6e 70 75 InputOption('--help',.'-h',.Inpu
81d80 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 68 tOption::VALUE_NONE,.'Display.th
81da0 69 73 20 68 65 6c 70 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 is.help.message.'),.new.InputOpt
81dc0 69 6f 6e 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e ion('--quiet',.'-q',.InputOption
81de0 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 61 6e 79 ::VALUE_NONE,.'Do.not.output.any
81e00 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d .message.'),.new.InputOption('--
81e20 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c verbose',.'-v',.InputOption::VAL
81e40 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 72 65 61 73 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 UE_NONE,.'Increase.verbosity.of.
81e60 6d 65 73 73 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d messages.'),.new.InputOption('--
81e80 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c version',.'-V',.InputOption::VAL
81ea0 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 UE_NONE,.'Display.this.applicati
81ec0 6f 6e 20 76 65 72 73 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 on.version.'),.new.InputOption('
81ee0 2d 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f --ansi',.'',.InputOption::VALUE_
81f00 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 20 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 29 2c 0a 6e 65 77 NONE,.'Force.ANSI.output.'),.new
81f20 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e .InputOption('--no-ansi',.'',.In
81f40 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 putOption::VALUE_NONE,.'Disable.
81f60 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ANSI.output.'),.new.InputOption(
81f80 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 2c 20 49 6e 70 75 74 4f '--no-interaction',.'-n',.InputO
81fa0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 61 73 6b 20 61 ption::VALUE_NONE,.'Do.not.ask.a
81fc0 6e 79 20 69 6e 74 65 72 61 63 74 69 76 65 20 71 75 65 73 74 69 6f 6e 2e 27 29 2c 0a 29 29 3b 0a ny.interactive.question.'),.));.
81fe0 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 }.......protected.function.getDe
82000 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e faultCommands().{.return.array(n
82020 65 77 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 28 29 2c 20 6e 65 77 20 4c 69 73 74 43 6f 6d 6d 61 6e ew.HelpCommand(),.new.ListComman
82040 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e d());.}.......protected.function
82060 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .getDefaultHelperSet().{.return.
82080 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 61 79 28 0a 6e 65 77 20 46 6f 72 6d 61 74 74 new.HelperSet(array(.new.Formatt
820a0 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 2c 0a erHelper(),.new.DialogHelper(),.
820c0 6e 65 77 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a new.ProgressHelper(),.));.}.....
820e0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e ..private.function.getSttyColumn
82100 73 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 s().{.if.(!function_exists('proc
82120 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f _open')).{.return;.}..$descripto
82140 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c rspec.=.array(1.=>.array('pipe',
82160 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b .'w'),.2.=>.array('pipe',.'w'));
82180 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 73 74 74 79 20 2d 61 20 7c .$process.=.proc_open('stty.-a.|
821a0 20 67 72 65 70 20 63 6f 6c 75 6d 6e 73 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 2c .grep.columns',.$descriptorspec,
821c0 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 73 75 70 70 .$pipes,.null,.null,.array('supp
821e0 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 69 73 5f 72 ress_errors'.=>.true));.if.(is_r
82200 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d 20 73 74 72 esource($process)).{.$info.=.str
82220 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c eam_get_contents($pipes[1]);.fcl
82240 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 32 5d ose($pipes[1]);.fclose($pipes[2]
82260 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e );.proc_close($process);..return
82280 20 24 69 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 .$info;.}.}.......private.functi
822a0 6f 6e 20 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 on.getConsoleMode().{.if.(!funct
822c0 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 ion_exists('proc_open')).{.retur
822e0 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 31 20 n;.}..$descriptorspec.=.array(1.
82300 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 =>.array('pipe',.'w'),.2.=>.arra
82320 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 y('pipe',.'w'));.$process.=.proc
82340 5f 6f 70 65 6e 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 _open('mode.CON',.$descriptorspe
82360 63 2c 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 73 75 c,.$pipes,.null,.null,.array('su
82380 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 69 73 ppress_errors'.=>.true));.if.(is
823a0 5f 72 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d 20 73 _resource($process)).{.$info.=.s
823c0 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 tream_get_contents($pipes[1]);.f
823e0 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b close($pipes[1]);.fclose($pipes[
82400 32 5d 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 72 65 74 75 2]);.proc_close($process);..retu
82420 72 6e 20 24 69 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 rn.$info;.}.}.........private.fu
82440 6e 63 74 69 6f 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b nction.sortCommands($commands).{
82460 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a .$namespacedCommands.=.array();.
82480 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 foreach.($commands.as.$name.=>.$
824a0 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6b 65 79 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 command).{.$key.=.$this->extract
824c0 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 20 Namespace($name,.1);.if.(!$key).
824e0 7b 0a 24 6b 65 79 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 {.$key.=.'_global';.}..$namespac
82500 65 64 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 edCommands[$key][$name].=.$comma
82520 6e 64 3b 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 nd;.}.ksort($namespacedCommands)
82540 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 ;..foreach.($namespacedCommands.
82560 61 73 20 26 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 as.&$commands).{.ksort($commands
82580 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 );.}..return.$namespacedCommands
825a0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ;.}.........private.function.get
825c0 41 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 AbbreviationSuggestions($abbrevs
825e0 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 ).{.return.sprintf('%s,.%s%s',.$
82600 61 62 62 72 65 76 73 5b 30 5d 2c 20 24 61 62 62 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 abbrevs[0],.$abbrevs[1],.count($
82620 61 62 62 72 65 76 73 29 20 3e 20 32 20 3f 20 73 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 abbrevs).>.2.?.sprintf('.and.%d.
82640 6d 6f 72 65 27 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 more',.count($abbrevs).-.2).:.''
82660 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 );.}..........private.function.e
82680 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 xtractNamespace($name,.$limit.=.
826a0 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e null).{.$parts.=.explode(':',.$n
826c0 61 6d 65 29 3b 0a 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e ame);.array_pop($parts);..return
826e0 20 69 6d 70 6c 6f 64 65 28 27 3a 27 2c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 .implode(':',.null.===.$limit.?.
82700 24 70 61 72 74 73 20 3a 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 $parts.:.array_slice($parts,.0,.
82720 24 6c 69 6d 69 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e $limit));.}..........private.fun
82740 63 74 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 43 6f 6d 6d 61 6e 64 73 28 24 6e ction.findAlternativeCommands($n
82760 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e ame,.$abbrevs).{.$callback.=.fun
82780 63 74 69 6f 6e 28 24 69 74 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 74 65 6d 2d 3e 67 65 74 ction($item).{.return.$item->get
827a0 4e 61 6d 65 28 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c Name();.};..return.$this->findAl
827c0 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 ternatives($name,.$this->command
827e0 73 2c 20 24 61 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 0a 0a 0a 0a s,.$abbrevs,.$callback);.}......
82800 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 ....private.function.findAlterna
82820 74 69 76 65 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 61 62 62 72 65 76 73 29 0a 7b tiveNamespace($name,.$abbrevs).{
82840 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 .return.$this->findAlternatives(
82860 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 2c 20 24 $name,.$this->getNamespaces(),.$
82880 61 62 62 72 65 76 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 abbrevs);.}.............private.
828a0 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c function.findAlternatives($name,
828c0 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 2c 20 24 61 62 62 72 65 76 73 2c 20 24 63 61 6c 6c 62 61 63 .$collection,.$abbrevs,.$callbac
828e0 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 61 72 72 61 k.=.null).{.$alternatives.=.arra
82900 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 69 y();..foreach.($collection.as.$i
82920 74 65 6d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b tem).{.if.(null.!==.$callback).{
82940 0a 24 69 74 65 6d 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 62 61 63 .$item.=.call_user_func($callbac
82960 6b 2c 20 24 69 74 65 6d 29 3b 0a 7d 0a 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e k,.$item);.}..$lev.=.levenshtein
82980 28 24 6e 61 6d 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c ($name,.$item);.if.($lev.<=.strl
829a0 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f en($name)./.3.||.false.!==.strpo
829c0 73 28 24 69 74 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 s($item,.$name)).{.$alternatives
829e0 5b 24 69 74 65 6d 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 61 6c 74 65 72 [$item].=.$lev;.}.}..if.(!$alter
82a00 6e 61 74 69 76 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 62 62 72 65 76 73 20 61 73 20 natives).{.foreach.($abbrevs.as.
82a20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 73 29 20 7b 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 $key.=>.$values).{.$lev.=.levens
82a40 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 6b 65 79 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 htein($name,.$key);.if.($lev.<=.
82a60 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 strlen($name)./.3.||.false.!==.s
82a80 74 72 70 6f 73 28 24 6b 65 79 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 trpos($key,.$name)).{.foreach.($
82aa0 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 values.as.$value).{.$alternative
82ac0 73 5b 24 76 61 6c 75 65 5d 20 3d 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 61 73 6f 72 74 s[$value].=.$lev;.}.}.}.}..asort
82ae0 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b ($alternatives);..return.array_k
82b00 65 79 73 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a eys($alternatives);.}.}.<?php...
82b20 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
82b40 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ent\Console\Input;.........class
82b60 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 51 55 49 52 45 44 20 .InputArgument.{.const.REQUIRED.
82b80 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 50 54 49 4f 4e 41 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 =.1;.const.OPTIONAL.=.2;.const.I
82ba0 53 5f 41 52 52 41 59 20 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 S_ARRAY.=.4;..private.$name;.pri
82bc0 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 vate.$mode;.private.$default;.pr
82be0 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ivate.$description;.............
82c00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 .public.function.__construct($na
82c20 6d 65 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d me,.$mode.=.null,.$description.=
82c40 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c .'',.$default.=.null).{.if.(null
82c60 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 4f 50 54 49 .===.$mode).{.$mode.=.self::OPTI
82c80 4f 4e 41 4c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c ONAL;.}.elseif.(!is_int($mode).|
82ca0 7c 20 24 6d 6f 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 68 72 6f |.$mode.>.7.||.$mode.<.1).{.thro
82cc0 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 w.new.\InvalidArgumentException(
82ce0 73 70 72 69 6e 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e sprintf('Argument.mode."%s".is.n
82d00 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e ot.valid.',.$mode));.}..$this->n
82d20 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 ame.=.$name;.$this->mode.=.$mode
82d40 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 ;.$this->description.=.$descript
82d60 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 ion;..$this->setDefault($default
82d80 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 );.}.......public.function.getNa
82da0 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a me().{.return.$this->name;.}....
82dc0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 71 75 69 72 65 64 28 29 0a ...public.function.isRequired().
82de0 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c {.return.self::REQUIRED.===.(sel
82e00 66 3a 3a 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a f::REQUIRED.&.$this->mode);.}...
82e20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a ....public.function.isArray().{.
82e40 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a return.self::IS_ARRAY.===.(self:
82e60 3a 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a :IS_ARRAY.&.$this->mode);.}.....
82e80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 ....public.function.setDefault($
82ea0 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 52 45 51 55 default.=.null).{.if.(self::REQU
82ec0 49 52 45 44 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d IRED.===.$this->mode.&&.null.!==
82ee0 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 .$default).{.throw.new.\LogicExc
82f00 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c eption('Cannot.set.a.default.val
82f20 75 65 20 65 78 63 65 70 74 20 66 6f 72 20 50 61 72 61 6d 65 74 65 72 3a 3a 4f 50 54 49 4f 4e 41 ue.except.for.Parameter::OPTIONA
82f40 4c 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 L.mode.');.}..if.($this->isArray
82f60 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 ()).{.if.(null.===.$default).{.$
82f80 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 default.=.array();.}.elseif.(!is
82fa0 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c _array($default)).{.throw.new.\L
82fc0 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 ogicException('A.default.value.f
82fe0 6f 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 6e 20 or.an.array.argument.must.be.an.
83000 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 array.');.}.}..$this->default.=.
83020 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $default;.}.......public.functio
83040 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 n.getDefault().{.return.$this->d
83060 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 efault;.}.......public.function.
83080 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getDescription().{.return.$this-
830a0 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a >description;.}.}.<?php.........
830c0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
830e0 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 nsole\Input;.............abstrac
83100 74 20 63 6c 61 73 73 20 49 6e 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 49 6e t.class.Input.implements.InputIn
83120 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b terface.{.protected.$definition;
83140 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .protected.$options;.protected.$
83160 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 arguments;.protected.$interactiv
83180 65 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 e.=.true;.......public.function.
831a0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 __construct(InputDefinition.$def
831c0 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 inition.=.null).{.if.(null.===.$
831e0 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 definition).{.$this->definition.
83200 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 =.new.InputDefinition();.}.else.
83220 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 {.$this->bind($definition);.$thi
83240 73 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->validate();.}.}.......public.
83260 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 function.bind(InputDefinition.$d
83280 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 efinition).{.$this->arguments.=.
832a0 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 array();.$this->options.=.array(
832c0 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 );.$this->definition.=.$definiti
832e0 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 on;..$this->parse();.}.....abstr
83300 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a act.protected.function.parse();.
83320 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 ......public.function.validate()
83340 0a 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3c .{.if.(count($this->arguments).<
83360 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 52 .$this->definition->getArgumentR
83380 65 71 75 69 72 65 64 43 6f 75 6e 74 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e equiredCount()).{.throw.new.\Run
833a0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 72 67 75 6d 65 timeException('Not.enough.argume
833c0 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f nts.');.}.}.......public.functio
833e0 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 n.isInteractive().{.return.$this
83400 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ->interactive;.}.......public.fu
83420 6e 63 74 69 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 nction.setInteractive($interacti
83440 76 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 28 42 6f 6f 6c ve).{.$this->interactive.=.(Bool
83460 65 61 6e 29 20 24 69 6e 74 65 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ean).$interactive;.}.......publi
83480 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 c.function.getArguments().{.retu
834a0 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e rn.array_merge($this->definition
834c0 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e ->getArgumentDefaults(),.$this->
834e0 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 arguments);.}...........public.f
83500 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 unction.getArgument($name).{.if.
83520 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 (!$this->definition->hasArgument
83540 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ($name)).{.throw.new.\InvalidArg
83560 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 umentException(sprintf('The."%s"
83580 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d .argument.does.not.exist.',.$nam
835a0 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 e));.}..return.isset($this->argu
835c0 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 ments[$name]).?.$this->arguments
835e0 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 [$name].:.$this->definition->get
83600 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d Argument($name)->getDefault();.}
83620 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 ..........public.function.setArg
83640 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 ument($name,.$value).{.if.(!$thi
83660 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 s->definition->hasArgument($name
83680 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
836a0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d xception(sprintf('The."%s".argum
836c0 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d ent.does.not.exist.',.$name));.}
836e0 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c ..$this->arguments[$name].=.$val
83700 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 ue;.}.........public.function.ha
83720 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d sArgument($name).{.return.$this-
83740 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b >definition->hasArgument($name);
83760 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 .}.......public.function.getOpti
83780 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 ons().{.return.array_merge($this
837a0 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 ->definition->getOptionDefaults(
837c0 29 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ),.$this->options);.}...........
837e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 public.function.getOption($name)
83800 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 .{.if.(!$this->definition->hasOp
83820 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 tion($name)).{.throw.new.\Invali
83840 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 dArgumentException(sprintf('The.
83860 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e "%s".option.does.not.exist.',.$n
83880 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 ame));.}..return.isset($this->op
838a0 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 tions[$name]).?.$this->options[$
838c0 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 name].:.$this->definition->getOp
838e0 74 69 6f 6e 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a tion($name)->getDefault();.}....
83900 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 ......public.function.setOption(
83920 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 $name,.$value).{.if.(!$this->def
83940 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 inition->hasOption($name)).{.thr
83960 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
83980 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e (sprintf('The."%s".option.does.n
839a0 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f ot.exist.',.$name));.}..$this->o
839c0 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ptions[$name].=.$value;.}.......
839e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d ..public.function.hasOption($nam
83a00 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 e).{.return.$this->definition->h
83a20 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a asOption($name);.}.}.<?php......
83a40 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
83a60 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 \Console\Input;.............clas
83a80 73 20 53 74 72 69 6e 67 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 41 72 67 76 49 6e 70 75 74 0a s.StringInput.extends.ArgvInput.
83aa0 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 54 52 49 4e 47 20 3d 20 27 28 5b 5e 20 5d 2b 3f 29 {.const.REGEX_STRING.=.'([^.]+?)
83ac0 28 3f 3a 20 7c 28 3f 3c 21 5c 5c 5c 5c 29 22 7c 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c 24 29 27 3b (?:.|(?<!\\\\)"|(?<!\\\\)\'|$)';
83ae0 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f .const.REGEX_QUOTED_STRING.=.'(?
83b00 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 :"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)
83b20 22 7c 5c 27 28 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d "|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]
83b40 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 *)*)\')';..........public.functi
83b60 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 44 65 66 69 on.__construct($input,.InputDefi
83b80 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 nition.$definition.=.null).{.par
83ba0 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 24 64 65 66 69 6e ent::__construct(array(),.$defin
83bc0 69 74 69 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 6f 6b 65 6e 73 28 24 74 68 69 73 2d ition);..$this->setTokens($this-
83be0 3e 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a >tokenize($input));.}...........
83c00 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 private.function.tokenize($input
83c20 29 0a 7b 0a 24 69 6e 70 75 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5c 72 5c ).{.$input.=.preg_replace('/(\r\
83c40 6e 7c 5c 72 7c 5c 6e 7c 5c 74 29 2f 27 2c 20 27 20 27 2c 20 24 69 6e 70 75 74 29 3b 0a 0a 24 74 n|\r|\n|\t)/',.'.',.$input);..$t
83c60 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 okens.=.array();.$length.=.strle
83c80 6e 28 24 69 6e 70 75 74 29 3b 0a 24 63 75 72 73 6f 72 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 n($input);.$cursor.=.0;.while.($
83ca0 63 75 72 73 6f 72 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 cursor.<.$length).{.if.(preg_mat
83cc0 63 68 28 27 2f 5c 73 2b 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c ch('/\s+/A',.$input,.$match,.nul
83ce0 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 l,.$cursor)).{.}.elseif.(preg_ma
83d00 74 63 68 28 27 2f 28 5b 5e 3d 22 5c 27 20 5d 2b 3f 29 28 3d 3f 29 28 27 2e 73 65 6c 66 3a 3a 52 tch('/([^="\'.]+?)(=?)('.self::R
83d20 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2b 29 2f 41 27 2c 20 24 69 6e 70 75 EGEX_QUOTED_STRING.'+)/A',.$inpu
83d40 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f t,.$match,.null,.$cursor)).{.$to
83d60 6b 65 6e 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 24 6d 61 74 63 68 5b 32 5d 2e 73 74 72 kens[].=.$match[1].$match[2].str
83d80 69 70 63 73 6c 61 73 68 65 73 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 22 5c ipcslashes(str_replace(array('"\
83da0 27 27 2c 20 27 5c 27 22 27 2c 20 27 5c 27 5c 27 27 2c 20 27 22 22 27 29 2c 20 27 27 2c 20 73 75 '',.'\'"',.'\'\'',.'""'),.'',.su
83dc0 62 73 74 72 28 24 6d 61 74 63 68 5b 33 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 bstr($match[3],.1,.strlen($match
83de0 5b 33 5d 29 20 2d 20 32 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 [3]).-.2)));.}.elseif.(preg_matc
83e00 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e h('/'.self::REGEX_QUOTED_STRING.
83e20 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 '/A',.$input,.$match,.null,.$cur
83e40 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 sor)).{.$tokens[].=.stripcslashe
83e60 73 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d s(substr($match[0],.1,.strlen($m
83e80 61 74 63 68 5b 30 5d 29 20 2d 20 32 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d atch[0]).-.2));.}.elseif.(preg_m
83ea0 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 53 54 52 49 4e 47 2e 27 2f 41 27 atch('/'.self::REGEX_STRING.'/A'
83ec0 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 ,.$input,.$match,.null,.$cursor)
83ee0 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 24 6d ).{.$tokens[].=.stripcslashes($m
83f00 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 20 6e 65 77 atch[1]);.}.else.{.....throw.new
83f20 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
83f40 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 69 6e 70 75 74 20 6e 65 61 72 20 22 tf('Unable.to.parse.input.near."
83f60 2e 2e 2e 20 25 73 20 2e 2e 2e 22 27 2c 20 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c 20 24 63 75 ....%s...."',.substr($input,.$cu
83f80 72 73 6f 72 2c 20 31 30 29 29 29 3b 0a 0a 20 7d 0a 0a 24 63 75 72 73 6f 72 20 2b 3d 20 73 74 72 rsor,.10)));...}..$cursor.+=.str
83fa0 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e len($match[0]);.}..return.$token
83fc0 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 s;.}.}.<?php...........namespace
83fe0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
84000 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 4f 70 74 69 6f 6e 0a 7b 0a 63 6f ;.........class.InputOption.{.co
84020 6e 73 74 20 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f nst.VALUE_NONE.=.1;.const.VALUE_
84040 52 45 51 55 49 52 45 44 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4f 50 54 49 4f 4e REQUIRED.=.2;.const.VALUE_OPTION
84060 41 4c 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 20 38 AL.=.4;.const.VALUE_IS_ARRAY.=.8
84080 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 ;..private.$name;.private.$short
840a0 63 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 cut;.private.$mode;.private.$def
840c0 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a ault;.private.$description;.....
840e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ..........public.function.__cons
84100 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 truct($name,.$shortcut.=.null,.$
84120 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 mode.=.null,.$description.=.'',.
84140 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 $default.=.null).{.if.(0.===.str
84160 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 pos($name,.'--')).{.$name.=.subs
84180 74 72 28 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 61 6d 65 tr($name,.2);.}..if.(empty($name
841a0 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
841c0 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 20 63 61 6e 6e 6f 74 20 xception('An.option.name.cannot.
841e0 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 be.empty.');.}..if.(empty($short
84200 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 cut)).{.$shortcut.=.null;.}..if.
84220 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 29 20 7b 0a 69 66 20 28 27 2d 27 20 3d (null.!==.$shortcut).{.if.('-'.=
84240 3d 3d 20 24 73 68 6f 72 74 63 75 74 5b 30 5d 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 73 ==.$shortcut[0]).{.$shortcut.=.s
84260 75 62 73 74 72 28 24 73 68 6f 72 74 63 75 74 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 ubstr($shortcut,.1);.}..if.(empt
84280 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c y($shortcut)).{.throw.new.\Inval
842a0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 73 idArgumentException('An.option.s
842c0 68 6f 72 74 63 75 74 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a hortcut.cannot.be.empty.');.}.}.
842e0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 .if.(null.===.$mode).{.$mode.=.s
84300 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 elf::VALUE_NONE;.}.elseif.(!is_i
84320 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 6d 6f 64 65 nt($mode).||.$mode.>.15.||.$mode
84340 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 .<.1).{.throw.new.\InvalidArgume
84360 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4f 70 74 69 6f 6e 20 6d 6f 64 65 ntException(sprintf('Option.mode
84380 20 22 25 73 22 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d ."%s".is.not.valid.',.$mode));.}
843a0 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 73 68 ..$this->name.=.$name;.$this->sh
843c0 6f 72 74 63 75 74 20 3d 20 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 ortcut.=.$shortcut;.$this->mode.
843e0 3d 20 24 6d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 =.$mode;.$this->description.=.$d
84400 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 escription;..if.($this->isArray(
84420 29 20 26 26 20 21 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 ).&&.!$this->acceptValue()).{.th
84440 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
84460 6e 28 27 49 6d 70 6f 73 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 69 6f 6e 20 n('Impossible.to.have.an.option.
84480 6d 6f 64 65 20 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f 70 74 69 6f mode.VALUE_IS_ARRAY.if.the.optio
844a0 6e 20 64 6f 65 73 20 6e 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a n.does.not.accept.a.value.');.}.
844c0 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a .$this->setDefault($default);.}.
844e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 63 75 ......public.function.getShortcu
84500 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 3b 0a 7d 0a t().{.return.$this->shortcut;.}.
84520 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a ......public.function.getName().
84540 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 {.return.$this->name;.}.......pu
84560 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a 7b 0a 72 65 blic.function.acceptValue().{.re
84580 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 7c 7c turn.$this->isValueRequired().||
845a0 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d 0a 0a 0a 0a .$this->isValueOptional();.}....
845c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 52 65 71 75 69 72 ...public.function.isValueRequir
845e0 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 ed().{.return.self::VALUE_REQUIR
84600 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 26 20 24 ED.===.(self::VALUE_REQUIRED.&.$
84620 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->mode);.}.......public.func
84640 74 69 6f 6e 20 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 tion.isValueOptional().{.return.
84660 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a self::VALUE_OPTIONAL.===.(self::
84680 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d VALUE_OPTIONAL.&.$this->mode);.}
846a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 .......public.function.isArray()
846c0 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d .{.return.self::VALUE_IS_ARRAY.=
846e0 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 ==.(self::VALUE_IS_ARRAY.&.$this
84700 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->mode);.}.........public.functi
84720 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b on.setDefault($default.=.null).{
84740 0a 69 66 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 65 6c 66 3a .if.(self::VALUE_NONE.===.(self:
84760 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 6e 75 :VALUE_NONE.&.$this->mode).&&.nu
84780 6c 6c 20 21 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f ll.!==.$default).{.throw.new.\Lo
847a0 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 gicException('Cannot.set.a.defau
847c0 6c 74 20 76 61 6c 75 65 20 77 68 65 6e 20 75 73 69 6e 67 20 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 lt.value.when.using.Option::VALU
847e0 45 5f 4e 4f 4e 45 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 E_NONE.mode.');.}..if.($this->is
84800 41 72 72 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 Array()).{.if.(null.===.$default
84820 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 ).{.$default.=.array();.}.elseif
84840 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e .(!is_array($default)).{.throw.n
84860 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 ew.\LogicException('A.default.va
84880 6c 75 65 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 6f 70 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 lue.for.an.array.option.must.be.
848a0 61 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 an.array.');.}.}..$this->default
848c0 20 3d 20 24 74 68 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 24 64 65 66 61 75 .=.$this->acceptValue().?.$defau
848e0 6c 74 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 lt.:.false;.}.......public.funct
84900 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getDefault().{.return.$this-
84920 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >default;.}.......public.functio
84940 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 n.getDescription().{.return.$thi
84960 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->description;.}........public.
84980 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 function.equals(InputOption.$opt
849a0 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 ion).{.return.$option->getName()
849c0 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e .===.$this->getName().&&.$option
849e0 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 ->getShortcut().===.$this->getSh
84a00 6f 72 74 63 75 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 ortcut().&&.$option->getDefault(
84a20 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 0a 26 26 20 24 6f 70 ).===.$this->getDefault().&&.$op
84a40 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 41 72 72 tion->isArray().===.$this->isArr
84a60 61 79 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 ay().&&.$option->isValueRequired
84a80 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a ().===.$this->isValueRequired().
84aa0 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3d 3d &&.$option->isValueOptional().==
84ac0 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 3b 0a 7d 0a 7d =.$this->isValueOptional().;.}.}
84ae0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
84b00 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a ny\Component\Console\Input;.....
84b20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 ........................class.Ar
84b40 67 76 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 gvInput.extends.Input.{.private.
84b60 24 74 6f 6b 65 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 3b 0a 0a 0a 0a 0a 0a 0a $tokens;.private.$parsed;.......
84b80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ...public.function.__construct(a
84ba0 72 72 61 79 20 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 rray.$argv.=.null,.InputDefiniti
84bc0 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c on.$definition.=.null).{.if.(nul
84be0 6c 20 3d 3d 3d 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 76 20 3d 20 24 5f 53 45 52 56 45 52 5b l.===.$argv).{.$argv.=.$_SERVER[
84c00 27 61 72 67 76 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 76 29 'argv'];.}....array_shift($argv)
84c20 3b 0a 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 61 72 67 76 3b 0a 0a 70 61 72 65 6e ;..$this->tokens.=.$argv;..paren
84c40 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a t::__construct($definition);.}..
84c60 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 6f 6b 65 6e 73 28 61 72 72 protected.function.setTokens(arr
84c80 61 79 20 24 74 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 74 ay.$tokens).{.$this->tokens.=.$t
84ca0 6f 6b 65 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 okens;.}.....protected.function.
84cc0 70 61 72 73 65 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a parse().{.$parseOptions.=.true;.
84ce0 24 74 68 69 73 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 $this->parsed.=.$this->tokens;.w
84d00 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 hile.(null.!==.$token.=.array_sh
84d20 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 69 66 20 28 24 70 61 72 73 65 ift($this->parsed)).{.if.($parse
84d40 4f 70 74 69 6f 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 Options.&&.''.==.$token).{.$this
84d60 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 ->parseArgument($token);.}.elsei
84d80 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 2d 27 20 3d 3d 20 24 74 6f 6b f.($parseOptions.&&.'--'.==.$tok
84da0 65 6e 29 20 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 en).{.$parseOptions.=.false;.}.e
84dc0 6c 73 65 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 30 20 3d 3d 3d 20 73 74 lseif.($parseOptions.&&.0.===.st
84de0 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 rpos($token,.'--')).{.$this->par
84e00 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 seLongOption($token);.}.elseif.(
84e20 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b $parseOptions.&&.'-'.===.$token[
84e40 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 0]).{.$this->parseShortOption($t
84e60 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 41 72 67 75 oken);.}.else.{.$this->parseArgu
84e80 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ment($token);.}.}.}.......privat
84ea0 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b e.function.parseShortOption($tok
84ec0 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 31 29 3b en).{.$name.=.substr($token,.1);
84ee0 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 3e 20 31 29 20 7b 0a 69 66 20 28 24 ..if.(strlen($name).>.1).{.if.($
84f00 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e this->definition->hasShortcut($n
84f20 61 6d 65 5b 30 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 ame[0]).&&.$this->definition->ge
84f40 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 tOptionForShortcut($name[0])->ac
84f60 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 ceptValue()).{...$this->addShort
84f80 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 31 Option($name[0],.substr($name,.1
84fa0 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 ));.}.else.{.$this->parseShortOp
84fc0 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 tionSet($name);.}.}.else.{.$this
84fe0 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d ->addShortOption($name,.null);.}
85000 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 .}.........private.function.pars
85020 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 eShortOptionSet($name).{.$len.=.
85040 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c strlen($name);.for.($i.=.0;.$i.<
85060 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e .$len;.$i++).{.if.(!$this->defin
85080 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d 29 29 20 7b ition->hasShortcut($name[$i])).{
850a0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 .throw.new.\RuntimeException(spr
850c0 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 intf('The."-%s".option.does.not.
850e0 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 5b 24 69 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e exist.',.$name[$i]));.}..$option
85100 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 .=.$this->definition->getOptionF
85120 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 5d 29 3b 0a 69 66 20 28 24 6f 70 74 69 orShortcut($name[$i]);.if.($opti
85140 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c on->acceptValue()).{.$this->addL
85160 6f 6e 67 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 69 ongOption($option->getName(),.$i
85180 20 3d 3d 3d 20 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 6c 6c 20 3a 20 73 75 62 73 74 72 28 24 6e .===.$len.-.1.?.null.:.substr($n
851a0 61 6d 65 2c 20 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a ame,.$i.+.1));..break;.}.else.{.
851c0 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 $this->addLongOption($option->ge
851e0 74 4e 61 6d 65 28 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 tName(),.true);.}.}.}.......priv
85200 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f ate.function.parseLongOption($to
85220 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 32 29 ken).{.$name.=.substr($token,.2)
85240 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 ;..if.(false.!==.$pos.=.strpos($
85260 6e 61 6d 65 2c 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 name,.'=')).{.$this->addLongOpti
85280 6f 6e 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 2c 20 73 75 62 73 74 on(substr($name,.0,.$pos),.subst
852a0 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 r($name,.$pos.+.1));.}.else.{.$t
852c0 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b his->addLongOption($name,.null);
852e0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 .}.}.........private.function.pa
85300 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 rseArgument($token).{.$c.=.count
85320 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 ($this->arguments);....if.($this
85340 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 29 29 20 7b ->definition->hasArgument($c)).{
85360 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 .$arg.=.$this->definition->getAr
85380 67 75 6d 65 6e 74 28 24 63 29 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 gument($c);.$this->arguments[$ar
853a0 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 2d 3e 69 73 41 72 72 61 79 28 29 3f g->getName()].=.$arg->isArray()?
853c0 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c .array($token).:.$token;....}.el
853e0 73 65 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 seif.($this->definition->hasArgu
85400 6d 65 6e 74 28 24 63 20 2d 20 31 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f ment($c.-.1).&&.$this->definitio
85420 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 2d 3e 69 73 41 72 72 61 79 28 n->getArgument($c.-.1)->isArray(
85440 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 )).{.$arg.=.$this->definition->g
85460 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d etArgument($c.-.1);.$this->argum
85480 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e ents[$arg->getName()][].=.$token
854a0 3b 0a 0a 0a 20 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 ;....}.else.{.throw.new.\Runtime
854c0 45 78 63 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 Exception('Too.many.arguments.')
854e0 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ;.}.}..........private.function.
85500 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 addShortOption($shortcut,.$value
85520 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 ).{.if.(!$this->definition->hasS
85540 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 hortcut($shortcut)).{.throw.new.
85560 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 \RuntimeException(sprintf('The."
85580 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 -%s".option.does.not.exist.',.$s
855a0 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 hortcut));.}..$this->addLongOpti
855c0 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 on($this->definition->getOptionF
855e0 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 orShortcut($shortcut)->getName()
85600 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ,.$value);.}..........private.fu
85620 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c nction.addLongOption($name,.$val
85640 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 ue).{.if.(!$this->definition->ha
85660 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e sOption($name)).{.throw.new.\Run
85680 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 timeException(sprintf('The."--%s
856a0 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 ".option.does.not.exist.',.$name
856c0 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 ));.}..$option.=.$this->definiti
856e0 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 on->getOption($name);..if.(null.
85700 3d 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c ===.$value.&&.$option->acceptVal
85720 75 65 28 29 29 20 7b 0a 0a 20 0a 20 24 6e 65 78 74 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 ue()).{.....$next.=.array_shift(
85740 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 3b 0a 69 66 20 28 27 2d 27 20 21 3d 3d 20 24 6e 65 78 $this->parsed);.if.('-'.!==.$nex
85760 74 5b 30 5d 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6e 65 78 74 3b 0a 7d 20 65 6c 73 65 20 7b t[0]).{.$value.=.$next;.}.else.{
85780 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 2c 20 24 6e .array_unshift($this->parsed,.$n
857a0 65 78 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 ext);.}.}..if.(null.===.$value).
857c0 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 {.if.($option->isValueRequired()
857e0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
85800 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 sprintf('The."--%s".option.requi
85820 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 76 61 6c 75 res.a.value.',.$name));.}..$valu
85840 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f e.=.$option->isValueOptional().?
85860 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d .$option->getDefault().:.true;.}
85880 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 ..if.($option->isArray()).{.$thi
858a0 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 20 s->options[$name][].=.$value;.}.
858c0 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 else.{.$this->options[$name].=.$
858e0 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e value;.}.}.......public.function
85900 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 .getFirstArgument().{.foreach.($
85920 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 24 74 this->tokens.as.$token).{.if.($t
85940 6f 6b 65 6e 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 6f 6e oken.&&.'-'.===.$token[0]).{.con
85960 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 7d 0a 0a 0a 0a tinue;.}..return.$token;.}.}....
85980 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d ........public.function.hasParam
859a0 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 eterOption($values).{.$values.=.
859c0 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 (array).$values;..foreach.($this
859e0 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 76 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 ->tokens.as.$v).{.if.(in_array($
85a00 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a v,.$values)).{.return.true;.}.}.
85a20 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .return.false;.}.............pub
85a40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 lic.function.getParameterOption(
85a60 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 $values,.$default.=.false).{.$va
85a80 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 24 74 6f 6b 65 6e 73 lues.=.(array).$values;..$tokens
85aa0 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 28 24 74 6f 6b 65 6e 20 .=.$this->tokens;.while.($token.
85ac0 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 29 20 7b 0a 66 6f 72 65 61 63 =.array_shift($tokens)).{.foreac
85ae0 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d 3d h.($values.as.$value).{.if.(0.==
85b00 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 69 66 20 28 =.strpos($token,.$value)).{.if.(
85b20 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 false.!==.$pos.=.strpos($token,.
85b40 27 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 24 70 '=')).{.return.substr($token,.$p
85b60 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 os.+.1);.}..return.array_shift($
85b80 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b tokens);.}.}.}..return.$default;
85ba0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
85bc0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a ymfony\Component\Console\Input;.
85be0 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b ......interface.InputInterface.{
85c00 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 ......public.function.getFirstAr
85c20 67 75 6d 65 6e 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 gument();............public.func
85c40 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 tion.hasParameterOption($values)
85c60 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ;.............public.function.ge
85c80 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 tParameterOption($values,.$defau
85ca0 6c 74 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 lt.=.false);.......public.functi
85cc0 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 on.bind(InputDefinition.$definit
85ce0 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 ion);.........public.function.va
85d00 6c 69 64 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 lidate();.......public.function.
85d20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 getArguments();.........public.f
85d40 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a unction.getArgument($name);.....
85d60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 .....public.function.setArgument
85d80 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ($name,.$value);.........public.
85da0 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a function.hasArgument($name);....
85dc0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b ...public.function.getOptions();
85de0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 .........public.function.getOpti
85e00 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 on($name);..........public.funct
85e20 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a ion.setOption($name,.$value);...
85e40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 ......public.function.hasOption(
85e60 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 $name);.......public.function.is
85e80 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 Interactive();.......public.func
85ea0 74 69 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 tion.setInteractive($interactive
85ec0 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 );.}.<?php...........namespace.S
85ee0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a ymfony\Component\Console\Input;.
85f00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 ............class.ArrayInput.ext
85f20 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 ends.Input.{.private.$parameters
85f40 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ;..........public.function.__con
85f60 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 struct(array.$parameters,.InputD
85f80 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a efinition.$definition.=.null).{.
85fa0 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b $this->parameters.=.$parameters;
85fc0 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f ..parent::__construct($definitio
85fe0 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 n);.}.......public.function.getF
86000 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d irstArgument().{.foreach.($this-
86020 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b >parameters.as.$key.=>.$value).{
86040 0a 69 66 20 28 24 6b 65 79 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a .if.($key.&&.'-'.===.$key[0]).{.
86060 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a continue;.}..return.$value;.}.}.
86080 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 ...........public.function.hasPa
860a0 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 rameterOption($values).{.$values
860c0 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 .=.(array).$values;..foreach.($t
860e0 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 his->parameters.as.$k.=>.$v).{.i
86100 66 20 28 21 69 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 f.(!is_int($k)).{.$v.=.$k;.}..if
86120 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 .(in_array($v,.$values)).{.retur
86140 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a n.true;.}.}..return.false;.}....
86160 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 .........public.function.getPara
86180 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 meterOption($values,.$default.=.
861a0 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 false).{.$values.=.(array).$valu
861c0 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 es;..foreach.($this->parameters.
861e0 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 20 26 26 as.$k.=>.$v).{.if.(is_int($k).&&
86200 20 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e .in_array($v,.$values)).{.return
86220 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 .true;.}.elseif.(in_array($k,.$v
86240 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e alues)).{.return.$v;.}.}..return
86260 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 .$default;.}.....protected.funct
86280 69 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 ion.parse().{.foreach.($this->pa
862a0 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 rameters.as.$key.=>.$value).{.if
862c0 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 .(0.===.strpos($key,.'--')).{.$t
862e0 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 his->addLongOption(substr($key,.
86300 32 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 2),.$value);.}.elseif.('-'.===.$
86320 6b 65 79 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 key[0]).{.$this->addShortOption(
86340 73 75 62 73 74 72 28 24 6b 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 substr($key,.1),.$value);.}.else
86360 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c .{.$this->addArgument($key,.$val
86380 75 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ue);.}.}.}..........private.func
863a0 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 tion.addShortOption($shortcut,.$
863c0 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d value).{.if.(!$this->definition-
863e0 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 >hasShortcut($shortcut)).{.throw
86400 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
86420 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f printf('The."-%s".option.does.no
86440 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 t.exist.',.$shortcut));.}..$this
86460 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f ->addLongOption($this->definitio
86480 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 n->getOptionForShortcut($shortcu
864a0 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a t)->getName(),.$value);.}.......
864c0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 ....private.function.addLongOpti
864e0 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e on($name,.$value).{.if.(!$this->
86500 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a definition->hasOption($name)).{.
86520 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
86540 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 ion(sprintf('The."--%s".option.d
86560 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 oes.not.exist.',.$name));.}..$op
86580 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 tion.=.$this->definition->getOpt
865a0 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 ion($name);..if.(null.===.$value
865c0 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 ).{.if.($option->isValueRequired
865e0 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ()).{.throw.new.\InvalidArgument
86600 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 Exception(sprintf('The."--%s".op
86620 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 tion.requires.a.value.',.$name))
86640 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 ;.}..$value.=.$option->isValueOp
86660 74 69 6f 6e 61 6c 28 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 tional().?.$option->getDefault()
86680 20 3a 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 .:.true;.}..$this->options[$name
866a0 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 ].=.$value;.}..........private.f
866c0 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 unction.addArgument($name,.$valu
866e0 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 e).{.if.(!$this->definition->has
86700 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e Argument($name)).{.throw.new.\In
86720 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
86740 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 The."%s".argument.does.not.exist
86760 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 .',.$name));.}..$this->arguments
86780 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a [$name].=.$value;.}.}.<?php.....
867a0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
867c0 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a t\Console\Input;................
867e0 63 6c 61 73 73 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 class.InputDefinition.{.private.
86800 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 64 43 6f 75 $arguments;.private.$requiredCou
86820 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 nt;.private.$hasAnArrayArgument.
86840 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 =.false;.private.$hasOptional;.p
86860 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 rivate.$options;.private.$shortc
86880 75 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 uts;.........public.function.__c
868a0 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 61 72 72 onstruct(array.$definition.=.arr
868c0 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 ay()).{.$this->setDefinition($de
868e0 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 finition);.}.........public.func
86900 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 tion.setDefinition(array.$defini
86920 74 69 6f 6e 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f tion).{.$arguments.=.array();.$o
86940 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 ptions.=.array();.foreach.($defi
86960 6e 69 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d 20 69 6e 73 nition.as.$item).{.if.($item.ins
86980 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b tanceof.InputOption).{.$options[
869a0 5d 20 3d 20 24 69 74 65 6d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d ].=.$item;.}.else.{.$arguments[]
869c0 20 3d 20 24 69 74 65 6d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 75 6d 65 6e .=.$item;.}.}..$this->setArgumen
869e0 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e ts($arguments);.$this->setOption
86a00 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s($options);.}.........public.fu
86a20 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d nction.setArguments($arguments.=
86a40 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 .array()).{.$this->arguments.=.a
86a60 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 20 3d 20 30 rray();.$this->requiredCount.=.0
86a80 3b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 24 74 ;.$this->hasOptional.=.false;.$t
86aa0 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b his->hasAnArrayArgument.=.false;
86ac0 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 .$this->addArguments($arguments)
86ae0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 ;.}.........public.function.addA
86b00 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b rguments($arguments.=.array()).{
86b20 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a 66 6f 72 65 .if.(null.!==.$arguments).{.fore
86b40 61 63 68 20 28 24 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a ach.($arguments.as.$argument).{.
86b60 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d $this->addArgument($argument);.}
86b80 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 .}.}...........public.function.a
86ba0 64 64 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 ddArgument(InputArgument.$argume
86bc0 6e 74 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 nt).{.if.(isset($this->arguments
86be0 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 [$argument->getName()])).{.throw
86c00 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e .new.\LogicException(sprintf('An
86c20 20 61 72 67 75 6d 65 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 64 79 .argument.with.name."%s".already
86c40 20 65 78 69 73 74 73 2e 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 .exists.',.$argument->getName())
86c60 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d );.}..if.($this->hasAnArrayArgum
86c80 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e ent).{.throw.new.\LogicException
86ca0 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 ('Cannot.add.an.argument.after.a
86cc0 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 n.array.argument.');.}..if.($arg
86ce0 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 ument->isRequired().&&.$this->ha
86d00 73 4f 70 74 69 6f 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 sOptional).{.throw.new.\LogicExc
86d20 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 61 72 eption('Cannot.add.a.required.ar
86d40 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 29 3b gument.after.an.optional.one.');
86d60 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a .}..if.($argument->isArray()).{.
86d80 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 75 65 $this->hasAnArrayArgument.=.true
86da0 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 ;.}..if.($argument->isRequired()
86dc0 29 20 7b 0a 2b 2b 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 65 6c ).{.++$this->requiredCount;.}.el
86de0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0a se.{.$this->hasOptional.=.true;.
86e00 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 }..$this->arguments[$argument->g
86e20 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a etName()].=.$argument;.}........
86e40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 .....public.function.getArgument
86e60 28 24 6e 61 6d 65 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e ($name).{.$arguments.=.is_int($n
86e80 61 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d ame).?.array_values($this->argum
86ea0 65 6e 74 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 69 66 20 28 21 ents).:.$this->arguments;..if.(!
86ec0 24 74 68 69 73 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 $this->hasArgument($name)).{.thr
86ee0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
86f00 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 (sprintf('The."%s".argument.does
86f20 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e .not.exist.',.$name));.}..return
86f40 20 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$arguments[$name];.}...........
86f60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d public.function.hasArgument($nam
86f80 65 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 e).{.$arguments.=.is_int($name).
86fa0 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 ?.array_values($this->arguments)
86fc0 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 .:.$this->arguments;..return.iss
86fe0 65 74 28 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a et($arguments[$name]);.}........
87000 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a .public.function.getArguments().
87020 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a {.return.$this->arguments;.}....
87040 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 43 6f ...public.function.getArgumentCo
87060 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 unt().{.return.$this->hasAnArray
87080 41 72 67 75 6d 65 6e 74 20 3f 20 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 6e 74 28 24 Argument.?.PHP_INT_MAX.:.count($
870a0 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 this->arguments);.}.......public
870c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 .function.getArgumentRequiredCou
870e0 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 nt().{.return.$this->requiredCou
87100 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 nt;.}.......public.function.getA
87120 72 67 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 rgumentDefaults().{.$values.=.ar
87140 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 ray();.foreach.($this->arguments
87160 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 67 75 6d 65 .as.$argument).{.$values[$argume
87180 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 nt->getName()].=.$argument->getD
871a0 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a efault();.}..return.$values;.}..
871c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e .......public.function.setOption
871e0 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f s($options.=.array()).{.$this->o
87200 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 ptions.=.array();.$this->shortcu
87220 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 ts.=.array();.$this->addOptions(
87240 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $options);.}.........public.func
87260 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 tion.addOptions($options.=.array
87280 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 ()).{.foreach.($options.as.$opti
872a0 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b on).{.$this->addOption($option);
872c0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 .}.}...........public.function.a
872e0 64 64 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a ddOption(InputOption.$option).{.
87300 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e if.(isset($this->options[$option
87320 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c ->getName()]).&&.!$option->equal
87340 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d s($this->options[$option->getNam
87360 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 e()])).{.throw.new.\LogicExcepti
87380 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 on(sprintf('An.option.named."%s"
873a0 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e .already.exists.',.$option->getN
873c0 61 6d 65 28 29 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e ame()));.}.elseif.(isset($this->
873e0 73 68 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 shortcuts[$option->getShortcut()
87400 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f 70 ]).&&.!$option->equals($this->op
87420 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6f 70 74 69 6f 6e 2d 3e tions[$this->shortcuts[$option->
87440 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c getShortcut()]])).{.throw.new.\L
87460 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e ogicException(sprintf('An.option
87480 20 77 69 74 68 20 73 68 6f 72 74 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 .with.shortcut."%s".already.exis
874a0 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 3b 0a ts.',.$option->getShortcut()));.
874c0 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 }..$this->options[$option->getNa
874e0 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 me()].=.$option;.if.($option->ge
87500 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b tShortcut()).{.$this->shortcuts[
87520 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 20 3d 20 24 6f 70 74 69 6f $option->getShortcut()].=.$optio
87540 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 n->getName();.}.}.............pu
87560 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b blic.function.getOption($name).{
87580 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b .if.(!$this->hasOption($name)).{
875a0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
875c0 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 tion(sprintf('The."--%s".option.
875e0 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 does.not.exist.',.$name));.}..re
87600 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a turn.$this->options[$name];.}...
87620 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f ........public.function.hasOptio
87640 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f n($name).{.return.isset($this->o
87660 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ptions[$name]);.}.........public
87680 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getOptions().{.return.
876a0 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $this->options;.}.........public
876c0 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 .function.hasShortcut($name).{.r
876e0 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6e 61 eturn.isset($this->shortcuts[$na
87700 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 me]);.}.........public.function.
87720 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 0a getOptionForShortcut($shortcut).
87740 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d {.return.$this->getOption($this-
87760 3e 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a >shortcutToName($shortcut));.}..
87780 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 44 65 .....public.function.getOptionDe
877a0 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f faults().{.$values.=.array();.fo
877c0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e reach.($this->options.as.$option
877e0 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 ).{.$values[$option->getName()].
87800 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 =.$option->getDefault();.}..retu
87820 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 rn.$values;.}...........private.
87840 66 75 6e 63 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 function.shortcutToName($shortcu
87860 74 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 t).{.if.(!isset($this->shortcuts
87880 5b 24 73 68 6f 72 74 63 75 74 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c [$shortcut])).{.throw.new.\Inval
878a0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 idArgumentException(sprintf('The
878c0 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 ."-%s".option.does.not.exist.',.
878e0 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 $shortcut));.}..return.$this->sh
87900 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ortcuts[$shortcut];.}.......publ
87920 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 0a 7b 0a 24 65 6c 65 ic.function.getSynopsis().{.$ele
87940 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d ments.=.array();.foreach.($this-
87960 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 73 68 6f >getOptions().as.$option).{.$sho
87980 72 74 63 75 74 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f rtcut.=.$option->getShortcut().?
879a0 20 73 70 72 69 6e 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f .sprintf('-%s|',.$option->getSho
879c0 72 74 63 75 74 28 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 rtcut()).:.'';.$elements[].=.spr
879e0 69 6e 74 66 28 27 5b 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 intf('['.($option->isValueRequir
87a00 65 64 28 29 20 3f 20 27 25 73 2d 2d 25 73 3d 22 2e 2e 2e 22 27 20 3a 20 28 24 6f 70 74 69 6f 6e ed().?.'%s--%s="..."'.:.($option
87a20 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 27 25 73 2d 2d 25 73 5b 3d 22 ->isValueOptional().?.'%s--%s[="
87a40 2e 2e 2e 22 5d 27 20 3a 20 27 25 73 2d 2d 25 73 27 29 29 2e 27 5d 27 2c 20 24 73 68 6f 72 74 63 ..."]'.:.'%s--%s')).']',.$shortc
87a60 75 74 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 ut,.$option->getName());.}..fore
87a80 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 ach.($this->getArguments().as.$a
87aa0 72 67 75 6d 65 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 rgument).{.$elements[].=.sprintf
87ac0 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 27 20 ($argument->isRequired().?.'%s'.
87ae0 3a 20 27 5b 25 73 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 28 :.'[%s]',.$argument->getName().(
87b00 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 31 27 20 3a 20 27 27 29 $argument->isArray().?.'1'.:.'')
87b20 29 3b 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a );..if.($argument->isArray()).{.
87b40 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 2e 2e 2e 20 5b 25 73 4e 5d $elements[].=.sprintf('....[%sN]
87b60 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 ',.$argument->getName());.}.}..r
87b80 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 7d eturn.implode('.',.$elements);.}
87ba0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a .......public.function.asText().
87bc0 7b 0a 0a 20 24 6d 61 78 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 {...$max.=.0;.foreach.($this->ge
87be0 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 4c 65 tOptions().as.$option).{.$nameLe
87c00 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 ngth.=.strlen($option->getName()
87c20 29 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 ).+.2;.if.($option->getShortcut(
87c40 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 )).{.$nameLength.+=.strlen($opti
87c60 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 2b 20 33 3b 0a 7d 0a 0a 24 6d 61 78 20 on->getShortcut()).+.3;.}..$max.
87c80 3d 20 6d 61 78 28 24 6d 61 78 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b 0a 7d 0a 66 6f 72 65 =.max($max,.$nameLength);.}.fore
87ca0 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 ach.($this->getArguments().as.$a
87cc0 72 67 75 6d 65 6e 74 29 20 7b 0a 24 6d 61 78 20 3d 20 6d 61 78 28 24 6d 61 78 2c 20 73 74 72 6c rgument).{.$max.=.max($max,.strl
87ce0 65 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 en($argument->getName()));.}.++$
87d00 6d 61 78 3b 0a 0a 24 74 65 78 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 max;..$text.=.array();..if.($thi
87d20 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 s->getArguments()).{.$text[].=.'
87d40 3c 63 6f 6d 6d 65 6e 74 3e 41 72 67 75 6d 65 6e 74 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a <comment>Arguments:</comment>';.
87d60 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 foreach.($this->getArguments().a
87d80 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 s.$argument).{.if.(null.!==.$arg
87da0 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 ument->getDefault().&&.(!is_arra
87dc0 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f y($argument->getDefault()).||.co
87de0 75 6e 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b unt($argument->getDefault()))).{
87e00 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 .$default.=.sprintf('<comment>.(
87e20 64 65 66 61 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e default:.%s)</comment>',.$this->
87e40 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 formatDefaultValue($argument->ge
87e60 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 tDefault()));.}.else.{.$default.
87e80 3d 20 27 27 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 5f 72 65 70 6c =.'';.}..$description.=.str_repl
87ea0 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 ace("\n",."\n".str_repeat('.',.$
87ec0 6d 61 78 20 2b 20 32 29 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 max.+.2),.$argument->getDescript
87ee0 69 6f 6e 28 29 29 3b 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e ion());..$text[].=.sprintf(".<in
87f00 66 6f 3e 25 2d 24 7b 6d 61 78 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 25 73 22 2c 20 24 61 72 67 75 fo>%-${max}s</info>.%s%s",.$argu
87f20 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 ment->getName(),.$description,.$
87f40 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 69 66 default);.}..$text[].=.'';.}..if
87f60 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d .($this->getOptions()).{.$text[]
87f80 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 .=.'<comment>Options:</comment>'
87fa0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 ;..foreach.($this->getOptions().
87fc0 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 as.$option).{.if.($option->accep
87fe0 74 56 61 6c 75 65 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 tValue().&&.null.!==.$option->ge
88000 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e tDefault().&&.(!is_array($option
88020 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e ->getDefault()).||.count($option
88040 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 ->getDefault()))).{.$default.=.s
88060 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 73 29 3c printf('<comment>.(default:.%s)<
88080 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 /comment>',.$this->formatDefault
880a0 56 61 6c 75 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d Value($option->getDefault()));.}
880c0 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 .else.{.$default.=.'';.}..$multi
880e0 70 6c 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 3c 63 6f 6d ple.=.$option->isArray().?.'<com
88100 6d 65 6e 74 3e 20 28 6d 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73 20 61 6c 6c 6f 77 65 64 29 3c ment>.(multiple.values.allowed)<
88120 2f 63 6f 6d 6d 65 6e 74 3e 27 20 3a 20 27 27 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 /comment>'.:.'';.$description.=.
88140 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 str_replace("\n",."\n".str_repea
88160 74 28 27 20 27 2c 20 24 6d 61 78 20 2b 20 32 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 t('.',.$max.+.2),.$option->getDe
88180 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 0a 24 6f 70 74 69 6f 6e 4d 61 78 20 3d 20 24 6d 61 78 scription());..$optionMax.=.$max
881a0 20 2d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 2d 20 .-.strlen($option->getName()).-.
881c0 32 3b 0a 24 74 65 78 74 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 73 3c 2;.$text[].=.sprintf(".<info>%s<
881e0 2f 69 6e 66 6f 3e 20 25 2d 24 7b 6f 70 74 69 6f 6e 4d 61 78 7d 73 25 73 25 73 25 73 22 2c 0a 27 /info>.%-${optionMax}s%s%s%s",.'
88200 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 6f 70 74 69 6f 6e 2d --'.$option->getName(),.$option-
88220 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 28 2d 25 73 29 20 >getShortcut().?.sprintf('(-%s).
88240 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 2c ',.$option->getShortcut()).:.'',
88260 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6d 75 6c 74 69 70 .$description,.$default,.$multip
88280 6c 65 0a 29 3b 0a 7d 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e le.);.}..$text[].=.'';.}..return
882a0 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .implode("\n",.$text);.}........
882c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 .public.function.asXml($asDom.=.
882e0 66 61 6c 73 65 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 false).{.$dom.=.new.\DOMDocument
88300 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 ('1.0',.'UTF-8');.$dom->formatOu
88320 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 tput.=.true;.$dom->appendChild($
88340 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d definitionXML.=.$dom->createElem
88360 65 6e 74 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 29 3b 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e ent('definition'));..$definition
88380 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 20 3d XML->appendChild($argumentsXML.=
883a0 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 72 67 75 6d 65 6e 74 73 27 .$dom->createElement('arguments'
883c0 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 ));.foreach.($this->getArguments
883e0 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c ().as.$argument).{.$argumentsXML
88400 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 72 67 75 6d 65 6e 74 58 4d 4c 20 3d 20 24 64 6f ->appendChild($argumentXML.=.$do
88420 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 m->createElement('argument'));.$
88440 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 argumentXML->setAttribute('name'
88460 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 61 72 67 75 6d 65 ,.$argument->getName());.$argume
88480 6e 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 72 65 71 75 69 72 65 64 ntXML->setAttribute('is_required
884a0 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a ',.$argument->isRequired().?.1.:
884c0 20 30 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 .0);.$argumentXML->setAttribute(
884e0 27 69 73 5f 61 72 72 61 79 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 'is_array',.$argument->isArray()
88500 20 3f 20 31 20 3a 20 30 29 3b 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 .?.1.:.0);.$argumentXML->appendC
88520 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 hild($descriptionXML.=.$dom->cre
88540 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 ateElement('description'));.$des
88560 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 criptionXML->appendChild($dom->c
88580 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 reateTextNode($argument->getDesc
885a0 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 24 61 72 67 75 6d 65 6e 74 58 4d 4c 2d 3e 61 70 70 65 ription()));..$argumentXML->appe
885c0 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 ndChild($defaultsXML.=.$dom->cre
885e0 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 24 64 65 66 61 75 6c ateElement('defaults'));.$defaul
88600 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 ts.=.is_array($argument->getDefa
88620 75 6c 74 28 29 29 20 3f 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 ult()).?.$argument->getDefault()
88640 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c .:.(is_bool($argument->getDefaul
88660 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 61 72 67 75 6d 65 6e t()).?.array(var_export($argumen
88680 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 28 24 61 72 67 75 t->getDefault(),.true)).:.($argu
886a0 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 61 72 67 75 ment->getDefault().?.array($argu
886c0 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b ment->getDefault()).:.array()));
886e0 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 61 75 6c 74 29 .foreach.($defaults.as.$default)
88700 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 .{.$defaultsXML->appendChild($de
88720 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 faultXML.=.$dom->createElement('
88740 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 default'));.$defaultXML->appendC
88760 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 64 65 66 61 75 hild($dom->createTextNode($defau
88780 6c 74 29 29 3b 0a 7d 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e lt));.}.}..$definitionXML->appen
887a0 64 43 68 69 6c 64 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 dChild($optionsXML.=.$dom->creat
887c0 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 eElement('options'));.foreach.($
887e0 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b this->getOptions().as.$option).{
88800 0a 24 6f 70 74 69 6f 6e 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 6f .$optionsXML->appendChild($optio
88820 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 74 69 nXML.=.$dom->createElement('opti
88840 6f 6e 27 29 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 on'));.$optionXML->setAttribute(
88860 27 6e 61 6d 65 27 2c 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 'name',.'--'.$option->getName())
88880 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 ;.$optionXML->setAttribute('shor
888a0 74 63 75 74 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 tcut',.$option->getShortcut().?.
888c0 27 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3a 20 27 27 29 '-'.$option->getShortcut().:.'')
888e0 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 61 63 63 65 ;.$optionXML->setAttribute('acce
88900 70 74 5f 76 61 6c 75 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 pt_value',.$option->acceptValue(
88920 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 ).?.1.:.0);.$optionXML->setAttri
88940 62 75 74 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 2c 20 24 6f 70 74 69 6f bute('is_value_required',.$optio
88960 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 n->isValueRequired().?.1.:.0);.$
88980 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 6d 75 6c 74 optionXML->setAttribute('is_mult
889a0 69 70 6c 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 iple',.$option->isArray().?.1.:.
889c0 30 29 3b 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 0);.$optionXML->appendChild($des
889e0 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e criptionXML.=.$dom->createElemen
88a00 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 t('description'));.$descriptionX
88a20 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 ML->appendChild($dom->createText
88a40 4e 6f 64 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 Node($option->getDescription()))
88a60 3b 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b ;..if.($option->acceptValue()).{
88a80 0a 24 6f 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c .$optionXML->appendChild($defaul
88aa0 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 tsXML.=.$dom->createElement('def
88ac0 61 75 6c 74 73 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 aults'));.$defaults.=.is_array($
88ae0 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f 70 74 69 6f 6e 2d option->getDefault()).?.$option-
88b00 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 6f 70 74 69 6f 6e >getDefault().:.(is_bool($option
88b20 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f ->getDefault()).?.array(var_expo
88b40 72 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 rt($option->getDefault(),.true))
88b60 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 .:.($option->getDefault().?.arra
88b80 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 y($option->getDefault()).:.array
88ba0 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 ()));.foreach.($defaults.as.$def
88bc0 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c ault).{.$defaultsXML->appendChil
88be0 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d d($defaultXML.=.$dom->createElem
88c00 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 ent('default'));.$defaultXML->ap
88c20 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 pendChild($dom->createTextNode($
88c40 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 default));.}.}.}..return.$asDom.
88c60 3f 20 24 64 6f 6d 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 70 72 69 ?.$dom.:.$dom->saveXml();.}..pri
88c80 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 vate.function.formatDefaultValue
88ca0 28 24 64 65 66 61 75 6c 74 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 ($default).{.if.(version_compare
88cc0 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 29 20 7b 0a 72 65 74 (PHP_VERSION,.'5.4',.'<')).{.ret
88ce0 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 2f 27 2c 20 27 2f 27 2c 20 6a 73 6f 6e 5f urn.str_replace('\/',.'/',.json_
88d00 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6a 73 6f encode($default));.}..return.jso
88d20 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 2c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 n_encode($default,.JSON_UNESCAPE
88d40 44 5f 53 4c 41 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f D_SLASHES.|.JSON_UNESCAPED_UNICO
88d60 44 45 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 DE);.}.}.<?php...........namespa
88d80 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 ce.Symfony\Component\Console;..u
88da0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 se.Symfony\Component\Console\App
88dc0 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c lication;.use.Symfony\Component\
88de0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 Console\Input\StringInput;.use.S
88e00 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
88e20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f ConsoleOutput;.use.Symfony\Compo
88e40 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a 75 73 65 nent\Process\ProcessBuilder;.use
88e60 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 68 70 45 78 .Symfony\Component\Process\PhpEx
88e80 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ecutableFinder;...........class.
88ea0 53 68 65 6c 6c 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 Shell.{.private.$application;.pr
88ec0 69 76 61 74 65 20 24 68 69 73 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b ivate.$history;.private.$output;
88ee0 0a 70 72 69 76 61 74 65 20 24 68 61 73 52 65 61 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 .private.$hasReadline;.private.$
88f00 70 72 6f 6d 70 74 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f prompt;.private.$processIsolatio
88f20 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f n;..........public.function.__co
88f40 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e nstruct(Application.$application
88f60 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f ).{.$this->hasReadline.=.functio
88f80 6e 5f 65 78 69 73 74 73 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 n_exists('readline');.$this->app
88fa0 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e lication.=.$application;.$this->
88fc0 68 69 73 74 6f 72 79 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 69 73 74 history.=.getenv('HOME').'/.hist
88fe0 6f 72 79 5f 27 2e 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 ory_'.$application->getName();.$
89000 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 this->output.=.new.ConsoleOutput
89020 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e ();.$this->prompt.=.$application
89040 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3e 20 27 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ->getName().'.>.';.$this->proces
89060 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 sIsolation.=.false;.}.....public
89080 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 .function.run().{.$this->applica
890a0 74 69 6f 6e 2d 3e 73 65 74 41 75 74 6f 45 78 69 74 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d tion->setAutoExit(false);.$this-
890c0 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 >application->setCatchExceptions
890e0 28 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 (true);..if.($this->hasReadline)
89100 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 72 65 61 64 5f 68 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e .{.readline_read_history($this->
89120 68 69 73 74 6f 72 79 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 63 6f 6d 70 6c 65 74 69 6f 6e 5f 66 75 history);.readline_completion_fu
89140 6e 63 74 69 6f 6e 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 61 75 74 6f 63 6f 6d 70 6c 65 74 nction(array($this,.'autocomplet
89160 65 72 27 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e er'));.}..$this->output->writeln
89180 28 24 74 68 69 73 2d 3e 67 65 74 48 65 61 64 65 72 28 29 29 3b 0a 24 70 68 70 20 3d 20 6e 75 6c ($this->getHeader());.$php.=.nul
891a0 6c 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 l;.if.($this->processIsolation).
891c0 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e {.$finder.=.new.PhpExecutableFin
891e0 64 65 72 28 29 3b 0a 24 70 68 70 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 3b 0a 24 der();.$php.=.$finder->find();.$
89200 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c 3c 45 4f 46 0a 3c 69 6e this->output->writeln(<<<EOF.<in
89220 66 6f 3e 52 75 6e 6e 69 6e 67 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 73 6f 6c 61 74 69 6f fo>Running.with.process.isolatio
89240 6e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 3a 3c 2f 69 6e n,.you.should.consider.this:</in
89260 66 6f 3e 0a 20 20 2a 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 fo>...*.each.command.is.executed
89280 20 61 73 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e .as.separate.process,...*.comman
892a0 64 73 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 69 6e 74 65 72 61 63 74 69 76 69 74 79 2c 20 ds.don't.support.interactivity,.
892c0 61 6c 6c 20 70 61 72 61 6d 73 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 64 20 65 78 70 6c 69 63 all.params.must.be.passed.explic
892e0 69 74 6c 79 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 6f 75 74 70 75 74 20 69 73 20 6e 6f 74 itly,...*.commands.output.is.not
89300 20 63 6f 6c 6f 72 69 7a 65 64 2e 0a 0a 45 4f 46 0a 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 .colorized...EOF.);.}..while.(tr
89320 75 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 6c 69 6e 65 ue).{.$command.=.$this->readline
89340 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 ();..if.(false.===.$command).{.$
89360 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 22 29 3b 0a 0a 62 72 this->output->writeln("\n");..br
89380 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 eak;.}..if.($this->hasReadline).
893a0 7b 0a 72 65 61 64 6c 69 6e 65 5f 61 64 64 5f 68 69 73 74 6f 72 79 28 24 63 6f 6d 6d 61 6e 64 29 {.readline_add_history($command)
893c0 3b 0a 72 65 61 64 6c 69 6e 65 5f 77 72 69 74 65 5f 68 69 73 74 6f 72 79 28 24 74 68 69 73 2d 3e ;.readline_write_history($this->
893e0 68 69 73 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 history);.}..if.($this->processI
89400 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 70 62 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 42 75 69 solation).{.$pb.=.new.ProcessBui
89420 6c 64 65 72 28 29 3b 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 70 62 0a 2d 3e 61 64 64 28 24 70 lder();..$process.=.$pb.->add($p
89440 68 70 29 0a 2d 3e 61 64 64 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 0a 2d hp).->add($_SERVER['argv'][0]).-
89460 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 2d 3e 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d >add($command).->inheritEnvironm
89480 65 6e 74 56 61 72 69 61 62 6c 65 73 28 74 72 75 65 29 0a 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 entVariables(true).->getProcess(
894a0 29 0a 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 24 70 ).;..$output.=.$this->output;.$p
894c0 72 6f 63 65 73 73 2d 3e 72 75 6e 28 66 75 6e 63 74 69 6f 6e 28 24 74 79 70 65 2c 20 24 64 61 74 rocess->run(function($type,.$dat
894e0 61 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 a).use.($output).{.$output->writ
89500 65 6c 6e 28 24 64 61 74 61 29 3b 0a 7d 29 3b 0a 0a 24 72 65 74 20 3d 20 24 70 72 6f 63 65 73 73 eln($data);.});..$ret.=.$process
89520 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d ->getExitCode();.}.else.{.$ret.=
89540 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 6e 65 77 20 53 74 72 .$this->application->run(new.Str
89560 69 6e 67 49 6e 70 75 74 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 ingInput($command),.$this->outpu
89580 74 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 72 65 74 29 20 7b 0a 24 74 68 69 73 2d 3e t);.}..if.(0.!==.$ret).{.$this->
895a0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e output->writeln(sprintf('<error>
895c0 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 The.command.terminated.with.an.e
895e0 72 72 6f 72 20 73 74 61 74 75 73 20 28 25 73 29 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 72 65 74 29 rror.status.(%s)</error>',.$ret)
89600 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f );.}.}.}.......protected.functio
89620 6e 20 67 65 74 48 65 61 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 0a 57 n.getHeader().{.return.<<<EOF..W
89640 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 3c 69 6e 66 6f 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c elcome.to.the.<info>{$this->appl
89660 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 7d 3c 2f 69 6e 66 6f 3e 20 73 68 65 6c 6c ication->getName()}</info>.shell
89680 20 28 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e .(<comment>{$this->application->
896a0 67 65 74 56 65 72 73 69 6f 6e 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 2e 0a 0a 41 74 20 74 68 getVersion()}</comment>)...At.th
896c0 65 20 70 72 6f 6d 70 74 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 68 65 6c 70 3c 2f 63 6f e.prompt,.type.<comment>help</co
896e0 6d 6d 65 6e 74 3e 20 66 6f 72 20 73 6f 6d 65 20 68 65 6c 70 2c 0a 6f 72 20 3c 63 6f 6d 6d 65 6e mment>.for.some.help,.or.<commen
89700 74 3e 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 74 6f 20 67 65 74 20 61 20 6c 69 73 74 20 6f t>list</comment>.to.get.a.list.o
89720 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 54 6f 20 65 78 69 74 20 74 f.available.commands...To.exit.t
89740 68 65 20 73 68 65 6c 6c 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 3e 5e 44 3c 2f 63 6f 6d 6d he.shell,.type.<comment>^D</comm
89760 65 6e 74 3e 2e 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ent>...EOF;.}.........private.fu
89780 6e 63 74 69 6f 6e 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 74 65 78 74 29 0a 7b 0a 24 69 nction.autocompleter($text).{.$i
897a0 6e 66 6f 20 3d 20 72 65 61 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b 0a 24 74 65 78 74 20 3d 20 73 nfo.=.readline_info();.$text.=.s
897c0 75 62 73 74 72 28 24 69 6e 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 65 72 27 5d 2c 20 30 2c 20 24 ubstr($info['line_buffer'],.0,.$
897e0 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 5b 27 70 6f 69 6e 74 27 info['end']);..if.($info['point'
89800 5d 20 21 3d 3d 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 ].!==.$info['end']).{.return.tru
89820 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 65 e;.}....if.(false.===.strpos($te
89840 78 74 2c 20 27 20 27 29 20 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 xt,.'.').||.!$text).{.return.arr
89860 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c 6c 28 ay_keys($this->application->all(
89880 29 29 3b 0a 7d 0a 0a 0a 20 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d ));.}....try.{.$command.=.$this-
898a0 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 73 74 72 28 24 74 65 78 74 2c >application->find(substr($text,
898c0 20 30 2c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 29 29 3b 0a 7d 20 63 61 74 63 .0,.strpos($text,.'.')));.}.catc
898e0 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b h.(\Exception.$e).{.return.true;
89900 0a 7d 0a 0a 24 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 29 3b 0a 66 6f 72 .}..$list.=.array('--help');.for
89920 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d each.($command->getDefinition()-
89940 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6c 69 73 >getOptions().as.$option).{.$lis
89960 74 5b 5d 20 3d 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d t[].=.'--'.$option->getName();.}
89980 0a 0a 72 65 74 75 72 6e 20 24 6c 69 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ..return.$list;.}.......private.
899a0 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d function.readline().{.if.($this-
899c0 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 72 65 61 64 6c 69 6e 65 >hasReadline).{.$line.=.readline
899e0 28 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ($this->prompt);.}.else.{.$this-
89a00 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 29 3b 0a 24 >output->write($this->prompt);.$
89a20 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 53 54 44 49 4e 2c 20 31 30 32 34 29 3b 0a 24 6c 69 6e 65 line.=.fgets(STDIN,.1024);.$line
89a40 20 3d 20 28 21 24 6c 69 6e 65 20 26 26 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 20 3d 3d 20 30 .=.(!$line.&&.strlen($line).==.0
89a60 29 20 3f 20 66 61 6c 73 65 20 3a 20 72 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 72 65 74 ).?.false.:.rtrim($line);.}..ret
89a80 75 72 6e 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 urn.$line;.}..public.function.ge
89aa0 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tProcessIsolation().{.return.$th
89ac0 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 is->processIsolation;.}..public.
89ae0 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 28 24 70 72 function.setProcessIsolation($pr
89b00 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ocessIsolation).{.$this->process
89b20 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 70 72 6f 63 65 73 73 49 73 Isolation.=.(Boolean).$processIs
89b40 6f 6c 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d olation;.}.}.<?php...........nam
89b60 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 espace.Symfony\Component\Console
89b80 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Output;..use.Symfony\Component\
89ba0 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 Console\Formatter\OutputFormatte
89bc0 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e rInterface;.use.Symfony\Componen
89be0 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 t\Console\Formatter\OutputFormat
89c00 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 ter;...............abstract.clas
89c20 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 s.Output.implements.OutputInterf
89c40 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 74 ace.{.private.$verbosity;.privat
89c60 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 e.$formatter;...........public.f
89c80 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d unction.__construct($verbosity.=
89ca0 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 .self::VERBOSITY_NORMAL,.$decora
89cc0 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 ted.=.null,.OutputFormatterInter
89ce0 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d face.$formatter.=.null).{.$this-
89d00 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 74 79 >verbosity.=.null.===.$verbosity
89d20 20 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 .?.self::VERBOSITY_NORMAL.:.$ver
89d40 62 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 20 bosity;.$this->formatter.=.null.
89d60 3d 3d 3d 20 24 66 6f 72 6d 61 74 74 65 72 20 3f 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 ===.$formatter.?.new.OutputForma
89d80 74 74 65 72 28 29 20 3a 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d tter().:.$formatter;.$this->form
89da0 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 28 42 6f 6f 6c 65 61 6e 29 20 24 64 atter->setDecorated((Boolean).$d
89dc0 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ecorated);.}.........public.func
89de0 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 tion.setFormatter(OutputFormatte
89e00 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e rInterface.$formatter).{.$this->
89e20 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a formatter.=.$formatter;.}.......
89e40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 ..public.function.getFormatter()
89e60 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a .{.return.$this->formatter;.}...
89e80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 ......public.function.setDecorat
89ea0 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 ed($decorated).{.$this->formatte
89ec0 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 r->setDecorated((Boolean).$decor
89ee0 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ated);.}.........public.function
89f00 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 .isDecorated().{.return.$this->f
89f20 6f 72 6d 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ormatter->isDecorated();.}......
89f40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 ...public.function.setVerbosity(
89f60 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 28 69 6e $level).{.$this->verbosity.=.(in
89f80 74 29 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 t).$level;.}.........public.func
89fa0 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getVerbosity().{.return.$th
89fc0 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 is->verbosity;.}..........public
89fe0 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 .function.writeln($messages,.$ty
8a000 70 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 pe.=.0).{.$this->write($messages
8a020 2c 20 74 72 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ,.true,.$type);.}.............pu
8a040 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 blic.function.write($messages,.$
8a060 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 30 29 0a 7b 0a 69 66 newline.=.false,.$type.=.0).{.if
8a080 20 28 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 .(self::VERBOSITY_QUIET.===.$thi
8a0a0 73 2d 3e 76 65 72 62 6f 73 69 74 79 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 65 73 73 s->verbosity).{.return;.}..$mess
8a0c0 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 66 6f 72 65 61 ages.=.(array).$messages;..forea
8a0e0 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 73 77 69 ch.($messages.as.$message).{.swi
8a100 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 tch.($type).{.case.OutputInterfa
8a120 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 ce::OUTPUT_NORMAL:.$message.=.$t
8a140 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 his->formatter->format($message)
8a160 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f ;.break;.case.OutputInterface::O
8a180 55 54 50 55 54 5f 52 41 57 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 UTPUT_RAW:.break;.case.OutputInt
8a1a0 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 50 4c 41 49 4e 3a 0a 24 6d 65 73 73 61 67 65 20 3d erface::OUTPUT_PLAIN:.$message.=
8a1c0 20 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f .strip_tags($this->formatter->fo
8a1e0 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a rmat($message));.break;.default:
8a200 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
8a220 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 6f 75 74 70 75 74 20 74 79 70 tion(sprintf('Unknown.output.typ
8a240 65 20 67 69 76 65 6e 20 28 25 73 29 27 2c 20 24 74 79 70 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 e.given.(%s)',.$type));.}..$this
8a260 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d ->doWrite($message,.$newline);.}
8a280 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e .}........abstract.protected.fun
8a2a0 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 ction.doWrite($message,.$newline
8a2c0 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 );.}.<?php...........namespace.S
8a2e0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b ymfony\Component\Console\Output;
8a300 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 4f 75 74 70 75 74 20 65 78 74 65 ...........class.NullOutput.exte
8a320 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e nds.Output.{.......protected.fun
8a340 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 ction.doWrite($message,.$newline
8a360 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ).{.}.}.<?php...........namespac
8a380 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
8a3a0 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ut;..use.Symfony\Component\Conso
8a3c0 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a le\Output\OutputInterface;......
8a3e0 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 ..interface.ConsoleOutputInterfa
8a400 63 65 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a ce.extends.OutputInterface.{....
8a420 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 public.function.getErrorOutput()
8a440 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 ;..public.function.setErrorOutpu
8a460 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 t(OutputInterface.$error);.}.<?p
8a480 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
8a4a0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 omponent\Console\Output;..use.Sy
8a4c0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 mfony\Component\Console\Formatte
8a4e0 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a r\OutputFormatterInterface;.....
8a500 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 65 ............class.StreamOutput.e
8a520 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 61 6d 3b xtends.Output.{.private.$stream;
8a540 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f ...............public.function._
8a560 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d _construct($stream,.$verbosity.=
8a580 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 .self::VERBOSITY_NORMAL,.$decora
8a5a0 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 ted.=.null,.OutputFormatterInter
8a5c0 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 face.$formatter.=.null).{.if.(!i
8a5e0 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 s_resource($stream).||.'stream'.
8a600 21 3d 3d 20 67 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 !==.get_resource_type($stream)).
8a620 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
8a640 70 74 69 6f 6e 28 27 54 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 ption('The.StreamOutput.class.ne
8a660 65 64 73 20 61 20 73 74 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 eds.a.stream.as.its.first.argume
8a680 6e 74 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 nt.');.}..$this->stream.=.$strea
8a6a0 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 m;..if.(null.===.$decorated).{.$
8a6c0 64 65 63 6f 72 61 74 65 64 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f decorated.=.$this->hasColorSuppo
8a6e0 72 74 28 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 rt();.}..parent::__construct($ve
8a700 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 rbosity,.$decorated,.$formatter)
8a720 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 ;.}.......public.function.getStr
8a740 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a eam().{.return.$this->stream;.}.
8a760 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 .........protected.function.doWr
8a780 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 66 61 ite($message,.$newline).{.if.(fa
8a7a0 6c 73 65 20 3d 3d 3d 20 40 66 77 72 69 74 65 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 2c 20 24 lse.===.@fwrite($this->stream,.$
8a7c0 6d 65 73 73 61 67 65 2e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 50 48 50 5f 45 4f 4c 20 3a 20 27 27 message.($newline.?.PHP_EOL.:.''
8a7e0 29 29 29 20 7b 0a 0a 20 0a 20 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 ))).{.....throw.new.\RuntimeExce
8a800 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 77 72 69 74 65 20 6f 75 74 70 75 74 2e 27 29 ption('Unable.to.write.output.')
8a820 3b 0a 0a 20 7d 0a 0a 66 66 6c 75 73 68 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a ;...}..fflush($this->stream);.}.
8a840 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 ...........protected.function.ha
8a860 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 0a 7b 0a 0a 20 69 66 20 28 44 49 52 45 43 54 4f 52 sColorSupport().{...if.(DIRECTOR
8a880 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c 27 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 Y_SEPARATOR.==.'\\').{.return.fa
8a8a0 6c 73 65 20 21 3d 3d 20 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 20 7c 7c 20 27 4f 4e lse.!==.getenv('ANSICON').||.'ON
8a8c0 27 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 43 6f 6e 45 6d 75 41 4e 53 49 27 29 3b 0a 7d 0a 0a 72 '.===.getenv('ConEmuANSI');.}..r
8a8e0 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 6f 73 69 78 5f 69 73 61 eturn.function_exists('posix_isa
8a900 74 74 79 27 29 20 26 26 20 40 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 74 68 69 73 2d 3e 73 74 tty').&&.@posix_isatty($this->st
8a920 72 65 61 6d 29 3b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ream);...}.}.<?php...........nam
8a940 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 espace.Symfony\Component\Console
8a960 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Output;..use.Symfony\Component\
8a980 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 Console\Formatter\OutputFormatte
8a9a0 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 rInterface;.........interface.Ou
8a9c0 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f tputInterface.{.const.VERBOSITY_
8a9e0 51 55 49 45 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 QUIET.=.0;.const.VERBOSITY_NORMA
8aa00 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d L.=.1;.const.VERBOSITY_VERBOSE.=
8aa20 20 32 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3d 20 30 3b 0a 63 6f .2;..const.OUTPUT_NORMAL.=.0;.co
8aa40 6e 73 74 20 4f 55 54 50 55 54 5f 52 41 57 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 nst.OUTPUT_RAW.=.1;.const.OUTPUT
8aa60 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 _PLAIN.=.2;.............public.f
8aa80 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e unction.write($messages,.$newlin
8aaa0 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e.=.false,.$type.=.0);..........
8aac0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 public.function.writeln($message
8aae0 73 2c 20 24 74 79 70 65 20 3d 20 30 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s,.$type.=.0);.........public.fu
8ab00 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a nction.setVerbosity($level);....
8ab20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 .....public.function.getVerbosit
8ab40 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 y();.........public.function.set
8ab60 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 Decorated($decorated);.........p
8ab80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a ublic.function.isDecorated();...
8aba0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 ......public.function.setFormatt
8abc0 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 er(OutputFormatterInterface.$for
8abe0 6d 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e matter);.........public.function
8ac00 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a .getFormatter();.}.<?php........
8ac20 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ...namespace.Symfony\Component\C
8ac40 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 onsole\Output;..use.Symfony\Comp
8ac60 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f onent\Console\Formatter\OutputFo
8ac80 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 rmatter;.use.Symfony\Component\C
8aca0 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole\Formatter\OutputFormatter
8acc0 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 Interface;.use.Symfony\Component
8ace0 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 \Console\Output\ConsoleOutputInt
8ad00 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f erface;.................class.Co
8ad20 6e 73 6f 6c 65 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 nsoleOutput.extends.StreamOutput
8ad40 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 .implements.ConsoleOutputInterfa
8ad60 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ce.{.private.$stderr;...........
8ad80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 .public.function.__construct($ve
8ada0 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c rbosity.=.self::VERBOSITY_NORMAL
8adc0 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 ,.$decorated.=.null,.OutputForma
8ade0 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 tterInterface.$formatter.=.null)
8ae00 0a 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 74 .{.$outputStream.=.'php://stdout
8ae20 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 ';.if.(!$this->hasStdoutSupport(
8ae40 29 29 20 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f 75 74 70 )).{.$outputStream.=.'php://outp
8ae60 75 74 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 66 6f 70 65 ut';.}..parent::__construct(fope
8ae80 6e 28 24 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 n($outputStream,.'w'),.$verbosit
8aea0 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 74 68 y,.$decorated,.$formatter);..$th
8aec0 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f is->stderr.=.new.StreamOutput(fo
8aee0 70 65 6e 28 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f pen('php://stderr',.'w'),.$verbo
8af00 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d sity,.$decorated,.$formatter);.}
8af20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 ..public.function.setDecorated($
8af40 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 44 65 63 6f 72 61 74 65 decorated).{.parent::setDecorate
8af60 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 d($decorated);.$this->stderr->se
8af80 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 tDecorated($decorated);.}..publi
8afa0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f c.function.setFormatter(OutputFo
8afc0 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 70 rmatterInterface.$formatter).{.p
8afe0 61 72 65 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b arent::setFormatter($formatter);
8b000 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f .$this->stderr->setFormatter($fo
8b020 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 rmatter);.}..public.function.set
8b040 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 56 Verbosity($level).{.parent::setV
8b060 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d erbosity($level);.$this->stderr-
8b080 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 >setVerbosity($level);.}.....pub
8b0a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a lic.function.getErrorOutput().{.
8b0c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 return.$this->stderr;.}..public.
8b0e0 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 74 70 75 74 49 6e function.setErrorOutput(OutputIn
8b100 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 terface.$error).{.$this->stderr.
8b120 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 =.$error;.}............protected
8b140 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 .function.hasStdoutSupport().{.r
8b160 65 74 75 72 6e 20 28 27 4f 53 34 30 30 27 20 21 3d 20 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 eturn.('OS400'.!=.php_uname('s')
8b180 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 );.}.}.<?php...........namespace
8b1a0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 .Symfony\Component\Console\Helpe
8b1c0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 48 65 6c 70 65 72 49 6e 74 65 72 r;.........interface.HelperInter
8b1e0 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 face.{........public.function.se
8b200 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 tHelperSet(HelperSet.$helperSet.
8b220 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.null);.........public.function
8b240 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .getHelperSet();.........public.
8b260 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a function.getName();.}.<?php.....
8b280 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
8b2a0 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Helper;..use.Symfony\C
8b2c0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 omponent\Console\Formatter\Outpu
8b2e0 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 tFormatter;.......class.Formatte
8b300 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a rHelper.extends.Helper.{........
8b320 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 ..public.function.formatSection(
8b340 24 73 65 63 74 69 6f 6e 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e $section,.$message,.$style.=.'in
8b360 66 6f 27 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c fo').{.return.sprintf('<%s>[%s]<
8b380 2f 25 73 3e 20 25 73 27 2c 20 24 73 74 79 6c 65 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 /%s>.%s',.$style,.$section,.$sty
8b3a0 6c 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 le,.$message);.}...........publi
8b3c0 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 c.function.formatBlock($messages
8b3e0 2c 20 24 73 74 79 6c 65 2c 20 24 6c 61 72 67 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 65 73 ,.$style,.$large.=.false).{.$mes
8b400 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 24 6c 65 6e sages.=.(array).$messages;..$len
8b420 20 3d 20 30 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 .=.0;.$lines.=.array();.foreach.
8b440 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 ($messages.as.$message).{.$messa
8b460 67 65 20 3d 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3a 3a 65 73 63 61 70 65 28 24 6d 65 ge.=.OutputFormatter::escape($me
8b480 73 73 61 67 65 29 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 6c 61 72 67 ssage);.$lines[].=.sprintf($larg
8b4a0 65 20 3f 20 27 20 20 25 73 20 20 27 20 3a 20 27 20 25 73 20 27 2c 20 24 6d 65 73 73 61 67 65 29 e.?.'..%s..'.:.'.%s.',.$message)
8b4c0 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 ;.$len.=.max($this->strlen($mess
8b4e0 61 67 65 29 20 2b 20 28 24 6c 61 72 67 65 20 3f 20 34 20 3a 20 32 29 2c 20 24 6c 65 6e 29 3b 0a age).+.($large.?.4.:.2),.$len);.
8b500 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 6c 61 72 67 65 20 3f 20 61 72 72 61 79 28 73 74 }..$messages.=.$large.?.array(st
8b520 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a r_repeat('.',.$len)).:.array();.
8b540 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 foreach.($lines.as.$line).{.$mes
8b560 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 sages[].=.$line.str_repeat('.',.
8b580 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a $len.-.$this->strlen($line));.}.
8b5a0 69 66 20 28 24 6c 61 72 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f if.($large).{.$messages[].=.str_
8b5c0 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 repeat('.',.$len);.}..foreach.($
8b5e0 6d 65 73 73 61 67 65 73 20 61 73 20 26 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 messages.as.&$message).{.$messag
8b600 65 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c e.=.sprintf('<%s>%s</%s>',.$styl
8b620 65 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 e,.$message,.$style);.}..return.
8b640 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a implode("\n",.$messages);.}.....
8b660 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 ....private.function.strlen($str
8b680 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f ing).{.if.(!function_exists('mb_
8b6a0 73 74 72 6c 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e strlen')).{.return.strlen($strin
8b6c0 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d g);.}..if.(false.===.$encoding.=
8b6e0 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a .mb_detect_encoding($string)).{.
8b700 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 return.strlen($string);.}..retur
8b720 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b n.mb_strlen($string,.$encoding);
8b740 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 .}.....public.function.getName()
8b760 0a 7b 0a 72 65 74 75 72 6e 20 27 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 .{.return.'formatter';.}.}.<?php
8b780 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ...........namespace.Symfony\Com
8b7a0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 ponent\Console\Helper;..use.Symf
8b7c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f ony\Component\Console\Command\Co
8b7e0 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 65 72 53 65 74 0a 7b 0a 70 mmand;.......class.HelperSet.{.p
8b800 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e rivate.$helpers;.private.$comman
8b820 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 d;.......public.function.__const
8b840 72 75 63 74 28 61 72 72 61 79 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b ruct(array.$helpers.=.array()).{
8b860 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 .$this->helpers.=.array();.forea
8b880 63 68 20 28 24 68 65 6c 70 65 72 73 20 61 73 20 24 61 6c 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 ch.($helpers.as.$alias.=>.$helpe
8b8a0 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 68 65 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 r).{.$this->set($helper,.is_int(
8b8c0 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 0a $alias).?.null.:.$alias);.}.}...
8b8e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 48 65 6c 70 65 72 49 .....public.function.set(HelperI
8b900 6e 74 65 72 66 61 63 65 20 24 68 65 6c 70 65 72 2c 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 nterface.$helper,.$alias.=.null)
8b920 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 .{.$this->helpers[$helper->getNa
8b940 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 me()].=.$helper;.if.(null.!==.$a
8b960 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d lias).{.$this->helpers[$alias].=
8b980 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 .$helper;.}..$helper->setHelperS
8b9a0 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 et($this);.}.........public.func
8b9c0 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 tion.has($name).{.return.isset($
8b9e0 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a this->helpers[$name]);.}........
8ba00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a ...public.function.get($name).{.
8ba20 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 if.(!$this->has($name)).{.throw.
8ba40 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 new.\InvalidArgumentException(sp
8ba60 72 69 6e 74 66 28 27 54 68 65 20 68 65 6c 70 65 72 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 rintf('The.helper."%s".is.not.de
8ba80 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 fined.',.$name));.}..return.$thi
8baa0 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 s->helpers[$name];.}.......publi
8bac0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 c.function.setCommand(Command.$c
8bae0 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 ommand.=.null).{.$this->command.
8bb00 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$command;.}.......public.funct
8bb20 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getCommand().{.return.$this-
8bb40 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 >command;.}.}.<?php...........na
8bb60 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
8bb80 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 e\Helper;..use.Symfony\Component
8bba0 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b \Console\Output\OutputInterface;
8bbc0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 .......class.DialogHelper.extend
8bbe0 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b s.Helper.{.private.$inputStream;
8bc00 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 .private.static.$shell;.private.
8bc20 73 74 61 74 69 63 20 24 73 74 74 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 static.$stty;.............public
8bc40 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f .function.ask(OutputInterface.$o
8bc60 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c utput,.$question,.$default.=.nul
8bc80 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a l).{.$output->write($question);.
8bca0 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d .$ret.=.fgets($this->inputStream
8bcc0 20 3f 3a 20 53 54 44 49 4e 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 .?:.STDIN,.4096);.if.(false.===.
8bce0 24 72 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 $ret).{.throw.new.\RuntimeExcept
8bd00 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 ion('Aborted');.}.$ret.=.trim($r
8bd20 65 74 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 72 65 74 29 20 3e 20 30 20 3f 20 et);..return.strlen($ret).>.0.?.
8bd40 24 72 65 74 20 3a 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 $ret.:.$default;.}.............p
8bd60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 4f ublic.function.askConfirmation(O
8bd80 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f utputInterface.$output,.$questio
8bda0 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 61 6e 73 77 65 72 20 3d 20 n,.$default.=.true).{.$answer.=.
8bdc0 27 7a 27 3b 0a 77 68 69 6c 65 20 28 24 61 6e 73 77 65 72 20 26 26 20 21 69 6e 5f 61 72 72 61 79 'z';.while.($answer.&&.!in_array
8bde0 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 2c 20 61 72 72 61 79 28 27 (strtolower($answer[0]),.array('
8be00 79 27 2c 20 27 6e 27 29 29 29 20 7b 0a 24 61 6e 73 77 65 72 20 3d 20 24 74 68 69 73 2d 3e 61 73 y',.'n'))).{.$answer.=.$this->as
8be20 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 k($output,.$question);.}..if.(fa
8be40 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 lse.===.$default).{.return.$answ
8be60 65 72 20 26 26 20 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b er.&&.'y'.==.strtolower($answer[
8be80 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 0]);.}..return.!$answer.||.'y'.=
8bea0 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a =.strtolower($answer[0]);.}.....
8bec0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 ........public.function.askHidde
8bee0 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 nResponse(OutputInterface.$outpu
8bf00 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a t,.$question,.$fallback.=.true).
8bf20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 {.if.(defined('PHP_WINDOWS_VERSI
8bf40 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 ON_BUILD')).{.$exe.=.__DIR__...'
8bf60 2f 2e 2e 2f 2e 2e 2f 52 65 73 6f 75 72 63 65 73 2f 62 69 6e 2f 68 69 64 64 65 6e 69 6e 70 75 74 /../../Resources/bin/hiddeninput
8bf80 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 .exe';....if.('phar:'.===.substr
8bfa0 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 (__FILE__,.0,.5)).{.$tmpExe.=.sy
8bfc0 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 52 65 73 6f 75 s_get_temp_dir()...'/../../Resou
8bfe0 72 63 65 73 2f 62 69 6e 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 63 6f 70 79 28 rces/bin/hiddeninput.exe';.copy(
8c000 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a $exe,.$tmpExe);.$exe.=.$tmpExe;.
8c020 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 24 76 }..$output->write($question);.$v
8c040 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a alue.=.rtrim(shell_exec($exe));.
8c060 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 $output->writeln('');..if.(isset
8c080 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a ($tmpExe)).{.unlink($tmpExe);.}.
8c0a0 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 .return.$value;.}..if.($this->ha
8c0c0 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 sSttyAvailable()).{.$output->wri
8c0e0 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c te($question);..$sttyMode.=.shel
8c100 6c 5f 65 78 65 63 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 74 74 79 20 2d 67 27 29 3b 0a l_exec('/usr/bin/env.stty.-g');.
8c120 0a 73 68 65 6c 6c 5f 65 78 65 63 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 74 74 79 20 2d .shell_exec('/usr/bin/env.stty.-
8c140 65 63 68 6f 27 29 3b 0a 24 76 61 6c 75 65 20 3d 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e echo');.$value.=.fgets($this->in
8c160 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 2c 20 34 30 39 36 29 3b 0a 73 68 65 6c 6c putStream.?:.STDIN,.4096);.shell
8c180 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 74 74 79 _exec(sprintf('/usr/bin/env.stty
8c1a0 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d .%s',.$sttyMode));..if.(false.==
8c1c0 3d 20 24 76 61 6c 75 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 =.$value).{.throw.new.\RuntimeEx
8c1e0 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 ception('Aborted');.}..$value.=.
8c200 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 trim($value);.$output->writeln('
8c220 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 ');..return.$value;.}..if.(false
8c240 20 21 3d 3d 20 24 73 68 65 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 65 6c 6c 28 29 29 .!==.$shell.=.$this->getShell())
8c260 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 24 72 .{.$output->write($question);.$r
8c280 65 61 64 43 6d 64 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 20 3f 20 27 73 65 74 eadCmd.=.$shell.===.'csh'.?.'set
8c2a0 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 6d 79 70 .mypassword.=.$<'.:.'read.-r.myp
8c2c0 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 assword';.$command.=.sprintf("/u
8c2e0 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 sr/bin/env.%s.-c.'stty.-echo;.%s
8c300 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 ;.stty.echo;.echo.\$mypassword'"
8c320 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 ,.$shell,.$readCmd);.$value.=.rt
8c340 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 6f 75 74 70 rim(shell_exec($command));.$outp
8c360 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b ut->writeln('');..return.$value;
8c380 0a 7d 0a 0a 69 66 20 28 24 66 61 6c 6c 62 61 63 6b 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .}..if.($fallback).{.return.$thi
8c3a0 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 74 s->ask($output,.$question);.}..t
8c3c0 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 hrow.new.\RuntimeException('Unab
8c3e0 6c 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d 0a 0a 0a 0a le.to.hide.the.response');.}....
8c400 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 ...............public.function.a
8c420 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f skAndValidate(OutputInterface.$o
8c440 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 utput,.$question,.$validator,.$a
8c460 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c ttempts.=.false,.$default.=.null
8c480 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 ).{.$that.=.$this;..$interviewer
8c4a0 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 .=.function().use.($output,.$que
8c4c0 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e stion,.$default,.$that).{.return
8c4e0 20 24 74 68 61 74 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 .$that->ask($output,.$question,.
8c500 24 64 65 66 61 75 6c 74 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c $default);.};..return.$this->val
8c520 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 6f 75 74 idateAttempts($interviewer,.$out
8c540 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a 7d 0a 0a put,.$validator,.$attempts);.}..
8c560 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ...................public.functi
8c580 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 41 6e 64 56 61 6c 69 64 61 74 65 28 on.askHiddenResponseAndValidate(
8c5a0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 OutputInterface.$output,.$questi
8c5c0 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 on,.$validator,.$attempts.=.fals
8c5e0 65 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 e,.$fallback.=.true).{.$that.=.$
8c600 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 this;..$interviewer.=.function()
8c620 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 .use.($output,.$question,.$fallb
8c640 61 63 6b 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 6b 48 ack,.$that).{.return.$that->askH
8c660 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e iddenResponse($output,.$question
8c680 2c 20 24 66 61 6c 6c 62 61 63 6b 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ,.$fallback);.};..return.$this->
8c6a0 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 validateAttempts($interviewer,.$
8c6c0 6f 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a output,.$validator,.$attempts);.
8c6e0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 }.........public.function.setInp
8c700 75 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 utStream($stream).{.$this->input
8c720 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Stream.=.$stream;.}.......public
8c740 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 .function.getInputStream().{.ret
8c760 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 urn.$this->inputStream;.}.....pu
8c780 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.getName().{.return
8c7a0 20 27 64 69 61 6c 6f 67 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .'dialog';.}.......private.funct
8c7c0 69 6f 6e 20 67 65 74 53 68 65 6c 6c 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 ion.getShell().{.if.(null.!==.se
8c7e0 6c 66 3a 3a 24 73 68 65 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c lf::$shell).{.return.self::$shel
8c800 6c 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 l;.}..self::$shell.=.false;..if.
8c820 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b 0a (file_exists('/usr/bin/env')).{.
8c840 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 65 ..$test.=."/usr/bin/env.%s.-c.'e
8c860 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 28 cho.OK'.2>./dev/null";.foreach.(
8c880 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 68 array('bash',.'zsh',.'ksh',.'csh
8c8a0 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 ').as.$sh).{.if.('OK'.===.rtrim(
8c8c0 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 29 shell_exec(sprintf($test,.$sh)))
8c8e0 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d ).{.self::$shell.=.$sh;.break;.}
8c900 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 3b 0a 7d 0a 0a 70 72 .}.}..return.self::$shell;.}..pr
8c920 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 ivate.function.hasSttyAvailable(
8c940 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 74 74 79 29 20 7b 0a ).{.if.(null.!==.self::$stty).{.
8c960 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a 65 78 65 63 28 27 2f 75 73 return.self::$stty;.}..exec('/us
8c980 72 2f 62 69 6e 2f 65 6e 76 20 73 74 74 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 63 6f r/bin/env.stty',.$output,.$exico
8c9a0 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 63 de);..return.self::$stty.=.$exic
8c9c0 6f 64 65 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ode.===.0;.}..............privat
8c9e0 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 e.function.validateAttempts($int
8ca00 65 72 76 69 65 77 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 erviewer,.OutputInterface.$outpu
8ca20 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 72 72 t,.$validator,.$attempts).{.$err
8ca40 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 74 74 or.=.null;.while.(false.===.$att
8ca60 65 6d 70 74 73 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c empts.||.$attempts--).{.if.(null
8ca80 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 .!==.$error).{.$output->writeln(
8caa0 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d $this->getHelperSet()->get('form
8cac0 61 74 74 65 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 atter')->formatBlock($error->get
8cae0 4d 65 73 73 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 Message(),.'error'));.}..try.{.r
8cb00 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f 72 2c eturn.call_user_func($validator,
8cb20 20 24 69 6e 74 65 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 .$interviewer());.}.catch.(\Exce
8cb40 70 74 69 6f 6e 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f ption.$error).{.}.}..throw.$erro
8cb60 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 r;.}.}.<?php...........namespace
8cb80 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 .Symfony\Component\Console\Helpe
8cba0 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 48 65 6c 70 65 72 20 69 r;.......abstract.class.Helper.i
8cbc0 6d 70 6c 65 6d 65 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 mplements.HelperInterface.{.prot
8cbe0 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 0a 0a 70 ected.$helperSet.=.null;.......p
8cc00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 ublic.function.setHelperSet(Help
8cc20 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 erSet.$helperSet.=.null).{.$this
8cc40 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a ->helperSet.=.$helperSet;.}.....
8cc60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 ..public.function.getHelperSet()
8cc80 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d 0a .{.return.$this->helperSet;.}.}.
8cca0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
8ccc0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 y\Component\Console\Helper;..use
8cce0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
8cd00 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 t\OutputInterface;........class.
8cd20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a ProgressHelper.extends.Helper.{.
8cd40 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 27 20 25 70 65 72 63 65 6e 74 25 const.FORMAT_QUIET.=.'.%percent%
8cd60 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 20 3d 20 27 20 25 63 75 72 %';.const.FORMAT_NORMAL.=.'.%cur
8cd80 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 27 3b rent%/%max%.[%bar%].%percent%%';
8cda0 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 20 3d 20 27 20 25 63 75 72 72 65 .const.FORMAT_VERBOSE.=.'.%curre
8cdc0 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 20 45 6c 61 nt%/%max%.[%bar%].%percent%%.Ela
8cde0 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 psed:.%elapsed%';.const.FORMAT_Q
8ce00 55 49 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 27 3b 0a 63 6f 6e 73 74 UIET_NOMAX.=.'.%current%';.const
8ce20 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e .FORMAT_NORMAL_NOMAX.=.'.%curren
8ce40 74 25 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 t%.[%bar%]';.const.FORMAT_VERBOS
8ce60 45 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 45 6c E_NOMAX.=.'.%current%.[%bar%].El
8ce80 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 62 apsed:.%elapsed%';....private.$b
8cea0 61 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 72 20 3d arWidth.=.28;.private.$barChar.=
8cec0 20 27 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 27 2d .'=';.private.$emptyBarChar.=.'-
8cee0 27 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e 27 3b 0a ';.private.$progressChar.=.'>';.
8cf00 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 74 65 20 private.$format.=.null;.private.
8cf20 24 72 65 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 $redrawFreq.=.1;..private.$barCh
8cf40 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b arOriginal;.....private.$output;
8cf60 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 70 .......private.$current;.......p
8cf80 72 69 76 61 74 65 20 24 6d 61 78 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 rivate.$max;.......private.$star
8cfa0 74 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 46 6f 72 tTime;.......private.$defaultFor
8cfc0 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e 74 27 2c 0a 27 6d 61 78 matVars.=.array(.'current',.'max
8cfe0 27 2c 0a 27 62 61 72 27 2c 0a 27 70 65 72 63 65 6e 74 27 2c 0a 27 65 6c 61 70 73 65 64 27 2c 0a ',.'bar',.'percent',.'elapsed',.
8d000 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 56 61 72 73 3b 0a 0a 0a );.......private.$formatVars;...
8d020 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 77 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 ....private.$widths.=.array(.'cu
8d040 72 72 65 6e 74 27 20 3d 3e 20 34 2c 0a 27 6d 61 78 27 20 3d 3e 20 34 2c 0a 27 70 65 72 63 65 6e rrent'.=>.4,.'max'.=>.4,.'percen
8d060 74 27 20 3d 3e 20 33 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 36 2c 0a 29 3b 0a 0a 0a 0a 0a t'.=>.3,.'elapsed'.=>.6,.);.....
8d080 0a 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a ..private.$timeFormats.=.array(.
8d0a0 61 72 72 61 79 28 30 2c 20 27 3f 3f 3f 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 31 20 73 65 63 array(0,.'???'),.array(2,.'1.sec
8d0c0 27 29 2c 0a 61 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 2c 0a 61 72 72 61 79 28 '),.array(59,.'secs',.1),.array(
8d0e0 36 30 2c 20 27 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 2c 20 27 6d 69 6e 73 27 60,.'1.min'),.array(3600,.'mins'
8d100 2c 20 36 30 29 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 27 29 2c 0a 61 72 72 61 ,.60),.array(5400,.'1.hr'),.arra
8d120 79 28 38 36 34 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 72 72 61 79 28 31 32 39 y(86400,.'hrs',.3600),.array(129
8d140 36 30 30 2c 20 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 38 30 30 2c 20 27 64 61 600,.'1.day'),.array(604800,.'da
8d160 79 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ys',.86400),.);.......public.fun
8d180 63 74 69 6f 6e 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 73 ction.setBarWidth($size).{.$this
8d1a0 2d 3e 62 61 72 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 7a 65 3b 0a 7d 0a 0a 0a 0a 0a ->barWidth.=.(int).$size;.}.....
8d1c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 43 68 61 72 61 63 74 65 ..public.function.setBarCharacte
8d1e0 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 63 68 61 r($char).{.$this->barChar.=.$cha
8d200 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d r;.}.......public.function.setEm
8d220 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e ptyBarCharacter($char).{.$this->
8d240 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 emptyBarChar.=.$char;.}.......pu
8d260 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 blic.function.setProgressCharact
8d280 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 20 er($char).{.$this->progressChar.
8d2a0 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.$char;.}.......public.function
8d2c0 20 73 65 74 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 .setFormat($format).{.$this->for
8d2e0 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 mat.=.$format;.}.......public.fu
8d300 6e 63 74 69 6f 6e 20 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 66 72 65 71 29 nction.setRedrawFrequency($freq)
8d320 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 20 3d 20 28 69 6e 74 29 20 24 66 72 .{.$this->redrawFreq.=.(int).$fr
8d340 65 71 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 eq;.}........public.function.sta
8d360 72 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 78 rt(OutputInterface.$output,.$max
8d380 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 74 69 .=.null).{.$this->startTime.=.ti
8d3a0 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d me();.$this->current.=.0;.$this-
8d3c0 3e 6d 61 78 20 3d 20 28 69 6e 74 29 20 24 6d 61 78 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 >max.=.(int).$max;.$this->output
8d3e0 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d .=.$output;..if.(null.===.$this-
8d400 3e 66 6f 72 6d 61 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 >format).{.switch.($output->getV
8d420 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 erbosity()).{.case.OutputInterfa
8d440 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d ce::VERBOSITY_QUIET:.$this->form
8d460 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 3b 0a 69 at.=.self::FORMAT_QUIET_NOMAX;.i
8d480 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d f.($this->max.>.0).{.$this->form
8d4a0 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 3b 0a 7d 0a 62 72 65 61 6b at.=.self::FORMAT_QUIET;.}.break
8d4c0 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 ;.case.OutputInterface::VERBOSIT
8d4e0 59 5f 56 45 52 42 4f 53 45 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a Y_VERBOSE:.$this->format.=.self:
8d500 3a 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 :FORMAT_VERBOSE_NOMAX;.if.($this
8d520 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c ->max.>.0).{.$this->format.=.sel
8d540 66 3a 3a 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 61 f::FORMAT_VERBOSE;.}.break;.defa
8d560 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 ult:.$this->format.=.self::FORMA
8d580 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e T_NORMAL_NOMAX;.if.($this->max.>
8d5a0 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d .0).{.$this->format.=.self::FORM
8d5c0 41 54 5f 4e 4f 52 4d 41 4c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e AT_NORMAL;.}.break;.}.}..$this->
8d5e0 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 initialize();.}........public.fu
8d600 6e 63 74 69 6f 6e 20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 64 72 61 nction.advance($step.=.1,.$redra
8d620 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d w.=.false).{.if.(null.===.$this-
8d640 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 >startTime).{.throw.new.\LogicEx
8d660 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 ception('You.must.start.the.prog
8d680 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 61 64 76 61 6e 63 65 28 ress.bar.before.calling.advance(
8d6a0 29 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 3d 3d 20 ).');.}..if.($this->current.===.
8d6c0 30 29 20 7b 0a 24 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 63 75 0).{.$redraw.=.true;.}.$this->cu
8d6e0 72 72 65 6e 74 20 2b 3d 20 24 73 74 65 70 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 24 rrent.+=.$step;.if.($redraw.||.$
8d700 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 this->current.%.$this->redrawFre
8d720 71 20 3d 3d 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d q.===.0).{.$this->display();.}.}
8d740 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 28 24 .......public.function.display($
8d760 66 69 6e 69 73 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 finish.=.false).{.if.(null.===.$
8d780 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f this->startTime).{.throw.new.\Lo
8d7a0 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 gicException('You.must.start.the
8d7c0 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 64 69 73 .progress.bar.before.calling.dis
8d7e0 70 6c 61 79 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e play().');.}..$message.=.$this->
8d800 66 6f 72 6d 61 74 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 format;.foreach.($this->generate
8d820 28 24 66 69 6e 69 73 68 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a ($finish).as.$name.=>.$value).{.
8d840 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 25 7b 24 6e 61 6d 65 7d $message.=.str_replace("%{$name}
8d860 25 22 2c 20 24 76 61 6c 75 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e %",.$value,.$message);.}.$this->
8d880 6f 76 65 72 77 72 69 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 overwrite($this->output,.$messag
8d8a0 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 e);.}.....public.function.finish
8d8c0 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 ().{.if.(null.===.$this->startTi
8d8e0 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 me).{.throw.new.\LogicException(
8d900 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 'You.must.start.the.progress.bar
8d920 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 66 69 6e 69 73 68 28 29 2e 27 29 3b 0a 7d 0a 0a .before.calling.finish().');.}..
8d940 69 66 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b if.($this->startTime.!==.null).{
8d960 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 .if.(!$this->max).{.$this->barCh
8d980 61 72 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 24 74 68 ar.=.$this->barCharOriginal;.$th
8d9a0 69 73 2d 3e 64 69 73 70 6c 61 79 28 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 72 is->display(true);.}.$this->star
8d9c0 74 54 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 tTime.=.null;.$this->output->wri
8d9e0 74 65 6c 6e 28 27 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a teln('');.$this->output.=.null;.
8da00 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c }.}.....private.function.initial
8da20 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 ize().{.$this->formatVars.=.arra
8da40 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 46 6f 72 6d y();.foreach.($this->defaultForm
8da60 61 74 56 61 72 73 20 61 73 20 24 76 61 72 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 68 atVars.as.$var).{.if.(strpos($th
8da80 69 73 2d 3e 66 6f 72 6d 61 74 2c 20 22 25 7b 24 76 61 72 7d 25 22 29 20 21 3d 3d 20 66 61 6c 73 is->format,."%{$var}%").!==.fals
8daa0 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 24 76 61 72 5d 20 3d 20 74 e).{.$this->formatVars[$var].=.t
8dac0 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a rue;.}.}..if.($this->max.>.0).{.
8dae0 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 20 3d 20 73 74 72 6c 65 6e 28 24 74 $this->widths['max'].=.strlen($t
8db00 68 69 73 2d 3e 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e his->max);.$this->widths['curren
8db20 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 65 6c t'].=.$this->widths['max'];.}.el
8db40 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 24 74 se.{.$this->barCharOriginal.=.$t
8db60 68 69 73 2d 3e 62 61 72 43 68 61 72 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 his->barChar;.$this->barChar.=.$
8db80 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a this->emptyBarChar;.}.}.........
8dba0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 private.function.generate($finis
8dbc0 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 h.=.false).{.$vars.=.array();.$p
8dbe0 65 72 63 65 6e 74 20 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 ercent.=.0;.if.($this->max.>.0).
8dc00 7b 0a 24 70 65 72 63 65 6e 74 20 3d 20 28 64 6f 75 62 6c 65 29 20 72 6f 75 6e 64 28 24 74 68 69 {.$percent.=.(double).round($thi
8dc20 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 6d 61 78 2c 20 32 29 3b 0a 7d 0a 0a s->current./.$this->max,.2);.}..
8dc40 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 62 61 72 if.(isset($this->formatVars['bar
8dc60 27 5d 29 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 30 3b 0a 24 65 6d 70 74 79 '])).{.$completeBars.=.0;.$empty
8dc80 42 61 72 73 20 3d 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a Bars.=.0;.if.($this->max.>.0).{.
8dca0 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a $completeBars.=.floor($percent.*
8dcc0 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 .$this->barWidth);.}.else.{.if.(
8dce0 21 24 66 69 6e 69 73 68 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f !$finish).{.$completeBars.=.floo
8dd00 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 r($this->current.%.$this->barWid
8dd20 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 24 74 th);.}.else.{.$completeBars.=.$t
8dd40 68 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d 70 74 79 42 61 72 73 20 3d his->barWidth;.}.}..$emptyBars.=
8dd60 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 .$this->barWidth.-.$completeBars
8dd80 20 2d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 29 3b 0a .-.strlen($this->progressChar);.
8dda0 24 62 61 72 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 $bar.=.str_repeat($this->barChar
8ddc0 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6c 65 74 65 42 ,.$completeBars);.if.($completeB
8dde0 61 72 73 20 3c 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 20 7b 0a 24 62 61 72 20 2e 3d ars.<.$this->barWidth).{.$bar..=
8de00 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 24 62 61 72 20 2e 3d 20 73 74 .$this->progressChar;.$bar..=.st
8de20 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 2c 20 24 65 r_repeat($this->emptyBarChar,.$e
8de40 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 24 76 61 72 73 5b 27 62 61 72 27 5d 20 3d 20 24 62 61 mptyBars);.}..$vars['bar'].=.$ba
8de60 72 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 r;.}..if.(isset($this->formatVar
8de80 73 5b 27 65 6c 61 70 73 65 64 27 5d 29 29 20 7b 0a 24 65 6c 61 70 73 65 64 20 3d 20 74 69 6d 65 s['elapsed'])).{.$elapsed.=.time
8dea0 28 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 76 61 72 73 5b 27 65 6c ().-.$this->startTime;.$vars['el
8dec0 61 70 73 65 64 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 68 75 6d 61 6e 65 54 apsed'].=.str_pad($this->humaneT
8dee0 69 6d 65 28 24 65 6c 61 70 73 65 64 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 65 6c ime($elapsed),.$this->widths['el
8df00 61 70 73 65 64 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a apsed'],.'.',.STR_PAD_LEFT);.}..
8df20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 63 75 72 if.(isset($this->formatVars['cur
8df40 72 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 63 75 72 72 65 6e 74 27 5d 20 3d 20 73 74 rent'])).{.$vars['current'].=.st
8df60 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2c 20 24 74 68 69 73 2d 3e 77 69 64 r_pad($this->current,.$this->wid
8df80 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 ths['current'],.'.',.STR_PAD_LEF
8dfa0 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 T);.}..if.(isset($this->formatVa
8dfc0 72 73 5b 27 6d 61 78 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 6d 61 78 27 5d 20 3d 20 24 74 68 rs['max'])).{.$vars['max'].=.$th
8dfe0 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 is->max;.}..if.(isset($this->for
8e000 6d 61 74 56 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 70 65 matVars['percent'])).{.$vars['pe
8e020 72 63 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 70 65 72 63 65 6e 74 20 2a 20 31 30 30 rcent'].=.str_pad($percent.*.100
8e040 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 70 65 72 63 65 6e 74 27 5d 2c 20 27 20 27 2c ,.$this->widths['percent'],.'.',
8e060 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 72 73 3b .STR_PAD_LEFT);.}..return.$vars;
8e080 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 75 6d 61 .}.........private.function.huma
8e0a0 6e 65 54 69 6d 65 28 24 73 65 63 73 29 0a 7b 0a 24 74 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 neTime($secs).{.$text.=.'';.fore
8e0c0 61 63 68 20 28 24 74 68 69 73 2d 3e 74 69 6d 65 46 6f 72 6d 61 74 73 20 61 73 20 24 66 6f 72 6d ach.($this->timeFormats.as.$form
8e0e0 61 74 29 20 7b 0a 69 66 20 28 24 73 65 63 73 20 3c 20 24 66 6f 72 6d 61 74 5b 30 5d 29 20 7b 0a at).{.if.($secs.<.$format[0]).{.
8e100 69 66 20 28 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 20 3d 3d 20 32 29 20 7b 0a 24 74 65 78 74 if.(count($format).==.2).{.$text
8e120 20 3d 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 .=.$format[1];.break;.}.else.{.$
8e140 74 65 78 74 20 3d 20 63 65 69 6c 28 24 73 65 63 73 20 2f 20 24 66 6f 72 6d 61 74 5b 32 5d 29 20 text.=.ceil($secs./.$format[2]).
8e160 2e 20 27 20 27 20 2e 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d ..'.'...$format[1];.break;.}.}.}
8e180 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ..return.$text;.}..........priva
8e1a0 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 4f 75 74 70 75 74 49 6e 74 65 te.function.overwrite(OutputInte
8e1c0 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 rface.$output,.$messages,.$newli
8e1e0 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 0a 7b 0a 24 6f 75 74 70 75 ne.=.false,.$size.=.80).{.$outpu
8e200 74 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a t->write(str_repeat("\x08",.$siz
8e220 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 29 3b 0a e));.$output->write($messages);.
8e240 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 $output->write(str_repeat('.',.$
8e260 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 73 29 29 29 3b 0a 0a 0a 20 24 size.-.strlen($messages)));....$
8e280 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c output->write(str_repeat("\x08",
8e2a0 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 73 29 29 29 3b 0a 0a 69 .$size.-.strlen($messages)));..i
8e2c0 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 f.($newline).{.$output->writeln(
8e2e0 27 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 '');.}.}.....public.function.get
8e300 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 72 6f 67 72 65 73 73 27 3b 0a 7d 0a 7d 0a Name().{.return.'progress';.}.}.
8e320 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
8e340 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a y\Component\Finder;.............
8e360 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6e 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 ....class.Finder.implements.\Ite
8e380 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e ratorAggregate,.\Countable.{.con
8e3a0 73 74 20 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 49 st.IGNORE_VCS_FILES.=.1;.const.I
8e3c0 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d GNORE_DOT_FILES.=.2;..private.$m
8e3e0 6f 64 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 ode.=.0;.private.$names.=.array(
8e400 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a );.private.$notNames.=.array();.
8e420 70 72 69 76 61 74 65 20 24 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 private.$exclude.=.array();.priv
8e440 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 ate.$filters.=.array();.private.
8e460 24 64 65 70 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 69 7a 65 $depths.=.array();.private.$size
8e480 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b s.=.array();.private.$followLink
8e4a0 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 s.=.false;.private.$sort.=.false
8e4c0 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 ;.private.$ignore.=.0;.private.$
8e4e0 64 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 65 73 20 3d dirs.=.array();.private.$dates.=
8e500 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 73 20 3d 20 61 .array();.private.$iterators.=.a
8e520 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 rray();.private.$contains.=.arra
8e540 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 y();.private.$notContains.=.arra
8e560 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 76 63 73 50 61 74 74 65 72 6e y();..private.static.$vcsPattern
8e580 73 20 3d 20 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 53 27 2c s.=.array('.svn',.'_svn',.'CVS',
8e5a0 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e 6d 6f 6e .'_darcs',.'.arch-params',.'.mon
8e5c0 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 3b 0a otone',.'.bzr',.'.git',.'.hg');.
8e5e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
8e600 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f ).{.$this->ignore.=.static::IGNO
8e620 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f RE_VCS_FILES.|.static::IGNORE_DO
8e640 54 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 T_FILES;.}.........public.static
8e660 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 .function.create().{.return.new.
8e680 73 74 61 74 69 63 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 static();.}.........public.funct
8e6a0 69 6f 6e 20 64 69 72 65 63 74 6f 72 69 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 ion.directories().{.$this->mode.
8e6c0 3d 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f =.Iterator\FileTypeFilterIterato
8e6e0 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 r::ONLY_DIRECTORIES;..return.$th
8e700 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 is;.}.........public.function.fi
8e720 6c 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 les().{.$this->mode.=.Iterator\F
8e740 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 ileTypeFilterIterator::ONLY_FILE
8e760 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a S;..return.$this;.}.............
8e780 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 70 74 68 28 24 6c 65 76 ......public.function.depth($lev
8e7a0 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 74 68 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 el).{.$this->depths[].=.new.Comp
8e7c0 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 6c 65 76 65 6c 29 3b arator\NumberComparator($level);
8e7e0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ..return.$this;.}...............
8e800 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 61 74 65 28 24 64 61 74 .......public.function.date($dat
8e820 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 72 e).{.$this->dates[].=.new.Compar
8e840 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 28 24 64 61 74 65 29 3b 0a 0a 72 65 74 ator\DateComparator($date);..ret
8e860 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 urn.$this;.}...................p
8e880 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a ublic.function.name($pattern).{.
8e8a0 24 74 68 69 73 2d 3e 6e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 $this->names[].=.$pattern;..retu
8e8c0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rn.$this;.}.............public.f
8e8e0 75 6e 63 74 69 6f 6e 20 6e 6f 74 4e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 unction.notName($pattern).{.$thi
8e900 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 s->notNames[].=.$pattern;..retur
8e920 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.$this;.}................public
8e940 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 .function.contains($pattern).{.$
8e960 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 this->contains[].=.$pattern;..re
8e980 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this;.}................pub
8e9a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 lic.function.notContains($patter
8e9c0 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 n).{.$this->notContains[].=.$pat
8e9e0 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tern;..return.$this;.}..........
8ea00 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 7a 65 28 24 73 69 ........public.function.size($si
8ea20 7a 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 70 61 ze).{.$this->sizes[].=.new.Compa
8ea40 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 73 69 7a 65 29 3b 0a 0a rator\NumberComparator($size);..
8ea60 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c return.$this;.}.............publ
8ea80 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 63 6c 75 64 65 28 24 64 69 72 73 29 0a 7b 0a 24 74 68 ic.function.exclude($dirs).{.$th
8eaa0 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d is->exclude.=.array_merge($this-
8eac0 3e 65 78 63 6c 75 64 65 2c 20 28 61 72 72 61 79 29 20 24 64 69 72 73 29 3b 0a 0a 72 65 74 75 72 >exclude,.(array).$dirs);..retur
8eae0 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.$this;.}.............public.fu
8eb00 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 24 69 67 6e 6f 72 65 44 6f 74 nction.ignoreDotFiles($ignoreDot
8eb20 46 69 6c 65 73 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 29 20 7b 0a Files).{.if.($ignoreDotFiles).{.
8eb40 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 $this->ignore.=.$this->ignore.|.
8eb60 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 static::IGNORE_DOT_FILES;.}.else
8eb80 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 .{.$this->ignore.=.$this->ignore
8eba0 20 26 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 0a .&.~static::IGNORE_DOT_FILES;.}.
8ebc0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .return.$this;.}.............pub
8ebe0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 43 53 28 24 69 67 6e 6f 72 65 56 43 lic.function.ignoreVCS($ignoreVC
8ec00 53 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 56 43 53 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 S).{.if.($ignoreVCS).{.$this->ig
8ec20 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 73 74 61 74 69 63 3a 3a 49 nore.=.$this->ignore.|.static::I
8ec40 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d GNORE_VCS_FILES;.}.else.{.$this-
8ec60 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 26 20 7e 73 74 61 74 69 >ignore.=.$this->ignore.&.~stati
8ec80 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 c::IGNORE_VCS_FILES;.}..return.$
8eca0 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 this;.}..public.static.function.
8ecc0 61 64 64 56 43 53 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 73 65 6c 66 3a 3a addVCSPattern($pattern).{.self::
8ece0 24 76 63 73 50 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a $vcsPatterns[].=.$pattern;.}....
8ed00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 .............public.function.sor
8ed20 74 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f t(\Closure.$closure).{.$this->so
8ed40 72 74 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a rt.=.$closure;..return.$this;.}.
8ed60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 ............public.function.sort
8ed80 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f ByName().{.$this->sort.=.Iterato
8eda0 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 r\SortableIterator::SORT_BY_NAME
8edc0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ;..return.$this;.}.............p
8ede0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 54 79 70 65 28 29 0a 7b 0a 24 74 ublic.function.sortByType().{.$t
8ee00 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 his->sort.=.Iterator\SortableIte
8ee20 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 rator::SORT_BY_TYPE;..return.$th
8ee40 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 is;.}...............public.funct
8ee60 69 6f 6e 20 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 ion.sortByAccessedTime().{.$this
8ee80 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 ->sort.=.Iterator\SortableIterat
8eea0 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 or::SORT_BY_ACCESSED_TIME;..retu
8eec0 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rn.$this;.}.................publ
8eee0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 43 68 61 6e 67 65 64 54 69 6d 65 28 29 0a ic.function.sortByChangedTime().
8ef00 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c {.$this->sort.=.Iterator\Sortabl
8ef20 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3b eIterator::SORT_BY_CHANGED_TIME;
8ef40 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ..return.$this;.}...............
8ef60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 4d 6f 64 69 66 69 65 64 54 69 public.function.sortByModifiedTi
8ef80 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f me().{.$this->sort.=.Iterator\So
8efa0 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 rtableIterator::SORT_BY_MODIFIED
8efc0 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a _TIME;..return.$this;.}.........
8efe0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 28 5c 43 .......public.function.filter(\C
8f000 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 losure.$closure).{.$this->filter
8f020 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d s[].=.$closure;..return.$this;.}
8f040 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6c 6c 6f 77 4c .........public.function.followL
8f060 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 74 72 inks().{.$this->followLinks.=.tr
8f080 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ue;..return.$this;.}............
8f0a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 28 24 64 69 72 73 29 0a 7b 0a 24 64 69 .public.function.in($dirs).{.$di
8f0c0 72 73 20 3d 20 28 61 72 72 61 79 29 20 24 64 69 72 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 rs.=.(array).$dirs;..foreach.($d
8f0e0 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 irs.as.$dir).{.if.(!is_dir($dir)
8f100 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 ).{.throw.new.\InvalidArgumentEx
8f120 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 ception(sprintf('The."%s".direct
8f140 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a ory.does.not.exist.',.$dir));.}.
8f160 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 }..$this->dirs.=.array_merge($th
8f180 69 73 2d 3e 64 69 72 73 2c 20 24 64 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b is->dirs,.$dirs);..return.$this;
8f1a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .}...........public.function.get
8f1c0 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 Iterator().{.if.(0.===.count($th
8f1e0 69 73 2d 3e 64 69 72 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 is->dirs)).{.throw.new.\LogicExc
8f200 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 74 68 65 20 69 6e 28 29 20 6d eption('You.must.call.the.in().m
8f220 65 74 68 6f 64 20 62 65 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 6f 76 65 72 20 61 20 46 69 ethod.before.iterating.over.a.Fi
8f240 6e 64 65 72 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 nder.');.}..if.(1.===.count($thi
8f260 73 2d 3e 64 69 72 73 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 s->dirs).&&.0.===.count($this->i
8f280 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 61 72 63 terators)).{.return.$this->searc
8f2a0 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 64 69 72 73 5b 30 5d 29 3b 0a 7d 0a hInDirectory($this->dirs[0]);.}.
8f2c0 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 41 70 70 65 6e 64 49 74 65 72 61 74 6f 72 .$iterator.=.new.\AppendIterator
8f2e0 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 69 72 73 20 61 73 20 24 64 69 72 ();.foreach.($this->dirs.as.$dir
8f300 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e 73 65 61 ).{.$iterator->append($this->sea
8f320 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 rchInDirectory($dir));.}..foreac
8f340 68 20 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 20 61 73 20 24 69 74 29 20 7b 0a 24 69 h.($this->iterators.as.$it).{.$i
8f360 74 65 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 69 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 terator->append($it);.}..return.
8f380 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $iterator;.}.........public.func
8f3a0 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 tion.append($iterator).{.if.($it
8f3c0 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 erator.instanceof.\IteratorAggre
8f3e0 67 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 gate).{.$this->iterators[].=.$it
8f400 65 72 61 74 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 erator->getIterator();.}.elseif.
8f420 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 ($iterator.instanceof.\Iterator)
8f440 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f .{.$this->iterators[].=.$iterato
8f460 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f r;.}.elseif.($iterator.instanceo
8f480 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 f.\Traversable.||.is_array($iter
8f4a0 61 74 6f 72 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f ator)).{.$it.=.new.\ArrayIterato
8f4c0 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 r();.foreach.($iterator.as.$file
8f4e0 29 20 7b 0a 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 ).{.$it->append($file.instanceof
8f500 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c .\SplFileInfo.?.$file.:.new.\Spl
8f520 46 69 6c 65 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 FileInfo($file));.}.$this->itera
8f540 74 6f 72 73 5b 5d 20 3d 20 24 69 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 tors[].=.$it;.}.else.{.throw.new
8f560 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 .\InvalidArgumentException('Find
8f580 65 72 3a 3a 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 er::append().method.wrong.argume
8f5a0 6e 74 20 74 79 70 65 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e nt.type.');.}.}.......public.fun
8f5c0 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f ction.count().{.return.iterator_
8f5e0 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a count($this->getIterator());.}..
8f600 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f private.function.searchInDirecto
8f620 72 79 28 24 64 69 72 29 0a 7b 0a 24 66 6c 61 67 73 20 3d 20 5c 52 65 63 75 72 73 69 76 65 44 69 ry($dir).{.$flags.=.\RecursiveDi
8f640 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 0a 69 66 20 rectoryIterator::SKIP_DOTS;..if.
8f660 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 6c 61 67 73 20 7c 3d ($this->followLinks).{.$flags.|=
8f680 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 46 4f .\RecursiveDirectoryIterator::FO
8f6a0 4c 4c 4f 57 5f 53 59 4d 4c 49 4e 4b 53 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 LLOW_SYMLINKS;.}..$iterator.=.ne
8f6c0 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 0a 6e 65 w.\RecursiveIteratorIterator(.ne
8f6e0 77 20 49 74 65 72 61 74 6f 72 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 w.Iterator\RecursiveDirectoryIte
8f700 72 61 74 6f 72 28 24 64 69 72 2c 20 24 66 6c 61 67 73 29 2c 0a 5c 52 65 63 75 72 73 69 76 65 49 rator($dir,.$flags),.\RecursiveI
8f720 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 0a 29 3b 0a 0a teratorIterator::SELF_FIRST.);..
8f740 69 66 20 28 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d if.($this->depths).{.$iterator.=
8f760 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 .new.Iterator\DepthRangeFilterIt
8f780 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 erator($iterator,.$this->depths)
8f7a0 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f ;.}..if.($this->mode).{.$iterato
8f7c0 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 r.=.new.Iterator\FileTypeFilterI
8f7e0 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b terator($iterator,.$this->mode);
8f800 0a 7d 0a 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 .}..if.(static::IGNORE_VCS_FILES
8f820 20 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 26 .===.(static::IGNORE_VCS_FILES.&
8f840 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 .$this->ignore)).{.$this->exclud
8f860 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 e.=.array_merge($this->exclude,.
8f880 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 61 74 self::$vcsPatterns);.}..if.(stat
8f8a0 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 69 63 ic::IGNORE_DOT_FILES.===.(static
8f8c0 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 6e 6f ::IGNORE_DOT_FILES.&.$this->igno
8f8e0 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 27 2f 5e 5c 2e re)).{.$this->notNames[].=.'/^\.
8f900 2e 2b 2f 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 .+/';.}..if.($this->exclude).{.$
8f920 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 iterator.=.new.Iterator\ExcludeD
8f940 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 irectoryFilterIterator($iterator
8f960 2c 20 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d ,.$this->exclude);.}..if.($this-
8f980 3e 6e 61 6d 65 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a 24 69 74 >names.||.$this->notNames).{.$it
8f9a0 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 erator.=.new.Iterator\FilenameFi
8f9c0 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6e lterIterator($iterator,.$this->n
8f9e0 61 6d 65 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 ames,.$this->notNames);.}..if.($
8fa00 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 this->contains.||.$this->notCont
8fa20 61 69 6e 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 ains).{.$iterator.=.new.Iterator
8fa40 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 \FilecontentFilterIterator($iter
8fa60 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f ator,.$this->contains,.$this->no
8fa80 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 tContains);.}..if.($this->sizes)
8faa0 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 .{.$iterator.=.new.Iterator\Size
8fac0 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 RangeFilterIterator($iterator,.$
8fae0 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 61 74 65 this->sizes);.}..if.($this->date
8fb00 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 61 s).{.$iterator.=.new.Iterator\Da
8fb20 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c teRangeFilterIterator($iterator,
8fb40 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 .$this->dates);.}..if.($this->fi
8fb60 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f lters).{.$iterator.=.new.Iterato
8fb80 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 r\CustomFilterIterator($iterator
8fba0 2c 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d ,.$this->filters);.}..if.($this-
8fbc0 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 >sort).{.$iteratorAggregate.=.ne
8fbe0 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 69 74 65 w.Iterator\SortableIterator($ite
8fc00 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d rator,.$this->sort);.$iterator.=
8fc20 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 .$iteratorAggregate->getIterator
8fc40 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 ();.}..return.$iterator;.}.}.<?p
8fc60 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
8fc80 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a omponent\Finder;................
8fca0 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ........class.Glob.{..........pu
8fcc0 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 6c blic.static.function.toRegex($gl
8fce0 6f 62 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 ob,.$strictLeadingDot.=.true,.$s
8fd00 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 trictWildcardSlash.=.true).{.$fi
8fd20 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 rstByte.=.true;.$escaping.=.fals
8fd40 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a e;.$inCurlies.=.0;.$regex.=.'';.
8fd60 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 $sizeGlob.=.strlen($glob);.for.(
8fd80 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a $i.=.0;.$i.<.$sizeGlob;.$i++).{.
8fda0 24 63 61 72 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 $car.=.$glob[$i];.if.($firstByte
8fdc0 29 20 7b 0a 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 ).{.if.($strictLeadingDot.&&.'.'
8fde0 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d .!==.$car).{.$regex..=.'(?=[^\.]
8fe00 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 )';.}..$firstByte.=.false;.}..if
8fe20 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 .('/'.===.$car).{.$firstByte.=.t
8fe40 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 20 rue;.}..if.('.'.===.$car.||.'('.
8fe60 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 ===.$car.||.')'.===.$car.||.'|'.
8fe80 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 ===.$car.||.'+'.===.$car.||.'^'.
8fea0 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 ===.$car.||.'$'.===.$car).{.$reg
8fec0 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d ex..=."\\$car";.}.elseif.('*'.==
8fee0 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 =.$car).{.$regex..=.$escaping.?.
8ff00 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 '\\*'.:.($strictWildcardSlash.?.
8ff20 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 3d '[^/]*'.:.'.*');.}.elseif.('?'.=
8ff40 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f ==.$car).{.$regex..=.$escaping.?
8ff60 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f .'\\?'.:.($strictWildcardSlash.?
8ff80 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d .'[^/]'.:.'.');.}.elseif.('{'.==
8ffa0 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 =.$car).{.$regex..=.$escaping.?.
8ffc0 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b '\\{'.:.'(';.if.(!$escaping).{.+
8ffe0 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d +$inCurlies;.}.}.elseif.('}'.===
90000 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d .$car.&&.$inCurlies).{.$regex..=
90020 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 73 .$escaping.?.'}'.:.')';.if.(!$es
90040 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 caping).{.--$inCurlies;.}.}.else
90060 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 if.(','.===.$car.&&.$inCurlies).
90080 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c {.$regex..=.$escaping.?.','.:.'|
900a0 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 ';.}.elseif.('\\'.===.$car).{.if
900c0 20 28 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b .($escaping).{.$regex..=.'\\\\';
900e0 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 .$escaping.=.false;.}.else.{.$es
90100 63 61 70 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c caping.=.true;.}..continue;.}.el
90120 73 65 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 se.{.$regex..=.$car;.}.$escaping
90140 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 23 5e 27 2e 24 72 65 67 65 78 2e .=.false;.}..return.'#^'.$regex.
90160 27 24 23 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 '$#';.}.}.<?php...........namesp
90180 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 ace.Symfony\Component\Finder\Ite
901a0 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 74 68 52 61 6e 67 65 46 69 6c rator;.......class.DepthRangeFil
901c0 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 terIterator.extends.FilterIterat
901e0 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a or.{.private.$minDepth.=.0;.....
90200 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c ...public.function.__construct(\
90220 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 RecursiveIteratorIterator.$itera
90240 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 6d 69 6e 44 tor,.array.$comparators).{.$minD
90260 65 70 74 68 20 3d 20 30 3b 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 49 4e 46 3b 0a 66 6f 72 65 61 epth.=.0;.$maxDepth.=.INF;.forea
90280 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 29 ch.($comparators.as.$comparator)
902a0 20 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 4f 70 65 72 61 .{.switch.($comparator->getOpera
902c0 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 6d 69 6e 44 65 70 74 68 20 3d 20 24 tor()).{.case.'>':.$minDepth.=.$
902e0 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 65 comparator->getTarget().+.1;.bre
90300 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 6d 69 6e 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 ak;.case.'>=':.$minDepth.=.$comp
90320 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 arator->getTarget();.break;.case
90340 20 27 3c 27 3a 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 .'<':.$maxDepth.=.$comparator->g
90360 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 etTarget().-.1;.break;.case.'<='
90380 3a 0a 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 :.$maxDepth.=.$comparator->getTa
903a0 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 6d 69 6e 44 65 70 74 rget();.break;.default:.$minDept
903c0 68 20 3d 20 24 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 h.=.$maxDepth.=.$comparator->get
903e0 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d Target();.}.}..$this->minDepth.=
90400 20 24 6d 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 70 .$minDepth;.$iterator->setMaxDep
90420 74 68 28 49 4e 46 20 3d 3d 3d 20 24 6d 61 78 44 65 70 74 68 20 3f 20 2d 31 20 3a 20 24 6d 61 78 th(INF.===.$maxDepth.?.-1.:.$max
90440 44 65 70 74 68 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 Depth);..parent::__construct($it
90460 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e erator);.}.......public.function
90480 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e .accept().{.return.$this->getInn
904a0 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 67 65 74 44 65 70 74 68 28 29 20 3e 3d 20 24 74 68 69 erIterator()->getDepth().>=.$thi
904c0 73 2d 3e 6d 69 6e 44 65 70 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->minDepth;.}.}.<?php..........
904e0 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e .namespace.Symfony\Component\Fin
90500 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 72 74 61 62 der\Iterator;.......class.Sortab
90520 6c 65 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 leIterator.implements.\IteratorA
90540 67 67 72 65 67 61 74 65 0a 7b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 20 ggregate.{.const.SORT_BY_NAME.=.
90560 31 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 1;.const.SORT_BY_TYPE.=.2;.const
90580 20 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 20 33 3b 0a 63 6f 6e 73 .SORT_BY_ACCESSED_TIME.=.3;.cons
905a0 74 20 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 20 34 3b 0a 63 6f 6e 73 t.SORT_BY_CHANGED_TIME.=.4;.cons
905c0 74 20 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 20 35 3b 0a 0a 70 72 t.SORT_BY_MODIFIED_TIME.=.5;..pr
905e0 69 76 61 74 65 20 24 69 74 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 3b 0a ivate.$iterator;.private.$sort;.
90600 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
90620 63 74 28 5c 54 72 61 76 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 6f 72 2c 20 24 73 6f 72 74 ct(\Traversable.$iterator,.$sort
90640 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 3b ).{.$this->iterator.=.$iterator;
90660 0a 0a 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 3d 3d 20 24 73 6f ..if.(self::SORT_BY_NAME.===.$so
90680 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 rt).{.$this->sort.=.function.($a
906a0 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 ,.$b).{.return.strcmp($a->getRea
906c0 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a lpath(),.$b->getRealpath());.};.
906e0 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 3d 3d }.elseif.(self::SORT_BY_TYPE.===
90700 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e .$sort).{.$this->sort.=.function
90720 20 28 24 61 2c 20 24 62 29 20 7b 0a 69 66 20 28 24 61 2d 3e 69 73 44 69 72 28 29 20 26 26 20 24 .($a,.$b).{.if.($a->isDir().&&.$
90740 62 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 20 65 6c 73 65 b->isFile()).{.return.-1;.}.else
90760 69 66 20 28 24 61 2d 3e 69 73 46 69 6c 65 28 29 20 26 26 20 24 62 2d 3e 69 73 44 69 72 28 29 29 if.($a->isFile().&&.$b->isDir())
90780 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 .{.return.1;.}..return.strcmp($a
907a0 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 ->getRealpath(),.$b->getRealpath
907c0 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f ());.};.}.elseif.(self::SORT_BY_
907e0 41 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 ACCESSED_TIME.===.$sort).{.$this
90800 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 ->sort.=.function.($a,.$b).{.ret
90820 75 72 6e 20 28 24 61 2d 3e 67 65 74 41 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 41 54 69 urn.($a->getATime().>.$b->getATi
90840 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 me());.};.}.elseif.(self::SORT_B
90860 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 Y_CHANGED_TIME.===.$sort).{.$thi
90880 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 s->sort.=.function.($a,.$b).{.re
908a0 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 43 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 43 54 turn.($a->getCTime().>.$b->getCT
908c0 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f ime());.};.}.elseif.(self::SORT_
908e0 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 BY_MODIFIED_TIME.===.$sort).{.$t
90900 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a his->sort.=.function.($a,.$b).{.
90920 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 4d 54 69 6d 65 28 29 20 3e 20 24 62 2d 3e 67 65 74 return.($a->getMTime().>.$b->get
90940 4d 54 69 6d 65 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 63 61 6c 6c 61 62 MTime());.};.}.elseif.(is_callab
90960 6c 65 28 24 73 6f 72 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 le($sort)).{.$this->sort.=.$sort
90980 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ;.}.else.{.throw.new.\InvalidArg
909a0 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 umentException('The.SortableIter
909c0 61 74 6f 72 20 74 61 6b 65 73 20 61 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 20 6f 72 20 61 20 76 ator.takes.a.PHP.callback.or.a.v
909e0 61 6c 69 64 20 62 75 69 6c 74 2d 69 6e 20 73 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 20 61 73 20 alid.built-in.sort.algorithm.as.
90a00 61 6e 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 an.argument.');.}.}..public.func
90a20 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 24 61 72 72 61 79 20 3d 20 69 74 tion.getIterator().{.$array.=.it
90a40 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 2c erator_to_array($this->iterator,
90a60 20 74 72 75 65 29 3b 0a 75 61 73 6f 72 74 28 24 61 72 72 61 79 2c 20 24 74 68 69 73 2d 3e 73 6f .true);.uasort($array,.$this->so
90a80 72 74 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 rt);..return.new.\ArrayIterator(
90aa0 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d $array);.}.}.<?php...........nam
90ac0 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c espace.Symfony\Component\Finder\
90ae0 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 6f 6e 74 65 Iterator;........class.Fileconte
90b00 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c ntFilterIterator.extends.Multipl
90b20 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ePcreFilterIterator.{......publi
90b40 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 c.function.accept().{.if.(!$this
90b60 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 ->matchRegexps.&&.!$this->noMatc
90b80 68 52 65 67 65 78 70 73 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c hRegexps).{.return.true;.}..$fil
90ba0 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 einfo.=.$this->current();..if.($
90bc0 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 69 72 28 29 20 7c 7c 20 21 24 66 69 6c 65 69 6e 66 6f 2d fileinfo->isDir().||.!$fileinfo-
90be0 3e 69 73 52 65 61 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d >isReadable()).{.return.false;.}
90c00 0a 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 43 6f 6e 74 65 ..$content.=.$fileinfo->getConte
90c20 6e 74 73 28 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 nts();.if.(!$content).{.return.f
90c40 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 alse;.}....foreach.($this->noMat
90c60 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f chRegexps.as.$regex).{.if.(preg_
90c80 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 match($regex,.$content)).{.retur
90ca0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 n.false;.}.}....$match.=.true;.i
90cc0 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 f.($this->matchRegexps).{.$match
90ce0 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 .=.false;.foreach.($this->matchR
90d00 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 egexps.as.$regex).{.if.(preg_mat
90d20 63 68 28 24 72 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 ch($regex,.$content)).{.return.t
90d40 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a rue;.}.}.}..return.$match;.}....
90d60 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 .....protected.function.toRegex(
90d80 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 $str).{.return.$this->isRegex($s
90da0 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 tr).?.$str.:.'/'.preg_quote($str
90dc0 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.'/').'/';.}.}.<?php...........
90de0 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 namespace.Symfony\Component\Find
90e00 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 6e er\Iterator;.......class.SizeRan
90e20 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 geFilterIterator.extends.FilterI
90e40 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d terator.{.private.$comparators.=
90e60 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .array();........public.function
90e80 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 .__construct(\Iterator.$iterator
90ea0 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 ,.array.$comparators).{.$this->c
90ec0 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 omparators.=.$comparators;..pare
90ee0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a nt::__construct($iterator);.}...
90f00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 ....public.function.accept().{.$
90f20 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 fileinfo.=.$this->current();.if.
90f40 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 (!$fileinfo->isFile()).{.return.
90f60 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e true;.}..$filesize.=.$fileinfo->
90f80 67 65 74 53 69 7a 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 getSize();.foreach.($this->compa
90fa0 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 rators.as.$compare).{.if.(!$comp
90fc0 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 are->test($filesize)).{.return.f
90fe0 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 alse;.}.}..return.true;.}.}.<?ph
91000 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
91020 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 mponent\Finder\Iterator;.......c
91040 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 lass.ExcludeDirectoryFilterItera
91060 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 tor.extends.FilterIterator.{.pri
91080 76 61 74 65 20 24 70 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 vate.$patterns;........public.fu
910a0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 nction.__construct(\Iterator.$it
910c0 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 64 69 72 65 63 74 6f 72 69 65 73 29 0a 7b 0a 24 74 erator,.array.$directories).{.$t
910e0 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 his->patterns.=.array();.foreach
91100 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a .($directories.as.$directory).{.
91120 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 27 2e 70 72 65 $this->patterns[].=.'#(^|/)'.pre
91140 67 5f 71 75 6f 74 65 28 24 64 69 72 65 63 74 6f 72 79 2c 20 27 23 27 29 2e 27 28 2f 7c 24 29 23 g_quote($directory,.'#').'(/|$)#
91160 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 ';.}..parent::__construct($itera
91180 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 tor);.}.......public.function.ac
911a0 63 65 70 74 28 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 73 44 69 72 28 29 20 cept().{.$path.=.$this->isDir().
911c0 3f 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 ?.$this->current()->getRelativeP
911e0 61 74 68 6e 61 6d 65 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 athname().:.$this->current()->ge
91200 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 tRelativePath();.$path.=.strtr($
91220 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 path,.'\\',.'/');.foreach.($this
91240 2d 3e 70 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 69 66 20 28 70 72 ->patterns.as.$pattern).{.if.(pr
91260 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 eg_match($pattern,.$path)).{.ret
91280 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d urn.false;.}.}..return.true;.}.}
912a0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
912c0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a ny\Component\Finder\Iterator;...
912e0 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 46 69 6c 74 65 72 49 74 65 72 61 ......abstract.class.FilterItera
91300 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a tor.extends.\FilterIterator.{...
91320 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 ....public.function.rewind().{.$
91340 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 3b 0a 77 68 69 6c 65 20 28 24 69 74 65 72 61 74 iterator.=.$this;.while.($iterat
91360 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 4f 75 74 65 72 49 74 65 72 61 74 6f 72 29 20 7b 0a or.instanceof.\OuterIterator).{.
91380 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 if.($iterator->getInnerIterator(
913a0 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 ).instanceof.\FilesystemIterator
913c0 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 ).{.$iterator->getInnerIterator(
913e0 29 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 )->next();.$iterator->getInnerIt
91400 65 72 61 74 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 24 69 74 65 72 61 74 6f 72 20 erator()->rewind();.}.$iterator.
91420 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 3b =.$iterator->getInnerIterator();
91440 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a .}..parent::rewind();.}.}.<?php.
91460 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
91480 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 onent\Finder\Iterator;.......abs
914a0 74 72 61 63 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 tract.class.MultiplePcreFilterIt
914c0 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a erator.extends.FilterIterator.{.
914e0 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 70 72 6f 74 65 63 74 protected.$matchRegexps;.protect
91500 65 64 20 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ed.$noMatchRegexps;.........publ
91520 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f ic.function.__construct(\Iterato
91540 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 6d 61 74 63 68 50 61 74 74 65 72 6e r.$iterator,.array.$matchPattern
91560 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 0a 7b 0a 24 74 68 s,.array.$noMatchPatterns).{.$th
91580 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 is->matchRegexps.=.array();.fore
915a0 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 ach.($matchPatterns.as.$pattern)
915c0 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 .{.$this->matchRegexps[].=.$this
915e0 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e ->toRegex($pattern);.}..$this->n
91600 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 oMatchRegexps.=.array();.foreach
91620 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 .($noMatchPatterns.as.$pattern).
91640 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 {.$this->noMatchRegexps[].=.$thi
91660 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a s->toRegex($pattern);.}..parent:
91680 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a :__construct($iterator);.}......
916a0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 24 73 ...protected.function.isRegex($s
916c0 74 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 2e 7b 33 2c 7d 3f 29 tr).{.if.(preg_match('/^(.{3,}?)
916e0 5b 69 6d 73 78 75 41 44 55 5d 2a 24 2f 27 2c 20 24 73 74 72 2c 20 24 6d 29 29 20 7b 0a 24 73 74 [imsxuADU]*$/',.$str,.$m)).{.$st
91700 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 30 2c 20 31 29 3b 0a 24 65 6e 64 20 art.=.substr($m[1],.0,.1);.$end.
91720 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 29 3b 0a 0a 69 66 20 28 24 73 74 61 72 74 =.substr($m[1],.-1);..if.($start
91740 20 3d 3d 3d 20 24 65 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 21 70 72 65 67 5f 6d 61 74 63 68 28 .===.$end).{.return.!preg_match(
91760 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 2c 20 24 73 74 61 72 74 29 3b '/[*?[:alnum:].\\\\]/',.$start);
91780 0a 7d 0a 0a 69 66 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b 27 20 26 26 20 24 65 6e 64 20 3d .}..if.($start.===.'{'.&&.$end.=
917a0 3d 3d 20 27 7d 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ==.'}').{.return.true;.}.}..retu
917c0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f rn.false;.}.........abstract.pro
917e0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d tected.function.toRegex($str);.}
91800 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
91820 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a ny\Component\Finder\Iterator;...
91840 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f .......class.CustomFilterIterato
91860 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 r.extends.FilterIterator.{.priva
91880 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 te.$filters.=.array();........pu
918a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 blic.function.__construct(\Itera
918c0 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b tor.$iterator,.array.$filters).{
918e0 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b .foreach.($filters.as.$filter).{
91900 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 66 69 6c 74 65 72 29 29 20 7b 0a 74 68 .if.(!is_callable($filter)).{.th
91920 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
91940 6e 28 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a n('Invalid.PHP.callback.');.}.}.
91960 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 70 61 72 65 $this->filters.=.$filters;..pare
91980 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a nt::__construct($iterator);.}...
919a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 ....public.function.accept().{.$
919c0 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 66 6f fileinfo.=.$this->current();..fo
919e0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 reach.($this->filters.as.$filter
91a00 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 ).{.if.(false.===.call_user_func
91a20 28 24 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 6e 66 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 ($filter,.$fileinfo)).{.return.f
91a40 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 alse;.}.}..return.true;.}.}.<?ph
91a60 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
91a80 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 mponent\Finder\Iterator;..use.Sy
91aa0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 47 6c 6f 62 3b 0a 0a 0a 0a mfony\Component\Finder\Glob;....
91ac0 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 ...class.FilenameFilterIterator.
91ae0 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 extends.MultiplePcreFilterIterat
91b00 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 or.{.......public.function.accep
91b20 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 t().{.$filename.=.$this->current
91b40 28 29 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 ()->getFilename();....foreach.($
91b60 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 this->noMatchRegexps.as.$regex).
91b80 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 {.if.(preg_match($regex,.$filena
91ba0 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 me)).{.return.false;.}.}....$mat
91bc0 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 ch.=.true;.if.($this->matchRegex
91be0 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 ps).{.$match.=.false;.foreach.($
91c00 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a this->matchRegexps.as.$regex).{.
91c20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 if.(preg_match($regex,.$filename
91c40 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 )).{.return.true;.}.}.}..return.
91c60 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 $match;.}............protected.f
91c80 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 unction.toRegex($str).{.return.$
91ca0 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 47 6c 6f this->isRegex($str).?.$str.:.Glo
91cc0 62 3a 3a 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a b::toRegex($str);.}.}.<?php.....
91ce0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
91d00 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 t\Finder\Iterator;.......class.D
91d20 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 ateRangeFilterIterator.extends.F
91d40 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 ilterIterator.{.private.$compara
91d60 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tors.=.array();........public.fu
91d80 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 nction.__construct(\Iterator.$it
91da0 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 erator,.array.$comparators).{.$t
91dc0 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b his->comparators.=.$comparators;
91de0 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 ..parent::__construct($iterator)
91e00 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 ;.}.......public.function.accept
91e20 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 ().{.$fileinfo.=.$this->current(
91e40 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a );..if.(!$fileinfo->isFile()).{.
91e60 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 64 61 74 65 20 3d 20 24 66 69 6c return.true;.}..$filedate.=.$fil
91e80 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 einfo->getMTime();.foreach.($thi
91ea0 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 s->comparators.as.$compare).{.if
91ec0 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 64 61 74 65 29 29 20 7b 0a .(!$compare->test($filedate)).{.
91ee0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a return.false;.}.}..return.true;.
91f00 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 }.}.<?php...........namespace.Sy
91f20 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b mfony\Component\Finder\Iterator;
91f40 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 .......class.FileTypeFilterItera
91f60 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 63 6f 6e tor.extends.FilterIterator.{.con
91f80 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 44 49 st.ONLY_FILES.=.1;.const.ONLY_DI
91fa0 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 0a RECTORIES.=.2;..private.$mode;..
91fc0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ......public.function.__construc
91fe0 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 6f 64 65 29 0a 7b 0a t(\Iterator.$iterator,.$mode).{.
92000 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f $this->mode.=.$mode;..parent::__
92020 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 construct($iterator);.}.......pu
92040 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e blic.function.accept().{.$filein
92060 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 28 73 65 6c 66 3a fo.=.$this->current();.if.(self:
92080 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c :ONLY_DIRECTORIES.===.(self::ONL
920a0 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 Y_DIRECTORIES.&.$this->mode).&&.
920c0 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 $fileinfo->isFile()).{.return.fa
920e0 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 lse;.}.elseif.(self::ONLY_FILES.
92100 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 6d ===.(self::ONLY_FILES.&.$this->m
92120 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 ode).&&.$fileinfo->isDir()).{.re
92140 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a turn.false;.}..return.true;.}.}.
92160 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
92180 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 y\Component\Finder\Iterator;..us
921a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 70 6c 46 69 e.Symfony\Component\Finder\SplFi
921c0 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 63 75 72 73 69 76 65 44 69 72 leInfo;.......class.RecursiveDir
921e0 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 52 65 63 75 72 73 69 76 ectoryIterator.extends.\Recursiv
92200 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 eDirectoryIterator.{.public.func
92220 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 24 66 6c 61 67 73 29 0a tion.__construct($path,.$flags).
92240 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 {.if.($flags.&.(self::CURRENT_AS
92260 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 53 45 4c _PATHNAME.|.self::CURRENT_AS_SEL
92280 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f F)).{.throw.new.\RuntimeExceptio
922a0 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 20 72 65 n('This.iterator.only.support.re
922c0 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 20 66 69 6c 65 69 6e 66 6f 2e 27 29 3b 0a turning.current.as.fileinfo.');.
922e0 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 24 66 }..parent::__construct($path,.$f
92300 6c 61 67 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 lags);.}.......public.function.c
92320 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 urrent().{.return.new.SplFileInf
92340 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 o(parent::current()->getPathname
92360 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 28 29 2c 20 24 74 68 69 73 2d 3e (),.$this->getSubPath(),.$this->
92380 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a getSubPathname());.}.}.<?php....
923a0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
923c0 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 nt\Finder\Comparator;.......clas
923e0 73 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 s.DateComparator.extends.Compara
92400 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f tor.{.........public.function.__
92420 63 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 construct($test).{.if.(!preg_mat
92440 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 6e ch('#^\s*(==|!=|[<>]=?|after|sin
92460 63 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 3f 5c 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 27 ce|before|until)?\s*(.+?)\s*$#i'
92480 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ,.$test,.$matches)).{.throw.new.
924a0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
924c0 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 64 f('Don\'t.understand."%s".as.a.d
924e0 61 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 ate.test.',.$test));.}..try.{.$d
92500 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 ate.=.new.\DateTime($matches[2])
92520 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a ;.$target.=.$date->format('U');.
92540 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 }.catch.(\Exception.$e).{.throw.
92560 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 new.\InvalidArgumentException(sp
92580 72 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 64 61 74 65 2e rintf('"%s".is.not.a.valid.date.
925a0 27 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 3d ',.$matches[2]));.}..$operator.=
925c0 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 .isset($matches[1]).?.$matches[1
925e0 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 69 6e 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 ].:.'==';.if.('since'.===.$opera
92600 74 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a tor.||.'after'.===.$operator).{.
92620 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b 0a 7d 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 20 $operator.=.'>';.}..if.('until'.
92640 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 62 65 66 6f 72 65 27 20 3d 3d 3d 20 24 6f ===.$operator.||.'before'.===.$o
92660 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a 24 perator).{.$operator.=.'<';.}..$
92680 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 74 this->setOperator($operator);.$t
926a0 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 his->setTarget($target);.}.}.<?p
926c0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
926e0 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a omponent\Finder\Comparator;.....
92700 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 43 ...................class.NumberC
92720 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a omparator.extends.Comparator.{..
92740 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ......public.function.__construc
92760 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 t($test).{.if.(!preg_match('#^\s
92780 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 29 3f 5c 73 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 2a *(==|!=|[<>]=?)?\s*([0-9\.]+)\s*
927a0 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 ([kmg]i?)?\s*$#i',.$test,.$match
927c0 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e es)).{.throw.new.\InvalidArgumen
927e0 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 tException(sprintf('Don\'t.under
92800 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 6e 75 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 24 stand."%s".as.a.number.test.',.$
92820 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d test));.}..$target.=.$matches[2]
92840 3b 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 ;.if.(!is_numeric($target)).{.th
92860 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
92880 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6e 75 6d 62 65 72 20 22 25 73 22 2e 27 n(sprintf('Invalid.number."%s".'
928a0 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 ,.$target));.}.if.(isset($matche
928c0 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d s[3])).{...switch.(strtolower($m
928e0 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 63 61 73 65 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 20 atches[3])).{.case.'k':.$target.
92900 2a 3d 20 31 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 67 *=.1000;.break;.case.'ki':.$targ
92920 65 74 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 61 et.*=.1024;.break;.case.'m':.$ta
92940 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 69 rget.*=.1000000;.break;.case.'mi
92960 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a ':.$target.*=.1024*1024;.break;.
92980 63 61 73 65 20 27 67 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 30 30 30 3b case.'g':.$target.*=.1000000000;
929a0 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 .break;.case.'gi':.$target.*=.10
929c0 32 34 2a 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 24*1024*1024;.break;.}.}..$this-
929e0 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f >setTarget($target);.$this->setO
92a00 70 65 72 61 74 6f 72 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 perator(isset($matches[1]).?.$ma
92a20 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a tches[1].:.'==');.}.}.<?php.....
92a40 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
92a60 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 t\Finder\Comparator;.......class
92a80 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 61 72 67 65 74 3b 0a 70 .Comparator.{.private.$target;.p
92aa0 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 0a 0a 0a 0a 0a 0a 70 rivate.$operator.=.'==';.......p
92ac0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 ublic.function.getTarget().{.ret
92ae0 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$this->target;.}.......publi
92b00 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 0a 7b 0a c.function.setTarget($target).{.
92b20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a $this->target.=.$target;.}......
92b40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 6f 72 28 29 0a 7b .public.function.getOperator().{
92b60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->operator;.}......
92b80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 .public.function.setOperator($op
92ba0 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 21 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 erator).{.if.(!$operator).{.$ope
92bc0 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 rator.=.'==';.}..if.(!in_array($
92be0 6f 70 65 72 61 74 6f 72 2c 20 61 72 72 61 79 28 27 3e 27 2c 20 27 3c 27 2c 20 27 3e 3d 27 2c 20 operator,.array('>',.'<',.'>=',.
92c00 27 3c 3d 27 2c 20 27 3d 3d 27 2c 20 27 21 3d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 '<=',.'==',.'!='))).{.throw.new.
92c20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
92c40 66 28 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 25 73 22 2e 27 2c 20 24 6f 70 65 f('Invalid.operator."%s".',.$ope
92c60 72 61 74 6f 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f rator));.}..$this->operator.=.$o
92c80 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e perator;.}.......public.function
92ca0 20 74 65 73 74 28 24 74 65 73 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 .test($test).{.switch.($this->op
92cc0 65 72 61 74 6f 72 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 erator).{.case.'>':.return.$test
92ce0 20 3e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 72 65 74 .>.$this->target;.case.'>=':.ret
92d00 75 72 6e 20 24 74 65 73 74 20 3e 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 urn.$test.>=.$this->target;.case
92d20 20 27 3c 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3c 20 24 74 68 69 73 2d 3e 74 61 72 67 .'<':.return.$test.<.$this->targ
92d40 65 74 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3c 3d 20 24 et;.case.'<=':.return.$test.<=.$
92d60 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 72 65 74 75 72 6e 20 this->target;.case.'!=':.return.
92d80 24 74 65 73 74 20 21 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 72 65 74 75 72 $test.!=.$this->target;.}..retur
92da0 6e 20 24 74 65 73 74 20 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 7d 0a 3c 3f n.$test.==.$this->target;.}.}.<?
92dc0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
92de0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 Component\Finder;.......class.Sp
92e00 6c 46 69 6c 65 49 6e 66 6f 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 0a 7b lFileInfo.extends.\SplFileInfo.{
92e20 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 .private.$relativePath;.private.
92e40 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $relativePathname;.........publi
92e60 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 2c 20 24 72 c.function.__construct($file,.$r
92e80 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 29 0a elativePath,.$relativePathname).
92ea0 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 3b 0a 24 74 {.parent::__construct($file);.$t
92ec0 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 his->relativePath.=.$relativePat
92ee0 68 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 20 3d 20 24 72 65 h;.$this->relativePathname.=.$re
92f00 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 lativePathname;.}.......public.f
92f20 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 unction.getRelativePath().{.retu
92f40 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->relativePath;.}.......
92f60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e public.function.getRelativePathn
92f80 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 ame().{.return.$this->relativePa
92fa0 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 thname;.}.......public.function.
92fc0 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 5c 53 70 6c getContents().{.$file.=.new.\Spl
92fe0 46 69 6c 65 4f 62 6a 65 63 74 28 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c FileObject($this->getRealpath(),
93000 20 27 72 62 27 29 3b 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 24 66 69 6c 65 2d 3e 66 70 61 73 73 .'rb');.ob_start();.$file->fpass
93020 74 68 72 75 28 29 3b 0a 0a 72 65 74 75 72 6e 20 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a thru();..return.ob_get_clean();.
93040 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 }.}.<?php...........namespace.Se
93060 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 0a 7b 0a ld\JsonLint;..class.Undefined.{.
93080 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 }.<?php...........namespace.Seld
930a0 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 75 73 65 20 73 74 64 43 6c 61 73 73 3b 0a 0a 0a 0a 0a 0a 0a \JsonLint;..use.stdClass;.......
930c0 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 ........class.JsonParser.{.priva
930e0 74 65 20 24 73 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 76 73 74 61 63 6b 3b 20 0a 20 70 72 te.$stack;.private.$vstack;...pr
93100 69 76 61 74 65 20 24 6c 73 74 61 63 6b 3b 20 0a 0a 70 72 69 76 61 74 65 20 24 79 79 3b 0a 70 72 ivate.$lstack;...private.$yy;.pr
93120 69 76 61 74 65 20 24 73 79 6d 62 6f 6c 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 ivate.$symbols.=.array(.'error'.
93140 3d 3e 20 32 2c 0a 27 4a 53 4f 4e 53 74 72 69 6e 67 27 20 3d 3e 20 33 2c 0a 27 53 54 52 49 4e 47 =>.2,.'JSONString'.=>.3,.'STRING
93160 27 20 3d 3e 20 34 2c 0a 27 4a 53 4f 4e 4e 75 6d 62 65 72 27 20 3d 3e 20 35 2c 0a 27 4e 55 4d 42 '.=>.4,.'JSONNumber'.=>.5,.'NUMB
93180 45 52 27 20 3d 3e 20 36 2c 0a 27 4a 53 4f 4e 4e 75 6c 6c 4c 69 74 65 72 61 6c 27 20 3d 3e 20 37 ER'.=>.6,.'JSONNullLiteral'.=>.7
931a0 2c 0a 27 4e 55 4c 4c 27 20 3d 3e 20 38 2c 0a 27 4a 53 4f 4e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 ,.'NULL'.=>.8,.'JSONBooleanLiter
931c0 61 6c 27 20 3d 3e 20 39 2c 0a 27 54 52 55 45 27 20 3d 3e 20 31 30 2c 0a 27 46 41 4c 53 45 27 20 al'.=>.9,.'TRUE'.=>.10,.'FALSE'.
931e0 3d 3e 20 31 31 2c 0a 27 4a 53 4f 4e 54 65 78 74 27 20 3d 3e 20 31 32 2c 0a 27 4a 53 4f 4e 56 61 =>.11,.'JSONText'.=>.12,.'JSONVa
93200 6c 75 65 27 20 3d 3e 20 31 33 2c 0a 27 45 4f 46 27 20 3d 3e 20 31 34 2c 0a 27 4a 53 4f 4e 4f 62 lue'.=>.13,.'EOF'.=>.14,.'JSONOb
93220 6a 65 63 74 27 20 3d 3e 20 31 35 2c 0a 27 4a 53 4f 4e 41 72 72 61 79 27 20 3d 3e 20 31 36 2c 0a ject'.=>.15,.'JSONArray'.=>.16,.
93240 27 7b 27 20 3d 3e 20 31 37 2c 0a 27 7d 27 20 3d 3e 20 31 38 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 '{'.=>.17,.'}'.=>.18,.'JSONMembe
93260 72 4c 69 73 74 27 20 3d 3e 20 31 39 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 27 20 3d 3e 20 32 30 rList'.=>.19,.'JSONMember'.=>.20
93280 2c 0a 27 3a 27 20 3d 3e 20 32 31 2c 0a 27 2c 27 20 3d 3e 20 32 32 2c 0a 27 5b 27 20 3d 3e 20 32 ,.':'.=>.21,.','.=>.22,.'['.=>.2
932a0 33 2c 0a 27 5d 27 20 3d 3e 20 32 34 2c 0a 27 4a 53 4f 4e 45 6c 65 6d 65 6e 74 4c 69 73 74 27 20 3,.']'.=>.24,.'JSONElementList'.
932c0 3d 3e 20 32 35 2c 0a 27 24 61 63 63 65 70 74 27 20 3d 3e 20 30 2c 0a 27 24 65 6e 64 27 20 3d 3e =>.25,.'$accept'.=>.0,.'$end'.=>
932e0 20 31 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 6e 61 6c 73 5f 20 3d 20 61 72 .1,.);..private.$terminals_.=.ar
93300 72 61 79 28 0a 32 20 3d 3e 20 22 65 72 72 6f 72 22 2c 0a 34 20 3d 3e 20 22 53 54 52 49 4e 47 22 ray(.2.=>."error",.4.=>."STRING"
93320 2c 0a 36 20 3d 3e 20 22 4e 55 4d 42 45 52 22 2c 0a 38 20 3d 3e 20 22 4e 55 4c 4c 22 2c 0a 31 30 ,.6.=>."NUMBER",.8.=>."NULL",.10
93340 20 3d 3e 20 22 54 52 55 45 22 2c 0a 31 31 20 3d 3e 20 22 46 41 4c 53 45 22 2c 0a 31 34 20 3d 3e .=>."TRUE",.11.=>."FALSE",.14.=>
93360 20 22 45 4f 46 22 2c 0a 31 37 20 3d 3e 20 22 7b 22 2c 0a 31 38 20 3d 3e 20 22 7d 22 2c 0a 32 31 ."EOF",.17.=>."{",.18.=>."}",.21
93380 20 3d 3e 20 22 3a 22 2c 0a 32 32 20 3d 3e 20 22 2c 22 2c 0a 32 33 20 3d 3e 20 22 5b 22 2c 0a 32 .=>.":",.22.=>.",",.23.=>."[",.2
933a0 34 20 3d 3e 20 22 5d 22 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 64 75 63 74 69 6f 4.=>."]",.);..private.$productio
933c0 6e 73 5f 20 3d 20 61 72 72 61 79 28 0a 30 2c 0a 61 72 72 61 79 28 33 2c 20 31 29 2c 0a 61 72 72 ns_.=.array(.0,.array(3,.1),.arr
933e0 61 79 28 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 37 2c 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 ay(5,.1),.array(7,.1),.array(9,.
93400 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 32 2c 20 32 29 2c 0a 61 1),.array(9,.1),.array(12,.2),.a
93420 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 rray(13,.1),.array(13,.1),.array
93440 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c (13,.1),.array(13,.1),.array(13,
93460 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 35 2c 20 32 29 2c .1),.array(13,.1),.array(15,.2),
93480 0a 61 72 72 61 79 28 31 35 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 30 2c 20 33 29 2c 0a 61 72 72 .array(15,.3),.array(20,.3),.arr
934a0 61 79 28 31 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 ay(19,.1),.array(19,.3),.array(1
934c0 36 2c 20 32 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 31 6,.2),.array(16,.3),.array(25,.1
934e0 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 33 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 ),.array(25,.3).);..private.$tab
93500 6c 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 le.=.array(array(3.=>.5,.4.=>.ar
93520 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c ray(1,12),.5.=>.6,.6.=>.array(1,
93540 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 13),.7.=>.3,.8.=>.array(1,9),.9.
93560 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 =>.4,.10.=>.array(1,10),.11.=>.a
93580 72 72 61 79 28 31 2c 31 31 29 2c 20 31 32 20 3d 3e 20 31 2c 20 31 33 20 3d 3e 20 32 2c 20 31 35 rray(1,11),.12.=>.1,.13.=>.2,.15
935a0 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 .=>.7,.16.=>.8,.17.=>.array(1,14
935c0 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 20 ),.23.=>.array(1,15)),.array(.1.
935e0 3d 3e 20 61 72 72 61 79 28 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 =>.array(3)),.array(.14.=>.array
93600 28 31 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 (1,16)),.array(.14.=>.array(2,7)
93620 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 ,.18.=>.array(2,7),.22.=>.array(
93640 32 2c 37 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 29 2c 20 61 72 72 61 79 28 20 2,7),.24.=>.array(2,7)),.array(.
93660 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 14.=>.array(2,8),.18.=>.array(2,
93680 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 8),.22.=>.array(2,8),.24.=>.arra
936a0 79 28 32 2c 38 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 y(2,8)),.array(.14.=>.array(2,9)
936c0 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 ,.18.=>.array(2,9),.22.=>.array(
936e0 32 2c 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 29 2c 20 61 72 72 61 79 28 20 2,9),.24.=>.array(2,9)),.array(.
93700 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 14.=>.array(2,10),.18.=>.array(2
93720 2c 31 30 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 32 34 20 3d 3e 20 61 ,10),.22.=>.array(2,10),.24.=>.a
93740 72 72 61 79 28 32 2c 31 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 rray(2,10)),.array(.14.=>.array(
93760 32 2c 31 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 32 20 3d 3e 20 2,11),.18.=>.array(2,11),.22.=>.
93780 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 29 2c array(2,11),.24.=>.array(2,11)),
937a0 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 31 38 20 3d 3e .array(.14.=>.array(2,12),.18.=>
937c0 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c .array(2,12),.22.=>.array(2,12),
937e0 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d .24.=>.array(2,12)),.array(.14.=
93800 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 >.array(2,3),.18.=>.array(2,3),.
93820 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 22.=>.array(2,3),.24.=>.array(2,
93840 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 31 38 3)),.array(.14.=>.array(2,4),.18
93860 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 .=>.array(2,4),.22.=>.array(2,4)
93880 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d ,.24.=>.array(2,4)),.array(.14.=
938a0 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 >.array(2,5),.18.=>.array(2,5),.
938c0 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 22.=>.array(2,5),.24.=>.array(2,
938e0 35 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 31 38 5)),.array(.14.=>.array(2,1),.18
93900 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 .=>.array(2,1),.21.=>.array(2,1)
93920 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 ,.22.=>.array(2,1),.24.=>.array(
93940 32 2c 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 2,1)),.array(.14.=>.array(2,2),.
93960 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 18.=>.array(2,2),.22.=>.array(2,
93980 32 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 29 2c 20 61 72 72 61 79 28 20 33 20 2),.24.=>.array(2,2)),.array(.3.
939a0 3d 3e 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 =>.20,.4.=>.array(1,12),.18.=>.a
939c0 72 72 61 79 28 31 2c 31 37 29 2c 20 31 39 20 3d 3e 20 31 38 2c 20 32 30 20 3d 3e 20 31 39 20 29 rray(1,17),.19.=>.18,.20.=>.19.)
939e0 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 ,.array(.3.=>.5,.4.=>.array(1,12
93a00 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d ),.5.=>.6,.6.=>.array(1,13),.7.=
93a20 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 >.3,.8.=>.array(1,9),.9.=>.4,.10
93a40 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 .=>.array(1,10),.11.=>.array(1,1
93a60 31 29 2c 20 31 33 20 3d 3e 20 32 33 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 1),.13.=>.23,.15.=>.7,.16.=>.8,.
93a80 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 17.=>.array(1,14),.23.=>.array(1
93aa0 2c 31 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 31 29 2c 20 32 35 20 3d 3e 20 32 ,15),.24.=>.array(1,21),.25.=>.2
93ac0 32 20 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 36 29 29 2c 20 61 72 2.),.array(.1.=>.array(2,6)),.ar
93ae0 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 31 38 20 3d 3e 20 61 72 ray(.14.=>.array(2,13),.18.=>.ar
93b00 72 61 79 28 32 2c 31 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 32 34 ray(2,13),.22.=>.array(2,13),.24
93b20 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 .=>.array(2,13)),.array(.18.=>.a
93b40 72 72 61 79 28 31 2c 32 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 35 29 29 2c 20 rray(1,24),.22.=>.array(1,25)),.
93b60 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 36 29 2c 20 32 32 20 3d 3e 20 array(.18.=>.array(2,16),.22.=>.
93b80 61 72 72 61 79 28 32 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 32 31 20 3d 3e 20 61 72 72 61 79 array(2,16)),.array(.21.=>.array
93ba0 28 31 2c 32 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 (1,26)),.array(.14.=>.array(2,18
93bc0 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 ),.18.=>.array(2,18),.22.=>.arra
93be0 79 28 32 2c 31 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 29 2c 20 61 72 72 y(2,18),.24.=>.array(2,18)),.arr
93c00 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 ay(.22.=>.array(1,28),.24.=>.arr
93c20 61 79 28 31 2c 32 37 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c ay(1,27)),.array(.22.=>.array(2,
93c40 32 30 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 30 29 29 2c 20 61 72 72 61 79 28 20 20),.24.=>.array(2,20)),.array(.
93c60 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 14.=>.array(2,14),.18.=>.array(2
93c80 2c 31 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 32 34 20 3d 3e 20 61 ,14),.22.=>.array(2,14),.24.=>.a
93ca0 72 72 61 79 28 32 2c 31 34 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 32 30 2c 20 34 20 3d rray(2,14)),.array(.3.=>.20,.4.=
93cc0 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 32 30 20 3d 3e 20 32 39 20 29 2c 20 61 72 72 61 79 >.array(1,12),.20.=>.29.),.array
93ce0 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e (.3.=>.5,.4.=>.array(1,12),.5.=>
93d00 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 .6,.6.=>.array(1,13),.7.=>.3,.8.
93d20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 =>.array(1,9),.9.=>.4,.10.=>.arr
93d40 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 ay(1,10),.11.=>.array(1,11),.13.
93d60 3d 3e 20 33 30 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 =>.30,.15.=>.7,.16.=>.8,.17.=>.a
93d80 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 rray(1,14),.23.=>.array(1,15)),.
93da0 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 31 38 20 3d 3e 20 array(.14.=>.array(2,19),.18.=>.
93dc0 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 array(2,19),.22.=>.array(2,19),.
93de0 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 24.=>.array(2,19)),.array(.3.=>.
93e00 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 5,.4.=>.array(1,12),.5.=>.6,.6.=
93e20 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 >.array(1,13),.7.=>.3,.8.=>.arra
93e40 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 y(1,9),.9.=>.4,.10.=>.array(1,10
93e60 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 31 2c 20 ),.11.=>.array(1,11),.13.=>.31,.
93e80 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 15.=>.7,.16.=>.8,.17.=>.array(1,
93ea0 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 14),.23.=>.array(1,15)),.array(.
93ec0 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 18.=>.array(2,17),.22.=>.array(2
93ee0 2c 31 37 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 2c ,17)),.array(.18.=>.array(2,15),
93f00 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d .22.=>.array(2,15)),.array(.22.=
93f20 3e 20 61 72 72 61 79 28 32 2c 32 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 >.array(2,21),.24.=>.array(2,21)
93f40 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 20 3d ),.);..private.$defaultActions.=
93f60 20 61 72 72 61 79 28 0a 31 36 20 3d 3e 20 61 72 72 61 79 28 32 2c 20 36 29 0a 29 3b 0a 0a 0a 0a .array(.16.=>.array(2,.6).);....
93f80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6e 74 28 24 69 6e 70 75 74 29 0a 7b ..public.function.lint($input).{
93fa0 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 69 6e 70 75 74 29 3b 0a 7d 20 63 .try.{.$this->parse($input);.}.c
93fc0 61 74 63 68 20 28 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 atch.(ParsingException.$e).{.ret
93fe0 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f urn.$e;.}.}.......public.functio
94000 6e 20 70 61 72 73 65 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d n.parse($input).{.$this->stack.=
94020 20 61 72 72 61 79 28 30 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 .array(0);.$this->vstack.=.array
94040 28 6e 75 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 29 3b (null);.$this->lstack.=.array();
94060 0a 0a 24 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 30 3b 0a 24 ..$yytext.=.'';.$yylineno.=.0;.$
94080 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 30 3b 0a 24 54 45 yyleng.=.0;.$recovering.=.0;.$TE
940a0 52 52 4f 52 20 3d 20 32 3b 0a 24 45 4f 46 20 3d 20 31 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 78 65 RROR.=.2;.$EOF.=.1;..$this->lexe
940c0 72 20 3d 20 6e 65 77 20 4c 65 78 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 r.=.new.Lexer();.$this->lexer->s
940e0 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 etInput($input);..$yyloc.=.$this
94100 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d ->lexer->yylloc;.$this->lstack[]
94120 20 3d 20 24 79 79 6c 6f 63 3b 0a 0a 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 .=.$yyloc;..$symbol.=.null;.$pre
94140 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 73 74 61 74 65 20 3d 20 6e 75 6c ErrorSymbol.=.null;.$state.=.nul
94160 6c 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 61 20 3d 20 6e 75 6c 6c 3b 0a 24 72 l;.$action.=.null;.$a.=.null;.$r
94180 20 3d 20 6e 75 6c 6c 3b 0a 24 79 79 76 61 6c 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a .=.null;.$yyval.=.new.stdClass;.
941a0 24 70 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6e 65 77 53 74 61 74 $p.=.null;.$len.=.null;.$newStat
941c0 65 20 3d 20 6e 75 6c 6c 3b 0a 24 65 78 70 65 63 74 65 64 20 3d 20 6e 75 6c 6c 3b 0a 24 65 72 72 e.=.null;.$expected.=.null;.$err
941e0 53 74 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 24 73 Str.=.null;..while.(true).{...$s
94200 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d tate.=.$this->stack[count($this-
94220 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e >stack)-1];....if.(isset($this->
94240 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 24 61 63 74 69 defaultActions[$state])).{.$acti
94260 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 on.=.$this->defaultActions[$stat
94280 65 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c 20 3d 3d 20 6e 75 6c 6c e];.}.else.{.if.($symbol.==.null
942a0 29 20 7b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 20 ).{.$symbol.=.$this->lex();.}...
942c0 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 $action.=.isset($this->table[$st
942e0 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 ate][$symbol]).?.$this->table[$s
94300 74 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 tate][$symbol].:.false;.}....if.
94320 28 21 24 61 63 74 69 6f 6e 20 7c 7c 20 21 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 69 66 20 28 (!$action.||.!$action[0]).{.if.(
94340 21 24 72 65 63 6f 76 65 72 69 6e 67 29 20 7b 0a 0a 20 24 65 78 70 65 63 74 65 64 20 3d 20 61 72 !$recovering).{...$expected.=.ar
94360 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 ray();.foreach.($this->table[$st
94380 61 74 65 5d 20 61 73 20 24 70 20 3d 3e 20 24 69 67 6e 6f 72 65 29 20 7b 0a 69 66 20 28 69 73 73 ate].as.$p.=>.$ignore).{.if.(iss
943a0 65 74 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 29 20 26 26 20 24 70 20 et($this->terminals_[$p]).&&.$p.
943c0 3e 20 32 29 20 7b 0a 24 65 78 70 65 63 74 65 64 5b 5d 20 3d 20 22 27 22 20 2e 20 24 74 68 69 73 >.2).{.$expected[].=."'"...$this
943e0 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 20 2e 20 22 27 22 3b 0a 7d 0a 7d 0a 0a 24 65 72 ->terminals_[$p]..."'";.}.}..$er
94400 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 rStr.=.'Parse.error.on.line.'...
94420 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 6c ($yylineno+1)...":\n"...$this->l
94440 65 78 65 72 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 45 78 70 65 63 74 exer->showPosition()..."\nExpect
94460 65 64 20 6f 6e 65 20 6f 66 3a 20 22 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 ed.one.of:."...implode(',.',.$ex
94480 70 65 63 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 24 65 72 72 53 pected);.$this->parseError($errS
944a0 74 72 2c 20 61 72 72 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 tr,.array(.'text'.=>.$this->lexe
944c0 72 2d 3e 6d 61 74 63 68 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 74 68 69 r->match,.'token'.=>.!empty($thi
944e0 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d s->terminals_[$symbol]).?.$this-
94500 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 24 73 79 6d 62 6f 6c 2c 0a >terminals_[$symbol].:.$symbol,.
94520 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 'line'.=>.$this->lexer->yylineno
94540 2c 0a 27 6c 6f 63 27 20 3d 3e 20 24 79 79 6c 6f 63 2c 0a 27 65 78 70 65 63 74 65 64 27 20 3d 3e ,.'loc'.=>.$yyloc,.'expected'.=>
94560 20 24 65 78 70 65 63 74 65 64 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 72 65 63 6f 76 65 .$expected,.));.}....if.($recove
94580 72 69 6e 67 20 3d 3d 20 33 29 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c 20 3d 3d 20 24 45 4f 46 ring.==.3).{.if.($symbol.==.$EOF
945a0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 ).{.throw.new.ParsingException($
945c0 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a errStr.?:.'Parsing.halted.');.}.
945e0 0a 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e ...$yyleng.=.$this->lexer->yylen
94600 67 3b 0a 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 g;.$yytext.=.$this->lexer->yytex
94620 74 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c t;.$yylineno.=.$this->lexer->yyl
94640 69 6e 65 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 ineno;.$yyloc.=.$this->lexer->yy
94660 6c 6c 6f 63 3b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a lloc;.$symbol.=.$this->lex();.}.
94680 0a 0a 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 69 66 20 28 61 72 72 61 79 5f 6b 65 ...while.(true).{...if.(array_ke
946a0 79 5f 65 78 69 73 74 73 28 24 54 45 52 52 4f 52 2c 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 y_exists($TERROR,.$this->table[$
946c0 73 74 61 74 65 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 73 74 61 74 65 20 3d state])).{.break;.}.if.($state.=
946e0 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f =.0).{.throw.new.ParsingExceptio
94700 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 20 68 61 6c 74 65 64 2e 27 29 3b n($errStr.?:.'Parsing.halted.');
94720 0a 7d 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 31 29 3b 0a 24 73 74 61 74 65 20 3d 20 .}.$this->popStack(1);.$state.=.
94740 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 $this->stack[count($this->stack)
94760 2d 31 5d 3b 0a 7d 0a 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 24 73 79 6d 62 6f -1];.}..$preErrorSymbol.=.$symbo
94780 6c 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 54 45 52 52 4f 52 3b 20 0a 20 24 73 74 61 74 65 l;...$symbol.=.$TERROR;...$state
947a0 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 .=.$this->stack[count($this->sta
947c0 63 6b 29 2d 31 5d 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 ck)-1];.$action.=.isset($this->t
947e0 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d 29 20 3f 20 24 74 68 69 73 2d 3e able[$state][$TERROR]).?.$this->
94800 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d 20 3a 20 66 61 6c 73 65 3b 0a table[$state][$TERROR].:.false;.
94820 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 33 3b 20 0a 20 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 61 $recovering.=.3;...}....if.(is_a
94840 72 72 61 79 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 26 26 20 63 6f 75 6e 74 28 24 61 63 74 69 6f rray($action[0]).&&.count($actio
94860 6e 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 n).>.1).{.throw.new.ParsingExcep
94880 74 69 6f 6e 28 27 50 61 72 73 65 20 45 72 72 6f 72 3a 20 6d 75 6c 74 69 70 6c 65 20 61 63 74 69 tion('Parse.Error:.multiple.acti
948a0 6f 6e 73 20 70 6f 73 73 69 62 6c 65 20 61 74 20 73 74 61 74 65 3a 20 27 20 2e 20 24 73 74 61 74 ons.possible.at.state:.'...$stat
948c0 65 20 2e 20 27 2c 20 74 6f 6b 65 6e 3a 20 27 20 2e 20 24 73 79 6d 62 6f 6c 29 3b 0a 7d 0a 0a 73 e...',.token:.'...$symbol);.}..s
948e0 77 69 74 63 68 20 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 63 61 73 65 20 31 3a 20 0a 20 24 witch.($action[0]).{.case.1:...$
94900 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 73 79 6d 62 6f 6c 3b 0a 24 74 68 69 73 2d 3e this->stack[].=.$symbol;.$this->
94920 76 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b vstack[].=.$this->lexer->yytext;
94940 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d .$this->lstack[].=.$this->lexer-
94960 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 61 63 74 69 6f >yylloc;.$this->stack[].=.$actio
94980 6e 5b 31 5d 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 21 24 70 72 n[1];...$symbol.=.null;.if.(!$pr
949a0 65 45 72 72 6f 72 53 79 6d 62 6f 6c 29 20 7b 20 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 eErrorSymbol).{...$yyleng.=.$thi
949c0 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 s->lexer->yyleng;.$yytext.=.$thi
949e0 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 s->lexer->yytext;.$yylineno.=.$t
94a00 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 his->lexer->yylineno;.$yyloc.=.$
94a20 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 69 66 20 28 24 72 65 63 6f 76 65 this->lexer->yylloc;.if.($recove
94a40 72 69 6e 67 20 3e 20 30 29 20 7b 0a 24 72 65 63 6f 76 65 72 69 6e 67 2d 2d 3b 0a 7d 0a 7d 20 65 ring.>.0).{.$recovering--;.}.}.e
94a60 6c 73 65 20 7b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f lse.{...$symbol.=.$preErrorSymbo
94a80 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 62 72 65 l;.$preErrorSymbol.=.null;.}.bre
94aa0 61 6b 3b 0a 0a 63 61 73 65 20 32 3a 20 0a 20 24 6c 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f ak;..case.2:...$len.=.$this->pro
94ac0 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e 5b 31 5d 5d 5b 31 5d 3b 0a 0a 0a 20 24 79 79 ductions_[$action[1]][1];....$yy
94ae0 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 63 6f 75 6e 74 val->token.=.$this->vstack[count
94b00 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 29 20 2d 20 24 6c 65 6e 5d 3b 20 0a 20 0a 20 24 79 79 ($this->vstack).-.$len];.....$yy
94b20 76 61 6c 2d 3e 73 74 6f 72 65 20 3d 20 61 72 72 61 79 28 20 0a 20 27 66 69 72 73 74 5f 6c 69 6e val->store.=.array(...'first_lin
94b40 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d e'.=>.$this->lstack[count($this-
94b60 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 6c >lstack).-.($len.?:.1)]['first_l
94b80 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 ine'],.'last_line'.=>.$this->lst
94ba0 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 31 5d 5b 27 6c ack[count($this->lstack).-.1]['l
94bc0 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 ast_line'],.'first_column'.=>.$t
94be0 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 his->lstack[count($this->lstack)
94c00 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c .-.($len.?:.1)]['first_column'],
94c20 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b .'last_column'.=>.$this->lstack[
94c40 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f count($this->lstack).-.1]['last_
94c60 63 6f 6c 75 6d 6e 27 5d 2c 0a 29 3b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d column'],.);.$r.=.$this->perform
94c80 41 63 74 69 6f 6e 28 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 79 79 6c 65 6e 67 2c Action($yyval,.$yytext,.$yyleng,
94ca0 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 61 63 74 69 6f 6e 5b 31 5d 2c 20 24 74 68 69 73 2d 3e 76 .$yylineno,.$action[1],.$this->v
94cc0 73 74 61 63 6b 2c 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 3b 0a 0a 69 66 20 28 21 24 72 20 stack,.$this->lstack);..if.(!$r.
94ce0 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 instanceof.Undefined).{.return.$
94d00 72 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 r;.}..if.($len).{.$this->popStac
94d20 6b 28 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 k($len);.}..$this->stack[].=.$th
94d40 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e 5b 31 5d 5d 5b 30 5d 3b is->productions_[$action[1]][0];
94d60 20 0a 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 74 6f 6b ...$this->vstack[].=.$yyval->tok
94d80 65 6e 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 76 61 6c 2d 3e 73 74 en;.$this->lstack[].=.$yyval->st
94da0 6f 72 65 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 74 ore;.$newState.=.$this->table[$t
94dc0 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 32 his->stack[count($this->stack)-2
94de0 5d 5d 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 61 ]][$this->stack[count($this->sta
94e00 63 6b 29 2d 31 5d 5d 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 6e 65 77 53 74 ck)-1]];.$this->stack[].=.$newSt
94e20 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 33 3a 20 0a 20 72 65 74 75 72 6e 20 74 72 ate;.break;..case.3:...return.tr
94e40 75 65 3b 0a 7d 0a 7d 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ue;.}.}.return.true;.}..protecte
94e60 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 d.function.parseError($str,.$has
94e80 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 h).{.throw.new.ParsingException(
94ea0 24 73 74 72 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 70 72 69 76 61 74 65 20 66 $str,.$hash);.}........private.f
94ec0 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 73 74 64 43 6c 61 73 73 20 24 unction.performAction(stdClass.$
94ee0 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 yyval,.$yytext,.$yyleng,.$yyline
94f00 6e 6f 2c 20 24 79 79 73 74 61 74 65 2c 20 26 24 74 6f 6b 65 6e 73 29 20 7b 0a 0a 20 24 6c 65 6e no,.$yystate,.&$tokens).{...$len
94f20 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 20 2d 20 31 3b 0a 73 77 69 74 63 68 20 28 24 .=.count($tokens).-.1;.switch.($
94f40 79 79 73 74 61 74 65 29 20 7b 0a 63 61 73 65 20 31 3a 0a 24 79 79 74 65 78 74 20 3d 70 72 65 67 yystate).{.case.1:.$yytext.=preg
94f60 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 3f 3a 5c 5c 5c 5c 5b 22 62 66 6e _replace_callback('{(?:\\\\["bfn
94f80 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b 34 7d 29 7d 27 2c rt/\\\\]|\\\\u[a-fA-F0-9]{4})}',
94fa0 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 .array($this,.'stringInterpolati
94fc0 6f 6e 27 29 2c 20 24 79 79 74 65 78 74 29 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 on'),.$yytext);.$yyval->token.=.
94fe0 24 79 79 74 65 78 74 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 69 66 20 28 73 74 72 70 $yytext;.break;.case.2:.if.(strp
95000 6f 73 28 24 79 79 74 65 78 74 2c 20 27 65 27 29 20 21 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 73 74 os($yytext,.'e').!==.false.||.st
95020 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 45 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a rpos($yytext,.'E').!==.false).{.
95040 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 6c 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 $yyval->token.=.floatval($yytext
95060 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 73 74 72 70 );.}.else.{.$yyval->token.=.strp
95080 6f 73 28 24 79 79 74 65 78 74 2c 20 27 2e 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 69 6e 74 os($yytext,.'.').===.false.?.int
950a0 76 61 6c 28 24 79 79 74 65 78 74 29 20 3a 20 66 6c 6f 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 val($yytext).:.floatval($yytext)
950c0 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 33 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e ;.}.break;.case.3:.$yyval->token
950e0 20 3d 20 6e 75 6c 6c 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 34 3a 0a 24 79 79 76 61 6c 2d 3e .=.null;.break;.case.4:.$yyval->
95100 74 6f 6b 65 6e 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 35 3a 0a 24 79 79 token.=.true;.break;.case.5:.$yy
95120 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 val->token.=.false;.break;.case.
95140 36 3a 0a 72 65 74 75 72 6e 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 6:.return.$yyval->token.=.$token
95160 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 63 61 73 65 20 31 33 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 s[$len-1];.case.13:.$yyval->toke
95180 6e 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 n.=.new.stdClass;.break;.case.14
951a0 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 :.$yyval->token.=.$tokens[$len-1
951c0 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e ];.break;.case.15:.$yyval->token
951e0 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e .=.array($tokens[$len-2],.$token
95200 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 36 3a 0a 24 79 79 76 61 6c s[$len]);.break;.case.16:.$yyval
95220 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 70 72 6f 70 65 72 74 ->token.=.new.stdClass;.$propert
95240 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f y.=.$tokens[$len][0].===.''.?.'_
95260 65 6d 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 24 79 79 76 empty_'.:.$tokens[$len][0];.$yyv
95280 61 6c 2d 3e 74 6f 6b 65 6e 2d 3e 24 70 72 6f 70 65 72 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 al->token->$property.=.$tokens[$
952a0 6c 65 6e 5d 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 37 3a 0a 24 79 79 76 61 6c 2d len][1];.break;.case.17:.$yyval-
952c0 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 24 74 6f 6b 65 6e >token.=.$tokens[$len-2];.$token
952e0 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 7d 20 3d 20 s[$len-2]->{$tokens[$len][0]}.=.
95300 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 $tokens[$len][1];.break;.case.18
95320 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 62 72 65 61 6b :.$yyval->token.=.array();.break
95340 3b 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 ;.case.19:.$yyval->token.=.$toke
95360 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 30 3a 0a 24 79 79 76 ns[$len-1];.break;.case.20:.$yyv
95380 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 al->token.=.array($tokens[$len])
953a0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 ;.break;.case.21:.$tokens[$len-2
953c0 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b ][].=.$tokens[$len];.$yyval->tok
953e0 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a en.=.$tokens[$len-2];.break;.}..
95400 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 return.new.Undefined();.}..priva
95420 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 te.function.stringInterpolation(
95440 24 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 $match).{.switch.($match[0]).{.c
95460 61 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c ase.'\\\\':.return.'\\';.case.'\
95480 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 "':.return.'"';.case.'\b':.retur
954a0 6e 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 n.chr(8);.case.'\f':.return.chr(
954c0 31 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 12);.case.'\n':.return."\n";.cas
954e0 65 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a e.'\r':.return."\r";.case.'\t':.
95500 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 return."\t";.case.'\/':.return."
95520 2f 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f /";.default:.return.html_entity_
95540 64 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 decode('&#x'.ltrim(substr($match
95560 5b 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a [0],.2),.'0').';',.0,.'UTF-8');.
95580 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 53 74 61 63 6b 28 24 }.}..private.function.popStack($
955a0 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 n).{.$this->stack.=.array_slice(
955c0 24 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 $this->stack,.0,.-.(2.*.$n));.$t
955e0 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d his->vstack.=.array_slice($this-
95600 3e 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b >vstack,.0,.-.$n);.$this->lstack
95620 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c .=.array_slice($this->lstack,.0,
95640 20 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 .-.$n);.}..private.function.lex(
95660 29 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 ).{.$token.=.$this->lexer->lex()
95680 20 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 .?:.1;.....if.(!is_numeric($toke
956a0 6e 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 n)).{.$token.=.isset($this->symb
956c0 6f 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 ols[$token]).?.$this->symbols[$t
956e0 6f 6b 65 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b oken].:.$token;.}.return.$token;
95700 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
95720 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 0a eld\JsonLint;.......class.Lexer.
95740 7b 0a 70 72 69 76 61 74 65 20 24 45 4f 46 20 3d 20 31 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6c {.private.$EOF.=.1;.private.$rul
95760 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e 20 es.=.array(.0.=>.'/^\s+/',.1.=>.
95780 27 2f 5e 2d 3f 28 5b 30 2d 39 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 5d '/^-?([0-9]|[1-9][0-9]+)(\.[0-9]
957a0 2b 29 3f 28 5b 65 45 5d 5b 2b 2d 5d 3f 5b 30 2d 39 5d 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e 20 +)?([eE][+-]?[0-9]+)?\b/',.2.=>.
957c0 27 7b 5e 22 28 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 '{^"(\\\\["bfnrt/\\\\]|\\\\u[a-f
957e0 41 2d 46 30 2d 39 5d 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c A-F0-9]{4}|[^\0-\x09\x0a-\x1f\\\
95800 5c 22 5d 29 2a 22 7d 27 2c 0a 33 20 3d 3e 20 27 2f 5e 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e \"])*"}',.3.=>.'/^\{/',.4.=>.'/^
95820 5c 7d 2f 27 2c 0a 35 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 \}/',.5.=>.'/^\[/',.6.=>.'/^\]/'
95840 2c 0a 37 20 3d 3e 20 27 2f 5e 2c 2f 27 2c 0a 38 20 3d 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e ,.7.=>.'/^,/',.8.=>.'/^:/',.9.=>
95860 20 27 2f 5e 74 72 75 65 5c 62 2f 27 2c 0a 31 30 20 3d 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 .'/^true\b/',.10.=>.'/^false\b/'
95880 2c 0a 31 31 20 3d 3e 20 27 2f 5e 6e 75 6c 6c 5c 62 2f 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f ,.11.=>.'/^null\b/',.12.=>.'/^$/
958a0 27 2c 0a 31 33 20 3d 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f ',.13.=>.'/^./',.);..private.$co
958c0 6e 64 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 nditions.=.array(."INITIAL".=>.a
958e0 72 72 61 79 28 0a 22 72 75 6c 65 73 22 20 3d 3e 20 61 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 rray(."rules".=>.array(0,1,2,3,4
95900 2c 35 2c 36 2c 37 2c 38 2c 39 2c 31 30 2c 31 31 2c 31 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 ,5,6,7,8,9,10,11,12,13),."inclus
95920 69 76 65 22 20 3d 3e 20 74 72 75 65 2c 0a 29 2c 0a 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ive".=>.true,.),.);..public.func
95940 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 3b tion.lex().{.$r.=.$this->next();
95960 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b .if.(!$r.instanceof.Undefined).{
95980 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 65 78 28 .return.$r;.}.return.$this->lex(
959a0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 );.}..public.function.setInput($
959c0 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b input).{.$this->_input.=.$input;
959e0 0a 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 5f 6c 65 73 73 20 3d 20 24 .$this->_more.=.$this->_less.=.$
95a00 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e this->done.=.false;.$this->yylin
95a20 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e eno.=.$this->yyleng.=.0;.$this->
95a40 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d yytext.=.$this->matched.=.$this-
95a60 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 >match.=.'';.$this->conditionSta
95a80 63 6b 20 3d 20 61 72 72 61 79 28 27 49 4e 49 54 49 41 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 79 ck.=.array('INITIAL');.$this->yy
95aa0 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 lloc.=.array('first_line'.=>.1,.
95ac0 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 27 'first_column'.=>.0,.'last_line'
95ae0 20 3d 3e 20 31 2c 20 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 74 .=>.1,.'last_column'.=>.0);..ret
95b00 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 urn.$this;.}..public.function.sh
95b20 6f 77 50 6f 73 69 74 69 6f 6e 28 29 0a 7b 0a 24 70 72 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 73 owPosition().{.$pre.=.$this->pas
95b40 74 49 6e 70 75 74 28 29 3b 0a 24 63 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 tInput();.$c.=.str_repeat('-',.s
95b60 74 72 6c 65 6e 28 24 70 72 65 29 29 3b 20 0a 20 72 65 74 75 72 6e 20 24 70 72 65 20 2e 20 24 74 trlen($pre));...return.$pre...$t
95b80 68 69 73 2d 3e 75 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 his->upcomingInput()..."\n"...$c
95ba0 20 2e 20 22 5e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 ..."^";.}..protected.function.pa
95bc0 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 rseError($str,.$hash).{.throw.ne
95be0 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 w.\Exception($str);.}..private.f
95c00 75 6e 63 74 69 6f 6e 20 69 6e 70 75 74 28 29 0a 7b 0a 24 63 68 20 3d 20 24 74 68 69 73 2d 3e 5f unction.input().{.$ch.=.$this->_
95c20 69 6e 70 75 74 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2b 3d 20 24 63 68 3b 0a input[0];.$this->yytext.+=.$ch;.
95c40 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2b 2b 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2b 3d $this->yyleng++;.$this->match.+=
95c60 20 24 63 68 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 2b 3d 20 24 63 68 3b 0a 69 66 20 .$ch;.$this->matched.+=.$ch;.if.
95c80 28 73 74 72 70 6f 73 28 24 63 68 2c 20 22 5c 6e 22 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a (strpos($ch,."\n").!==.false).{.
95ca0 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 2b 3b 0a 7d 0a 61 72 72 61 79 5f 73 68 69 66 74 $this->yylineno++;.}.array_shift
95cc0 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 29 3b 20 0a 20 72 65 74 75 72 6e 20 24 63 68 3b 0a 7d ($this->_input);...return.$ch;.}
95ce0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 6e 70 75 74 28 24 63 68 29 0a 7b 0a ..private.function.unput($ch).{.
95d00 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 24 63 68 20 2e 20 24 74 68 69 73 2d 3e 5f 69 6e $this->_input.=.$ch...$this->_in
95d20 70 75 74 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 put;.return.$this;.}..private.fu
95d40 6e 63 74 69 6f 6e 20 6d 6f 72 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 74 nction.more().{.$this->_more.=.t
95d60 72 75 65 3b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 rue;.return.$this;.}..private.fu
95d80 6e 63 74 69 6f 6e 20 70 61 73 74 49 6e 70 75 74 28 29 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 nction.pastInput().{.$past.=.sub
95da0 73 74 72 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 str($this->matched,.0,.strlen($t
95dc0 68 69 73 2d 3e 6d 61 74 63 68 65 64 29 20 2d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 his->matched).-.strlen($this->ma
95de0 74 63 68 29 29 3b 0a 72 65 74 75 72 6e 20 28 73 74 72 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 tch));.return.(strlen($past).>.2
95e00 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 0.?.'...'.:.'')...str_replace("\
95e20 6e 22 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 70 61 73 74 2c 20 2d 32 30 29 29 3b 0a 7d 0a 0a n",.'',.substr($past,.-20));.}..
95e40 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 private.function.upcomingInput()
95e60 0a 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 3b 0a 69 66 20 28 73 74 72 .{.$next.=.$this->match;.if.(str
95e80 6c 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 20 7b 0a 24 6e 65 78 74 20 2b 3d 20 73 75 62 73 len($next).<.20).{.$next.+=.subs
95ea0 74 72 28 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 2c 20 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e tr($this->_input,.0,.20.-.strlen
95ec0 28 24 6e 65 78 74 29 29 3b 0a 7d 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 ($next));.}.return.str_replace("
95ee0 5c 6e 22 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 6e 65 78 74 2c 20 30 2c 20 32 30 29 20 2e 20 \n",.'',.substr($next,.0,.20)...
95f00 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 (strlen($next).>.20.?.'...'.:.''
95f20 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b ));.}..private.function.next().{
95f40 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 6f 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .if.($this->done).{.return.$this
95f60 2d 3e 45 4f 46 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 29 20 7b 0a 24 ->EOF;.}.if.(!$this->_input).{.$
95f80 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e this->done.=.true;.}..$token.=.n
95fa0 75 6c 6c 3b 0a 24 6d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b ull;.$match.=.null;.$col.=.null;
95fc0 0a 24 6c 69 6e 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 5f 6d 6f .$lines.=.null;..if.(!$this->_mo
95fe0 72 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d re).{.$this->yytext.=.'';.$this-
96000 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e >match.=.'';.}..$rules.=.$this->
96020 5f 63 75 72 72 65 6e 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 _currentRules();.$rulesLen.=.cou
96040 6e 74 28 24 72 75 6c 65 73 29 3b 0a 0a 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 nt($rules);..for.($i=0;.$i.<.$ru
96060 6c 65 73 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 lesLen;.$i++).{.if.(preg_match($
96080 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 72 75 6c 65 73 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e this->rules[$rules[$i]],.$this->
960a0 5f 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c _input,.$match)).{.preg_match_al
960c0 6c 28 27 2f 5c 6e 2e 2a 2f 27 2c 20 24 6d 61 74 63 68 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a l('/\n.*/',.$match[0],.$lines);.
960e0 24 6c 69 6e 65 73 20 3d 20 24 6c 69 6e 65 73 5b 30 5d 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 $lines.=.$lines[0];.if.($lines).
96100 7b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 {.$this->yylineno.+=.count($line
96120 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 s);.}..$this->yylloc.=.array(.'f
96140 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 irst_line'.=>.$this->yylloc['las
96160 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e t_line'],.'last_line'.=>.$this->
96180 79 79 6c 69 6e 65 6e 6f 2b 31 2c 0a 27 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 yylineno+1,.'first_column'.=>.$t
961a0 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 his->yylloc['last_column'],.'las
961c0 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 6c 69 6e 65 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 t_column'.=>.$lines.?.strlen($li
961e0 6e 65 73 5b 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 nes[count($lines).-.1]).-.1.:.$t
96200 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 his->yylloc['last_column'].+.str
96220 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 len($match[0]),.);.$this->yytext
96240 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 ..=.$match[0];.$this->match..=.$
96260 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 73 20 3d 20 24 6d 61 74 63 match[0];.$this->matches.=.$matc
96280 68 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d h;.$this->yyleng.=.strlen($this-
962a0 3e 79 79 74 65 78 74 29 3b 0a 24 74 68 69 73 2d 3e 5f 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a >yytext);.$this->_more.=.false;.
962c0 24 74 68 69 73 2d 3e 5f 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 5f 69 $this->_input.=.substr($this->_i
962e0 6e 70 75 74 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 29 3b 0a 24 74 68 69 73 2d nput,.strlen($match[0]));.$this-
96300 3e 6d 61 74 63 68 65 64 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 3d 20 >matched..=.$match[0];.$token.=.
96320 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 72 75 6c 65 73 5b 24 69 5d 2c $this->performAction($rules[$i],
96340 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 .$this->conditionStack[count($th
96360 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 29 3b 0a 69 66 20 28 24 74 6f is->conditionStack)-1]);.if.($to
96380 6b 65 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 72 65 74 75 72 6e 20 6e ken).{.return.$token;.}.return.n
963a0 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ew.Undefined();.}.}..if.($this->
963c0 5f 69 6e 70 75 74 20 3d 3d 3d 20 22 22 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 _input.===."").{.return.$this->E
963e0 4f 46 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 0a 27 4c 65 78 69 63 OF;.}..$this->parseError(.'Lexic
96400 61 6c 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 74 68 69 73 2d 3e 79 79 6c al.error.on.line.'...($this->yyl
96420 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 2e 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 20 74 65 78 74 2e ineno+1)..."..Unrecognized.text.
96440 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 72 72 \n"...$this->showPosition(),.arr
96460 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 22 22 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e 75 6c ay(.'text'.=>."",.'token'.=>.nul
96480 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 29 0a l,.'line'.=>.$this->yylineno,.).
964a0 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 65 67 69 6e 28 24 63 6f );.}..private.function.begin($co
964c0 6e 64 69 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b ndition).{.$this->conditionStack
964e0 5b 5d 20 3d 20 24 63 6f 6e 64 69 74 69 6f 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 [].=.$condition;.}..private.func
96500 74 69 6f 6e 20 70 6f 70 53 74 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 tion.popState().{.return.array_p
96520 6f 70 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 3b 0a 7d 0a 0a 70 72 op($this->conditionStack);.}..pr
96540 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 5f 63 75 72 72 65 6e 74 52 75 6c 65 73 28 29 0a 7b ivate.function._currentRules().{
96560 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 73 5b 24 74 68 69 73 2d .return.$this->conditions[$this-
96580 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e >conditionStack[count($this->con
965a0 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 5d 5b 27 72 75 6c 65 73 27 5d 3b 0a 7d 0a 0a 70 72 ditionStack)-1]]['rules'];.}..pr
965c0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 61 76 ivate.function.performAction($av
965e0 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f 6e 73 2c 20 24 59 59 5f 53 54 41 52 oiding_name_collisions,.$YY_STAR
96600 54 29 0a 7b 0a 24 59 59 53 54 41 54 45 20 3d 20 24 59 59 5f 53 54 41 52 54 3b 0a 73 77 69 74 63 T).{.$YYSTATE.=.$YY_START;.switc
96620 68 20 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f 6e 73 29 20 7b 0a h.($avoiding_name_collisions).{.
96640 63 61 73 65 20 30 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 3a 0a 72 65 74 75 72 6e 20 36 3b case.0:.break;.case.1:.return.6;
96660 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 3d 20 .break;.case.2:.$this->yytext.=.
96680 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 79 79 74 65 78 74 2c 20 31 2c 20 24 74 68 69 73 2d 3e substr($this->yytext,.1,.$this->
966a0 79 79 6c 65 6e 67 2d 32 29 3b 0a 72 65 74 75 72 6e 20 34 3b 0a 63 61 73 65 20 33 3a 0a 72 65 74 yyleng-2);.return.4;.case.3:.ret
966c0 75 72 6e 20 31 37 3b 0a 63 61 73 65 20 34 3a 0a 72 65 74 75 72 6e 20 31 38 3b 0a 63 61 73 65 20 urn.17;.case.4:.return.18;.case.
966e0 35 3a 0a 72 65 74 75 72 6e 20 32 33 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 32 34 3b 5:.return.23;.case.6:.return.24;
96700 0a 63 61 73 65 20 37 3a 0a 72 65 74 75 72 6e 20 32 32 3b 0a 63 61 73 65 20 38 3a 0a 72 65 74 75 .case.7:.return.22;.case.8:.retu
96720 72 6e 20 32 31 3b 0a 63 61 73 65 20 39 3a 0a 72 65 74 75 72 6e 20 31 30 3b 0a 63 61 73 65 20 31 rn.21;.case.9:.return.10;.case.1
96740 30 3a 0a 72 65 74 75 72 6e 20 31 31 3b 0a 63 61 73 65 20 31 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0:.return.11;.case.11:.return.8;
96760 0a 63 61 73 65 20 31 32 3a 0a 72 65 74 75 72 6e 20 31 34 3b 0a 63 61 73 65 20 31 33 3a 0a 72 65 .case.12:.return.14;.case.13:.re
96780 74 75 72 6e 20 27 49 4e 56 41 4c 49 44 27 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a turn.'INVALID';.}.}.}.<?php.....
967a0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a ......namespace.Seld\JsonLint;..
967c0 63 6c 61 73 73 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c class.ParsingException.extends.\
967e0 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 74 61 69 6c 73 3b 0a Exception.{.protected.$details;.
96800 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 .public.function.__construct($me
96820 73 73 61 67 65 2c 20 24 64 65 74 61 69 6c 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 ssage,.$details.=.array()).{.$th
96840 69 73 2d 3e 64 65 74 61 69 6c 73 20 3d 20 24 64 65 74 61 69 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a is->details.=.$details;.parent::
96860 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 __construct($message);.}..public
96880 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 74 61 69 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getDetails().{.return.
968a0 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 $this->details;.}.}<?php..namesp
968c0 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a ace.JsonSchema\Constraints;.....
968e0 0a 0a 0a 63 6c 61 73 73 20 55 6e 64 65 66 69 6e 65 64 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 ...class.Undefined.extends.Const
96900 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 raint.{....function.check($value
96920 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 ,.$schema.=.null,.$path.=.null,.
96940 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 $i.=.null).{.if.(!is_object($sch
96960 65 6d 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 ema)).{.return;.}..$path.=.$this
96980 2d 3e 69 6e 63 72 65 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 20 24 ->incrementPath($path,.$i);....$
969a0 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 this->validateCommonProperties($
969c0 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 value,.$schema,.$path);....$this
969e0 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c ->validateTypes($value,.$schema,
96a00 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$path,.$i);...}..........public
96a20 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 .function.validateTypes($value,.
96a40 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 $schema.=.null,.$path.=.null,.$i
96a60 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 .=.null).{...if.(is_array($value
96a80 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 )).{.$this->checkArray($value,.$
96aa0 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f schema,.$path,.$i);.}....if.(is_
96ac0 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d object($value).&&.isset($schema-
96ae0 3e 70 72 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4f 62 6a 65 >properties)).{.$this->checkObje
96b00 63 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 2c 20 ct($value,.$schema->properties,.
96b20 24 70 61 74 68 2c 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c $path,.isset($schema->additional
96b40 50 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 Properties).?.$schema->additiona
96b60 6c 50 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 lProperties.:.null);.}....if.(is
96b80 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 53 _string($value)).{.$this->checkS
96ba0 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 tring($value,.$schema,.$path,.$i
96bc0 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 );.}....if.(is_numeric($value)).
96be0 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 {.$this->checkNumber($value,.$sc
96c00 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 hema,.$path,.$i);.}....if.(isset
96c20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 45 ($schema->enum)).{.$this->checkE
96c40 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b num($value,.$schema,.$path,.$i);
96c60 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .}.}..........protected.function
96c80 20 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 .validateCommonProperties($value
96ca0 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 ,.$schema.=.null,.$path.=.null,.
96cc0 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 $i.=.null).{...if.(isset($schema
96ce0 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 ->extends)).{.$this->checkUndefi
96d00 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 2c 20 24 70 ned($value,.$schema->extends,.$p
96d20 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 ath,.$i);.}....if.(is_object($va
96d40 6c 75 65 29 20 26 26 20 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 4f 66 20 55 6e 64 65 66 69 lue).&&.$value.instanceOf.Undefi
96d60 6e 65 64 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 ned).{.if.(isset($schema->requir
96d80 65 64 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 ed).&&.$schema->required).{.$thi
96da0 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6d 69 73 73 69 6e 67 20 61 s->addError($path,."is.missing.a
96dc0 6e 64 20 69 74 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a nd.it.is.required");.}.}.else.{.
96de0 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 $this->checkType($value,.$schema
96e00 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 ,.$path);.}....if.(isset($schema
96e20 2d 3e 64 69 73 61 6c 6c 6f 77 29 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 ->disallow)).{.$initErrors.=.$th
96e40 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e is->getErrors();..$this->checkUn
96e60 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f defined($value,.$schema->disallo
96e80 77 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 w,.$path);....if.(count($this->g
96ea0 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 etErrors()).==.count($initErrors
96ec0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 20 64 69 )).{.$this->addError($path,.".di
96ee0 73 61 6c 6c 6f 77 65 64 20 76 61 6c 75 65 20 77 61 73 20 6d 61 74 63 68 65 64 22 29 3b 0a 7d 20 sallowed.value.was.matched");.}.
96f00 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f else.{.$this->errors.=.$initErro
96f20 72 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e rs;.}.}.}.}<?php..namespace.Json
96f40 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 Schema\Constraints;........class
96f60 20 54 79 70 65 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 .Type.extends.Constraint.{....fu
96f80 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 2c 20 24 73 63 68 nction.check($value.=.null,.$sch
96fa0 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e ema.=.null,.$path.=.null,.$i.=.n
96fc0 75 6c 6c 29 0a 7b 0a 24 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 74 79 ull).{.$type.=.isset($schema->ty
96fe0 70 65 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 20 3a 20 6e 75 6c 6c 3b 0a 24 69 73 56 pe).?.$schema->type.:.null;.$isV
97000 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 alid.=.true;..if.(is_array($type
97020 29 29 20 7b 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 66 61 6c 73 65 )).{...$validatedOneType.=.false
97040 3b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 ;.$errors.=.array();.foreach.($t
97060 79 70 65 20 61 73 20 24 74 70 29 20 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 ype.as.$tp).{.$validator.=.new.T
97080 79 70 65 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 73 75 62 53 63 68 65 6d ype($this->checkMode);.$subSchem
970a0 61 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d a.=.new.\stdClass();.$subSchema-
970c0 3e 74 79 70 65 20 3d 20 24 74 70 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 >type.=.$tp;.$validator->check($
970e0 76 61 6c 75 65 2c 20 24 73 75 62 53 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b value,.$subSchema,.$path,.null);
97100 0a 24 65 72 72 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 .$error.=.$validator->getErrors(
97120 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 65 72 72 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 );..if.(!count($error)).{.$valid
97140 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 atedOneType.=.true;.break;.}.els
97160 65 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 7d 0a 69 66 20 28 21 24 e.{.$errors.=.$error;.}.}.if.(!$
97180 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 validatedOneType).{.return.$this
971a0 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 ->addErrors($errors);.}.}.elseif
971c0 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 74 79 70 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 .(is_object($type)).{.$this->che
971e0 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 2c 20 24 70 61 74 68 ckUndefined($value,.$type,.$path
97200 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 73 56 61 6c 69 64 20 3d 20 24 74 68 69 73 2d 3e 76 61 );.}.else.{.$isValid.=.$this->va
97220 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 lidateType($value,.$type);.}..if
97240 20 28 24 69 73 56 61 6c 69 64 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 .($isValid.===.false).{.$this->a
97260 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 20 2e ddError($path,.gettype($value)..
97280 20 22 20 76 61 6c 75 65 20 66 6f 75 6e 64 2c 20 62 75 74 20 61 20 22 20 2e 20 24 74 79 70 65 20 .".value.found,.but.a."...$type.
972a0 2e 20 22 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ..".is.required");.}.}..........
972c0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 28 protected.function.validateType(
972e0 24 76 61 6c 75 65 2c 20 24 74 79 70 65 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 79 70 65 29 20 7b $value,.$type).{...if.(!$type).{
97300 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 .return.true;.}..switch.($type).
97320 7b 0a 63 61 73 65 20 27 69 6e 74 65 67 65 72 27 20 3a 0a 72 65 74 75 72 6e 20 28 69 6e 74 65 67 {.case.'integer'.:.return.(integ
97340 65 72 29 24 76 61 6c 75 65 20 3d 3d 20 24 76 61 6c 75 65 20 3f 20 74 72 75 65 20 3a 20 69 73 5f er)$value.==.$value.?.true.:.is_
97360 69 6e 74 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 6e 75 6d 62 65 72 27 20 3a 0a 72 65 74 int($value);.case.'number'.:.ret
97380 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 62 6f urn.is_numeric($value);.case.'bo
973a0 6f 6c 65 61 6e 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b olean'.:.return.is_bool($value);
973c0 0a 63 61 73 65 20 27 6f 62 6a 65 63 74 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6f 62 6a 65 63 .case.'object'.:.return.is_objec
973e0 74 28 24 76 61 6c 75 65 29 3b 0a 0a 20 63 61 73 65 20 27 61 72 72 61 79 27 20 3a 0a 72 65 74 75 t($value);...case.'array'.:.retu
97400 72 6e 20 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 73 74 72 69 6e rn.is_array($value);.case.'strin
97420 67 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 63 g'.:.return.is_string($value);.c
97440 61 73 65 20 27 6e 75 6c 6c 27 20 3a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6c 6c 28 24 76 61 6c ase.'null'.:.return.is_null($val
97460 75 65 29 3b 0a 63 61 73 65 20 27 61 6e 79 27 20 3a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 64 ue);.case.'any'.:.return.true;.d
97480 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 efault:.throw.new.\InvalidArgume
974a0 6e 74 45 78 63 65 70 74 69 6f 6e 28 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 3f ntException((is_object($value).?
974c0 20 27 6f 62 6a 65 63 74 27 20 3a 20 24 76 61 6c 75 65 29 20 2e 20 27 20 69 73 20 61 20 69 6e 76 .'object'.:.$value)...'.is.a.inv
974e0 61 6c 69 64 20 74 79 70 65 20 66 6f 72 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 7d 3c alid.type.for.'...$type);.}.}.}<
97500 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 ?php..namespace.JsonSchema\Const
97520 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 68 65 6d 61 20 65 78 74 65 raints;........class.Schema.exte
97540 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 nds.Constraint.{....public.funct
97560 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 ion.check($element,.$schema.=.nu
97580 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 ll,.$path.=.null,.$i.=.null).{.i
975a0 66 20 28 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e f.($schema.!==.null).{...$this->
975c0 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 checkUndefined($element,.$schema
975e0 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 65 6c 65 6d ,.'',.'');.}.elseif.(isset($elem
97600 65 6e 74 2d 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 ent->{$this->inlineSchemaPropert
97620 79 7d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 y})).{...$this->checkUndefined($
97640 65 6c 65 6d 65 6e 74 2c 20 24 65 6c 65 6d 65 6e 74 2d 3e 7b 24 74 68 69 73 2d 3e 69 6e 6c 69 6e element,.$element->{$this->inlin
97660 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 eSchemaProperty},.'',.'');.}.els
97680 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 e.{.throw.new.\InvalidArgumentEx
976a0 63 65 70 74 69 6f 6e 28 27 6e 6f 20 73 63 68 65 6d 61 20 66 6f 75 6e 64 20 74 6f 20 76 65 72 69 ception('no.schema.found.to.veri
976c0 66 79 20 61 67 61 69 6e 73 74 27 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 fy.against');.}.}.}<?php..namesp
976e0 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a ace.JsonSchema\Constraints;.....
97700 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 ...class.Number.extends.Constrai
97720 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 nt.{....public.function.check($e
97740 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 lement,.$schema.=.null,.$path.=.
97760 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 null,.$i.=.null).{...if.(isset($
97780 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3c 20 24 schema->minimum).&&.$element.<.$
977a0 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 schema->minimum).{.$this->addErr
977c0 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 69 6e 69 6d 75 6d 20 76 or($path,."must.have.a.minimum.v
977e0 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 3b 0a 7d alue.of."...$schema->minimum);.}
97800 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 ....if.(isset($schema->maximum).
97820 26 26 20 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 &&.$element.>.$schema->maximum).
97840 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 {.$this->addError($path,."must.h
97860 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 ave.a.maximum.value.of."...$sche
97880 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 ma->maximum);.}....if.(isset($sc
978a0 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 25 hema->divisibleBy).&&.$element.%
978c0 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 20 21 3d 20 30 29 20 7b 0a 24 74 .$schema->divisibleBy.!=.0).{.$t
978e0 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6e 6f 74 20 64 69 76 his->addError($path,."is.not.div
97900 69 73 69 62 6c 65 20 62 79 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 isible.by."...$schema->divisible
97920 42 79 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 By);.}.}.}<?php..namespace.JsonS
97940 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 chema\Constraints;........class.
97960 4f 62 6a 65 63 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 Object.extends.Constraint.{....f
97980 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 unction.check($element,.$definit
979a0 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 ion.=.null,.$path.=.null,.$addit
979c0 69 6f 6e 61 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c ionalProp.=.null).{...$this->val
979e0 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e idateDefinition($element,.$defin
97a00 69 74 69 6f 6e 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 ition,.$path);....$this->validat
97a20 65 45 6c 65 6d 65 6e 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 eElement($element,.$definition,.
97a40 24 70 61 74 68 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a $path,.$additionalProp);.}......
97a60 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 45 6c 65 6d ....public.function.validateElem
97a80 65 6e 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 ent($element,.$objectDefinition.
97aa0 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 =.null,.$path.=.null,.$additiona
97ac0 6c 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e lProp.=.null).{.foreach.($elemen
97ae0 74 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 0a 24 70 72 6f 70 65 72 74 79 20 t.as.$i.=>.$value).{..$property.
97b00 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 =.$this->getProperty($element,.$
97b20 69 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e i,.new.Undefined());.$definition
97b40 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 6f 62 6a 65 63 74 44 65 66 .=.$this->getProperty($objectDef
97b60 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 inition,.$i);....if.($this->getP
97b80 72 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 69 72 65 64 27 29 roperty($definition,.'required')
97ba0 20 26 26 20 21 24 70 72 6f 70 65 72 74 79 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f .&&.!$property).{.$this->addErro
97bc0 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 r($path,."the.property."...$i...
97be0 22 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 64 64 69 74 ".is.required");.}....if.($addit
97c00 69 6f 6e 61 6c 50 72 6f 70 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6e ionalProp.===.false.&&.$this->in
97c20 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 21 3d 3d 20 24 69 20 26 26 20 21 24 64 lineSchemaProperty.!==.$i.&&.!$d
97c40 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 efinition).{.$this->addError($pa
97c60 74 68 2c 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 69 73 20 th,."The.property."...$i...".is.
97c80 6e 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 not.defined.and.the.definition.d
97ca0 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 oes.not.allow.additional.propert
97cc0 69 65 73 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 ies");.}....if.($additionalProp.
97ce0 26 26 20 21 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 &&.!$definition).{.$this->checkU
97d00 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 ndefined($value,.$additionalProp
97d20 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 24 72 65 71 75 69 72 65 20 3d 20 24 74 ,.$path,.$i);.}....$require.=.$t
97d40 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 his->getProperty($definition,.'r
97d60 65 71 75 69 72 65 73 27 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 26 26 20 21 24 74 68 69 equires');.if.($require.&&.!$thi
97d80 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 72 65 71 75 69 72 s->getProperty($element,.$requir
97da0 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 e)).{.$this->addError($path,."th
97dc0 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 e.presence.of.the.property."...$
97de0 69 20 2e 20 22 20 72 65 71 75 69 72 65 73 20 74 68 61 74 20 22 20 2e 20 24 72 65 71 75 69 72 65 i...".requires.that."...$require
97e00 20 2e 20 22 20 61 6c 73 6f 20 62 65 20 70 72 65 73 65 6e 74 22 29 3b 0a 7d 0a 0a 0a 20 24 74 68 ...".also.be.present");.}....$th
97e20 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 64 65 66 69 is->checkUndefined($value,.$defi
97e40 6e 69 74 69 6f 6e 20 3f 20 3a 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 nition.?.:.new.\stdClass(),.$pat
97e60 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 h,.$i);.}.}.........public.funct
97e80 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c ion.validateDefinition($element,
97ea0 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 .$objectDefinition.=.null,.$path
97ec0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 6a 65 63 74 44 65 66 69 6e .=.null).{.foreach.($objectDefin
97ee0 69 74 69 6f 6e 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 70 72 6f 70 65 72 ition.as.$i.=>.$value).{.$proper
97f00 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 ty.=.$this->getProperty($element
97f20 2c 20 24 69 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 29 3b 0a 24 64 65 66 69 6e 69 74 ,.$i,.new.Undefined());.$definit
97f40 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 6f 62 6a 65 63 74 ion.=.$this->getProperty($object
97f60 44 65 66 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 Definition,.$i);.$this->checkUnd
97f80 65 66 69 6e 65 64 28 24 70 72 6f 70 65 72 74 79 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 efined($property,.$definition,.$
97fa0 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 path,.$i);.}.}..........protecte
97fc0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c d.function.getProperty($element,
97fe0 20 24 70 72 6f 70 65 72 74 79 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a .$property,.$fallback.=.null).{.
98000 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 65 6c 65 6d 65 6e 74 29 20 29 20 7b 0a 72 65 74 75 72 if.(is_array($element).).{.retur
98020 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 70 72 6f 70 65 72 74 79 2c 20 24 65 n.array_key_exists($property,.$e
98040 6c 65 6d 65 6e 74 29 20 3f 20 24 65 6c 65 6d 65 6e 74 5b 24 70 72 6f 70 65 72 74 79 5d 20 3a 20 lement).?.$element[$property].:.
98060 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 $fallback;.}.else.{.return.isset
98080 28 24 65 6c 65 6d 65 6e 74 2d 3e 24 70 72 6f 70 65 72 74 79 29 20 3f 20 24 65 6c 65 6d 65 6e 74 ($element->$property).?.$element
980a0 2d 3e 24 70 72 6f 70 65 72 74 79 20 3a 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 7d 0a 7d 3c 3f ->$property.:.$fallback;.}.}.}<?
980c0 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 php..namespace.JsonSchema\Constr
980e0 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 74 72 61 69 6e aints;.......interface.Constrain
98100 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 tInterface.{......function.getEr
98120 72 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 73 rors();.......function.addErrors
98140 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e (array.$errors);........function
98160 20 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 0a 0a .addError($path,.$message);.....
98180 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ..function.isValid();...........
981a0 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d function.check($value,.$schema.=
981c0 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 3b .null,.$path.=.null,.$i.=.null);
981e0 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f .}<?php..namespace.JsonSchema\Co
98200 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 nstraints;........abstract.class
98220 20 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e .Constraint.implements.Constrain
98240 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 tInterface.{.protected.$checkMod
98260 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f e.=.self::CHECK_MODE_NORMAL;.pro
98280 74 65 63 74 65 64 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 tected.$errors.=.array();.protec
982a0 74 65 64 20 24 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 ted.$inlineSchemaProperty.=.'$sc
982c0 68 65 6d 61 27 3b 0a 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 hema';..const.CHECK_MODE_NORMAL.
982e0 3d 20 31 3b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 =.1;.const.CHECK_MODE_TYPE_CAST.
98300 3d 20 32 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 =.2;.....public.function.__const
98320 72 75 63 74 28 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f ruct($checkMode.=.self::CHECK_MO
98340 44 45 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 DE_NORMAL).{.$this->checkMode.=.
98360 24 63 68 65 63 6b 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $checkMode;.}.....public.functio
98380 6e 20 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 n.addError($path,.$message).{.$t
983a0 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 his->errors[].=.array(.'property
983c0 27 20 3d 3e 20 24 70 61 74 68 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 '.=>.$path,.'message'.=>.$messag
983e0 65 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 e.);.}.....public.function.addEr
98400 72 6f 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 rors(array.$errors).{.$this->err
98420 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c ors.=.array_merge($this->errors,
98440 20 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$errors);.}.....public.function
98460 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 75 6e 69 71 .getErrors().{.return.array_uniq
98480 75 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 3b ue($this->errors,.SORT_REGULAR);
984a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e .}.........protected.function.in
984c0 63 72 65 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 crementPath($path,.$i).{.if.($pa
984e0 74 68 20 21 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 th.!==.'').{.if.(is_int($i)).{.$
98500 70 61 74 68 20 2e 3d 20 27 5b 27 20 2e 20 24 69 20 2e 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 20 69 path..=.'['...$i...']';.}.else.i
98520 66 20 28 24 69 20 3d 3d 20 27 27 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c f.($i.==.'').{.$path..=.'';.}.el
98540 73 65 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 2e 27 20 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 se.{.$path..=.'.'...$i;.}.}.else
98560 20 7b 0a 24 70 61 74 68 20 3d 20 24 69 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a .{.$path.=.$i;.}..return.$path;.
98580 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 }..........protected.function.ch
985a0 65 63 6b 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c eckArray($value,.$schema.=.null,
985c0 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c .$path.=.null,.$i.=.null).{.$val
985e0 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6c 6c 65 63 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 idator.=.new.Collection($this->c
98600 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 heckMode);.$validator->check($va
98620 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 lue,.$schema,.$path,.$i);..$this
98640 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 ->addErrors($validator->getError
98660 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 s());.}..........protected.funct
98680 69 6f 6e 20 63 68 65 63 6b 4f 62 6a 65 63 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 ion.checkObject($value,.$schema.
986a0 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 =.null,.$path.=.null,.$i.=.null)
986c0 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 4f 62 6a 65 63 74 28 24 74 68 69 73 .{.$validator.=.new.Object($this
986e0 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 ->checkMode);.$validator->check(
98700 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 $value,.$schema,.$path,.$i);..$t
98720 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 his->addErrors($validator->getEr
98740 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 rors());.}..........protected.fu
98760 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 nction.checkType($value,.$schema
98780 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c .=.null,.$path.=.null,.$i.=.null
987a0 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 65 28 24 74 68 69 73 2d ).{.$validator.=.new.Type($this-
987c0 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 >checkMode);.$validator->check($
987e0 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 value,.$schema,.$path,.$i);..$th
98800 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 is->addErrors($validator->getErr
98820 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ors());.}..........protected.fun
98840 63 74 69 6f 6e 20 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 ction.checkUndefined($value,.$sc
98860 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 hema.=.null,.$path.=.null,.$i.=.
98880 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 55 6e 64 65 66 69 6e null).{.$validator.=.new.Undefin
988a0 65 64 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 ed($this->checkMode);.$validator
988c0 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 ->check($value,.$schema,.$path,.
988e0 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f $i);..$this->addErrors($validato
98900 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 r->getErrors());.}..........prot
98920 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 ected.function.checkString($valu
98940 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c e,.$schema.=.null,.$path.=.null,
98960 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 .$i.=.null).{.$validator.=.new.S
98980 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 tring($this->checkMode);.$valida
989a0 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 tor->check($value,.$schema,.$pat
989c0 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 h,.$i);..$this->addErrors($valid
989e0 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ator->getErrors());.}..........p
98a00 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 rotected.function.checkNumber($v
98a20 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 alue,.$schema.=.null,.$path.=.nu
98a40 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 ll,.$i.=.null).{.$validator.=.ne
98a60 77 20 4e 75 6d 62 65 72 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c w.Number($this->checkMode);.$val
98a80 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 idator->check($value,.$schema,.$
98aa0 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 path,.$i);..$this->addErrors($va
98ac0 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a lidator->getErrors());.}........
98ae0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 45 6e 75 6d 28 24 ..protected.function.checkEnum($
98b00 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e value,.$schema.=.null,.$path.=.n
98b20 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e ull,.$i.=.null).{.$validator.=.n
98b40 65 77 20 45 6e 75 6d 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 ew.Enum($this->checkMode);.$vali
98b60 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 dator->check($value,.$schema,.$p
98b80 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c ath,.$i);..$this->addErrors($val
98ba0 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c idator->getErrors());.}.....publ
98bc0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 ic.function.isValid().{.return.!
98be0 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 $this->getErrors();.}.}<?php..na
98c00 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a mespace.JsonSchema\Constraints;.
98c20 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6c 6c 65 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 .......class.Collection.extends.
98c40 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Constraint.{....public.function.
98c60 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 check($value,.$schema.=.null,.$p
98c80 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 ath.=.null,.$i.=.null).{...if.(i
98ca0 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 sset($schema->minItems).&&.count
98cc0 28 24 76 61 6c 75 65 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 7b 0a ($value).<.$schema->minItems).{.
98ce0 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 $this->addError($path,."There.mu
98d00 73 74 20 62 65 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e st.be.a.minimum.of."...$schema->
98d20 6d 69 6e 49 74 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a minItems...".in.the.array");.}..
98d40 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 26 26 .if.(isset($schema->maxItems).&&
98d60 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 .count($value).>.$schema->maxIte
98d80 6d 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 ms).{.$this->addError($path,."Th
98da0 65 72 65 20 6d 75 73 74 20 62 65 20 61 20 6d 61 78 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 ere.must.be.a.maximum.of."...$sc
98dc0 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 hema->maxItems...".in.the.array"
98de0 29 3b 0a 7d 0a 0a 20 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 75 6e 69 71 );.}.....if.(isset($schema->uniq
98e00 75 65 49 74 65 6d 73 29 20 26 26 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 76 61 6c 75 65 29 ueItems).&&.array_unique($value)
98e20 20 21 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 .!=.$value).{.$this->addError($p
98e40 61 74 68 2c 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 64 75 70 6c 69 63 61 74 65 73 20 61 6c ath,."There.are.no.duplicates.al
98e60 6c 6f 77 65 64 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 lowed.in.the.array");.}....if.(i
98e80 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 sset($schema->items)).{.$this->v
98ea0 61 6c 69 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 alidateItems($value,.$schema,.$p
98ec0 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ath,.$i);.}.}..........protected
98ee0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 .function.validateItems($value,.
98f00 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 $schema.=.null,.$path.=.null,.$i
98f20 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 .=.null).{.if.(!is_array($schema
98f40 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 ->items)).{...foreach.($value.as
98f60 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 .$k.=>.$v).{.$initErrors.=.$this
98f80 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 63 ->getErrors();....if.(!isset($sc
98fa0 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 7c 7c 20 24 73 63 68 65 6d hema->additionalItems).||.$schem
98fc0 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a a->additionalItems.===.false).{.
98fe0 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d $this->checkUndefined($v,.$schem
99000 61 2d 3e 69 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 a->items,.$path,.$k);.}....if.(c
99020 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d ount($initErrors).<.count($this-
99040 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 26 26 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d >getErrors()).&&.(isset($schema-
99060 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 61 64 >additionalItems).&&.$schema->ad
99080 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 73 65 63 ditionalItems.!==.false)).{.$sec
990a0 6f 6e 64 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a ondErrors.=.$this->getErrors();.
990c0 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d $this->checkUndefined($v,.$schem
990e0 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a a->additionalItems,.$path,.$k);.
99100 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 }....if.(isset($secondErrors).&&
99120 20 63 6f 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3c 20 24 74 68 69 73 2d 3e 67 .count($secondErrors).<.$this->g
99140 65 74 45 72 72 6f 72 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 73 etErrors()).{.$this->errors.=.$s
99160 65 63 6f 6e 64 45 72 72 6f 72 73 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 73 65 econdErrors;.}.elseif.(isset($se
99180 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f condErrors).&&.count($secondErro
991a0 72 73 29 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 rs).==.count($this->getErrors())
991c0 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b ).{.$this->errors.=.$initErrors;
991e0 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 .}.}.}.else.{...foreach.($value.
99200 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 as.$k.=>.$v).{.if.(array_key_exi
99220 73 74 73 28 24 6b 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 sts($k,.$schema->items)).{.$this
99240 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 ->checkUndefined($v,.$schema->it
99260 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 ems[$k],.$path,.$k);.}.else.{...
99280 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 61 64 64 69 74 69 6f 6e 61 6c if.(array_key_exists('additional
992a0 49 74 65 6d 73 27 2c 20 24 73 63 68 65 6d 61 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 Items',.$schema).&&.$schema->add
992c0 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d itionalItems.!==.false).{.$this-
992e0 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 >checkUndefined($v,.$schema->add
99300 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 itionalItems,.$path,.$k);.}.else
99320 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 0a 24 70 61 74 68 2c 0a 27 54 68 65 20 .{.$this->addError(.$path,.'The.
99340 69 74 65 6d 20 27 20 2e 20 24 69 20 2e 20 27 5b 27 20 2e 20 24 6b 20 2e 20 27 5d 20 69 73 20 6e item.'...$i...'['...$k...'].is.n
99360 6f 74 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 6f 62 6a 54 79 70 65 44 65 66 20 61 6e 64 ot.defined.in.the.objTypeDef.and
99380 20 74 68 65 20 6f 62 6a 54 79 70 65 44 65 66 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 .the.objTypeDef.does.not.allow.a
993a0 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 65 73 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a dditional.properties'.);.}.}.}..
993c0 0a 20 66 6f 72 20 28 24 6b 20 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 3b 20 24 6b 20 3c 20 ..for.($k.=.count($value);.$k.<.
993e0 63 6f 75 6e 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 3b 20 24 6b 2b 2b 29 20 7b 0a 24 count($schema->items);.$k++).{.$
99400 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 6e 65 77 20 55 6e 64 65 66 69 6e this->checkUndefined(new.Undefin
99420 65 64 28 29 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c ed(),.$schema->items[$k],.$path,
99440 20 24 6b 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 .$k);.}.}.}.}<?php..namespace.Js
99460 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 onSchema\Constraints;........cla
99480 73 73 20 45 6e 75 6d 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a ss.Enum.extends.Constraint.{....
994a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 public.function.check($element,.
994c0 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 $schema.=.null,.$path.=.null,.$i
994e0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 .=.null).{.foreach.($schema->enu
99500 6d 20 61 73 20 24 70 6f 73 73 69 62 6c 65 56 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 70 6f 73 73 m.as.$possibleValue).{.if.($poss
99520 69 62 6c 65 56 61 6c 75 65 20 3d 3d 20 24 65 6c 65 6d 65 6e 74 29 20 7b 0a 24 66 6f 75 6e 64 20 ibleValue.==.$element).{.$found.
99540 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 =.true;.break;.}.}..if.(!isset($
99560 66 6f 75 6e 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c found)).{.$this->addError($path,
99580 20 22 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 65 ."does.not.have.a.value.in.the.e
995a0 6e 75 6d 65 72 61 74 69 6f 6e 20 22 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 63 numeration."...implode(',.',.$sc
995c0 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 hema->enum));.}.}.}<?php..namesp
995e0 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a ace.JsonSchema\Constraints;.....
99600 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 ...class.String.extends.Constrai
99620 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 nt.{....public.function.check($e
99640 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 lement,.$schema.=.null,.$path.=.
99660 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 null,.$i.=.null).{...if.(isset($
99680 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 6e 28 24 65 6c schema->maxLength).&&.strlen($el
996a0 65 6d 65 6e 74 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 7b 0a 24 ement).>.$schema->maxLength).{.$
996c0 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 this->addError($path,."must.be.a
996e0 74 20 6d 6f 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 20 2e 20 t.most."...$schema->maxLength...
99700 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 ".characters.long");.}....if.(is
99720 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 26 26 20 73 74 72 6c 65 set($schema->minLength).&&.strle
99740 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 n($element).<.$schema->minLength
99760 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 ).{.$this->addError($path,."must
99780 20 62 65 20 61 74 20 6c 65 61 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e .be.at.least."...$schema->minLen
997a0 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 gth...".characters.long");.}....
997c0 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 if.(isset($schema->pattern).&&.!
997e0 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 preg_match('/'...$schema->patter
99800 6e 20 2e 20 27 2f 27 2c 20 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 n...'/',.$element)).{.$this->add
99820 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 Error($path,."does.not.match.the
99840 20 72 65 67 65 78 20 70 61 74 74 65 72 6e 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 .regex.pattern."...$schema->patt
99860 65 72 6e 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e ern);.}.}.}<?php..namespace.Json
99880 53 63 68 65 6d 61 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 Schema;..use.JsonSchema\Constrai
998a0 6e 74 73 5c 53 63 68 65 6d 61 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 nts\Schema;.use.JsonSchema\Const
998c0 72 61 69 6e 74 73 5c 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 raints\Constraint;.........class
998e0 20 56 61 6c 69 64 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a .Validator.extends.Constraint.{.
99900 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 .......function.check($value,.$s
99920 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d chema.=.null,.$path.=.null,.$i.=
99940 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 63 68 65 6d 61 .null).{.$validator.=.new.Schema
99960 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e ($this->checkMode);.$validator->
99980 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 29 3b 0a 24 74 68 69 73 2d 3e 61 check($value,.$schema);.$this->a
999a0 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 ddErrors($validator->getErrors()
999c0 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 5f 5f 44 49 );.}.}<?php....require_once.__DI
999e0 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 R__...'/composer'...'/autoload_r
99a00 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f eal.php';..return.ComposerAutolo
99a20 61 64 65 72 49 6e 69 74 3a 3a 67 65 74 4c 6f 61 64 65 72 28 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a aderInit::getLoader();.<?php....
99a40 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 $vendorDir.=.dirname(__DIR__);.$
99a60 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a baseDir.=.dirname($vendorDir);..
99a80 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e return.array(.'Symfony\\Componen
99aa0 74 5c 5c 50 72 6f 63 65 73 73 5c 5c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f t\\Process\\'.=>.$vendorDir...'/
99ac0 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d symfony/process/',.'Symfony\\Com
99ae0 70 6f 6e 65 6e 74 5c 5c 46 69 6e 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ponent\\Finder'.=>.$vendorDir...
99b00 27 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 27 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f '/symfony/finder/',.'Symfony\\Co
99b20 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 5c 5c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 mponent\\Console\\'.=>.$vendorDi
99b40 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 27 2c 0a 27 53 65 6c 64 5c 5c r...'/symfony/console/',.'Seld\\
99b60 4a 73 6f 6e 4c 69 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 65 6c 64 JsonLint'.=>.$vendorDir...'/seld
99b80 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 27 2c 0a 27 4a 73 6f 6e 53 63 68 65 6d 61 27 20 3d 3e /jsonlint/src/',.'JsonSchema'.=>
99ba0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 .$vendorDir...'/justinrainbow/js
99bc0 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 27 2c 0a 27 43 6f 6d 70 6f 73 65 72 27 20 3d 3e 20 24 on-schema/src/',.'Composer'.=>.$
99be0 62 61 73 65 44 69 72 20 2e 20 27 2f 73 72 63 2f 27 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 baseDir...'/src/',.);.<?php....$
99c00 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 62 vendorDir.=.dirname(__DIR__);.$b
99c20 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 aseDir.=.dirname($vendorDir);..r
99c40 65 74 75 72 6e 20 61 72 72 61 79 28 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 72 65 71 75 69 72 65 eturn.array(.);.<?php....require
99c60 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 0a .__DIR__...'/ClassLoader.php';..
99c80 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 0a 7b 0a 70 class.ComposerAutoloaderInit.{.p
99ca0 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 73 rivate.static.$loader;..public.s
99cc0 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a 7b 0a 69 66 20 tatic.function.getLoader().{.if.
99ce0 28 6e 75 6c 6c 20 21 3d 3d 20 73 74 61 74 69 63 3a 3a 24 6c 6f 61 64 65 72 29 20 7b 0a 72 65 74 (null.!==.static::$loader).{.ret
99d00 75 72 6e 20 73 74 61 74 69 63 3a 3a 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 73 74 61 74 69 63 3a 3a urn.static::$loader;.}..static::
99d20 24 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 $loader.=.$loader.=.new.\Compose
99d40 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 24 76 65 6e 64 6f r\Autoload\ClassLoader();.$vendo
99d60 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a 24 62 61 73 65 44 69 rDir.=.dirname(__DIR__);.$baseDi
99d80 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 24 6d 61 70 20 3d r.=.dirname($vendorDir);..$map.=
99da0 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 .require.__DIR__...'/autoload_na
99dc0 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 73 20 mespaces.php';.foreach.($map.as.
99de0 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e $namespace.=>.$path).{.$loader->
99e00 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 24 63 6c 61 73 add($namespace,.$path);.}..$clas
99e20 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c sMap.=.require.__DIR__...'/autol
99e40 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 69 66 20 28 24 63 6c 61 73 73 4d 61 70 oad_classmap.php';.if.($classMap
99e60 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d ).{.$loader->addClassMap($classM
99e80 61 70 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 ap);.}..$loader->register();..re
99ea0 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$loader;.}.}.<?php.........
99ec0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a ...namespace.Composer\Autoload;.
99ee0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 .............................cla
99f00 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 ss.ClassLoader.{.private.$prefix
99f20 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 es.=.array();.private.$fallbackD
99f40 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 irs.=.array();.private.$useInclu
99f60 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 dePath.=.false;.private.$classMa
99f80 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 p.=.array();..public.function.ge
99fa0 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 tPrefixes().{.return.$this->pref
99fc0 69 78 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c ixes;.}..public.function.getFall
99fe0 62 61 63 6b 44 69 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 backDirs().{.return.$this->fallb
9a000 61 63 6b 44 69 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 ackDirs;.}..public.function.getC
9a020 6c 61 73 73 4d 61 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d lassMap().{.return.$this->classM
9a040 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 61 ap;.}.....public.function.addCla
9a060 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 7b 0a 69 66 20 28 24 74 68 ssMap(array.$classMap).{.if.($th
9a080 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 is->classMap).{.$this->classMap.
9a0a0 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 =.array_merge($this->classMap,.$
9a0c0 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 classMap);.}.else.{.$this->class
9a0e0 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c Map.=.$classMap;.}.}........publ
9a100 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 ic.function.add($prefix,.$paths)
9a120 0a 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 .{.if.(!$prefix).{.foreach.((arr
9a140 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 ay).$paths.as.$path).{.$this->fa
9a160 6c 6c 62 61 63 6b 44 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b llbackDirs[].=.$path;.}..return;
9a180 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 .}.if.(isset($this->prefixes[$pr
9a1a0 65 66 69 78 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 efix])).{.$this->prefixes[$prefi
9a1c0 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 x].=.array_merge(.$this->prefixe
9a1e0 73 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 20 s[$prefix],.(array).$paths.);.}.
9a200 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 5b 24 70 72 65 66 69 78 5d 20 else.{.$this->prefixes[$prefix].
9a220 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c =.(array).$paths;.}.}.......publ
9a240 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 ic.function.setUseIncludePath($u
9a260 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 seIncludePath).{.$this->useInclu
9a280 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a dePath.=.$useIncludePath;.}.....
9a2a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 ...public.function.getUseInclude
9a2c0 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 Path().{.return.$this->useInclud
9a2e0 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ePath;.}.......public.function.r
9a300 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 70 6c 5f egister($prepend.=.false).{.spl_
9a320 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 autoload_register(array($this,.'
9a340 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 7d 0a loadClass'),.true,.$prepend);.}.
9a360 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 ....public.function.unregister()
9a380 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 .{.spl_autoload_unregister(array
9a3a0 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ($this,.'loadClass'));.}........
9a3c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 public.function.loadClass($class
9a3e0 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 ).{.if.($file.=.$this->findFile(
9a400 24 63 6c 61 73 73 29 29 20 7b 0a 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 72 65 74 75 72 $class)).{.include.$file;..retur
9a420 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 n.true;.}.}.........public.funct
9a440 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 ion.findFile($class).{.if.('\\'.
9a460 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 ==.$class[0]).{.$class.=.substr(
9a480 24 63 6c 61 73 73 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e $class,.1);.}..if.(isset($this->
9a4a0 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 classMap[$class])).{.return.$thi
9a4c0 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 s->classMap[$class];.}..if.(fals
9a4e0 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c e.!==.$pos.=.strrpos($class,.'\\
9a500 27 29 29 20 7b 0a 0a 20 24 63 6c 61 73 73 50 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 ')).{...$classPath.=.str_replace
9a520 28 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 73 75 62 73 ('\\',.DIRECTORY_SEPARATOR,.subs
9a540 74 72 28 24 63 6c 61 73 73 2c 20 30 2c 20 24 70 6f 73 29 29 20 2e 20 44 49 52 45 43 54 4f 52 59 tr($class,.0,.$pos))...DIRECTORY
9a560 5f 53 45 50 41 52 41 54 4f 52 3b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 _SEPARATOR;.$className.=.substr(
9a580 24 63 6c 61 73 73 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 $class,.$pos.+.1);.}.else.{...$c
9a5a0 6c 61 73 73 50 61 74 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 lassPath.=.null;.$className.=.$c
9a5c0 6c 61 73 73 3b 0a 7d 0a 0a 24 63 6c 61 73 73 50 61 74 68 20 2e 3d 20 73 74 72 5f 72 65 70 6c 61 lass;.}..$classPath..=.str_repla
9a5e0 63 65 28 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 63 6c ce('_',.DIRECTORY_SEPARATOR,.$cl
9a600 61 73 73 4e 61 6d 65 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 assName)...'.php';..foreach.($th
9a620 69 73 2d 3e 70 72 65 66 69 78 65 73 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 is->prefixes.as.$prefix.=>.$dirs
9a640 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 ).{.if.(0.===.strpos($class,.$pr
9a660 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 efix)).{.foreach.($dirs.as.$dir)
9a680 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 .{.if.(file_exists($dir...DIRECT
9a6a0 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 72 ORY_SEPARATOR...$classPath)).{.r
9a6c0 65 74 75 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 eturn.$dir...DIRECTORY_SEPARATOR
9a6e0 20 2e 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 ...$classPath;.}.}.}.}..foreach.
9a700 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a ($this->fallbackDirs.as.$dir).{.
9a720 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 if.(file_exists($dir...DIRECTORY
9a740 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b 0a 72 65 74 75 _SEPARATOR...$classPath)).{.retu
9a760 72 6e 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 rn.$dir...DIRECTORY_SEPARATOR...
9a780 24 63 6c 61 73 73 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 $classPath;.}.}..if.($this->useI
9a7a0 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 ncludePath.&&.$file.=.stream_res
9a7c0 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 63 6c 61 73 73 50 61 74 68 29 29 20 7b olve_include_path($classPath)).{
9a7e0 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .return.$file;.}..return.$this->
9a800 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f classMap[$class].=.false;.}.}.<?
9a820 70 68 70 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 73 72 63 2f 62 6f php..require.__DIR__.'/../src/bo
9a840 6f 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 otstrap.php';..use.Composer\Cons
9a860 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e ole\Application;..error_reportin
9a880 67 28 2d 31 29 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 g(-1);..if.(function_exists('ini
9a8a0 5f 73 65 74 27 29 29 20 7b 0a 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f _set')).{.....@ini_set('display_
9a8c0 65 72 72 6f 72 73 27 2c 20 31 29 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 errors',.1);......$memoryInBytes
9a8e0 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 .=.function.($value).{.........$
9a900 75 6e 69 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c unit.=.strtolower(substr($value,
9a920 20 2d 31 2c 20 31 29 29 3b 0a 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 3d 20 28 69 6e 74 29 .-1,.1));.........$value.=.(int)
9a940 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 75 6e 69 74 29 20 7b .$value;.........switch($unit).{
9a960 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 67 27 3a 0a 20 20 20 20 20 20 20 20 20 .............case.'g':..........
9a980 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 .......$value.*=.1024;..........
9a9a0 20 20 20 63 61 73 65 20 27 6d 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 ...case.'m':.................$va
9a9c0 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6b lue.*=.1024;.............case.'k
9a9e0 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 ':.................$value.*=.102
9aa00 34 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 76 61 4;.........}..........return.$va
9aa20 6c 75 65 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 3d 20 lue;.....};......$memoryLimit.=.
9aa40 74 72 69 6d 28 69 6e 69 5f 67 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 29 29 3b 0a 20 trim(ini_get('memory_limit'));..
9aa60 20 20 20 2f 2f 20 49 6e 63 72 65 61 73 65 20 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 20 69 66 20 69 ...//.Increase.memory_limit.if.i
9aa80 74 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 35 31 32 4d 0a 20 20 20 20 69 66 20 28 24 6d 65 t.is.lower.than.512M.....if.($me
9aaa0 6d 6f 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 20 26 26 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 moryLimit.!=.-1.&&.$memoryInByte
9aac0 73 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 20 3c 20 35 31 32 20 2a 20 31 30 32 34 20 2a 20 31 s($memoryLimit).<.512.*.1024.*.1
9aae0 30 32 34 29 20 7b 0a 20 20 20 20 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 6d 65 6d 6f 72 79 5f 024).{.........@ini_set('memory_
9ab00 6c 69 6d 69 74 27 2c 20 27 35 31 32 4d 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 75 6e 73 65 74 limit',.'512M');.....}.....unset
9ab20 28 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c 20 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 3b 0a ($memoryInBytes,.$memoryLimit);.
9ab40 7d 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f }..//.run.the.command.applicatio
9ab60 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e n.$application.=.new.Application
9ab80 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 29 3b 0a 0a 43 6f 70 79 72 69 ();.$application->run();..Copyri
9aba0 67 68 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 2c 20 4a 6f 72 64 ght.(c).2011.Nils.Adermann,.Jord
9abc0 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 i.Boggiano..Permission.is.hereby
9abe0 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 .granted,.free.of.charge,.to.any
9ac00 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 .person.obtaining.a.copy.of.this
9ac20 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e .software.and.associated.documen
9ac40 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 tation.files.(the."Software"),.t
9ac60 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 o.deal.in.the.Software.without.r
9ac80 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 estriction,.including.without.li
9aca0 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 mitation.the.rights.to.use,.copy
9acc0 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 ,.modify,.merge,.publish,.distri
9ace0 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f bute,.sublicense,.and/or.sell.co
9ad00 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 pies.of.the.Software,.and.to.per
9ad20 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 mit.persons.to.whom.the.Software
9ad40 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 .is.furnished.to.do.so,.subject.
9ad60 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 to.the.following.conditions:..Th
9ad80 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 e.above.copyright.notice.and.thi
9ada0 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 s.permission.notice.shall.be.inc
9adc0 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 luded.in.all.copies.or.substanti
9ade0 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 al.portions.of.the.Software...TH
9ae00 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 E.SOFTWARE.IS.PROVIDED."AS.IS",.
9ae20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 WITHOUT.WARRANTY.OF.ANY.KIND,.EX
9ae40 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 PRESS.OR.IMPLIED,.INCLUDING.BUT.
9ae60 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 NOT.LIMITED.TO.THE.WARRANTIES.OF
9ae80 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 .MERCHANTABILITY,.FITNESS.FOR.A.
9aea0 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e PARTICULAR.PURPOSE.AND.NONINFRIN
9aec0 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 GEMENT..IN.NO.EVENT.SHALL.THE.AU
9aee0 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 THORS.OR.COPYRIGHT.HOLDERS.BE.LI
9af00 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f ABLE.FOR.ANY.CLAIM,.DAMAGES.OR.O
9af20 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 THER.LIABILITY,.WHETHER.IN.AN.AC
9af40 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 TION.OF.CONTRACT,.TORT.OR.OTHERW
9af60 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 ISE,.ARISING.FROM,.OUT.OF.OR.IN.
9af80 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 CONNECTION.WITH.THE.SOFTWARE.OR.
9afa0 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 THE.USE.OR.OTHER.DEALINGS.IN.THE
9afc0 20 53 4f 46 54 57 41 52 45 2e 0a 0a 53 3e 80 00 be 25 fd 9d 35 2e f3 8d 7c c3 72 48 70 80 20 25 .SOFTWARE...S>...%..5...|.rHp..%
9afe0 02 00 00 00 47 42 4d 42 ....GBMB