aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: 8b6eddbf21a06da1b6cc983749e5f3a755c674d5 (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 34 35 30 34 37 34 38 37 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 45047487);.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 a3 43 00 00 d7 00 00 00 11 00 00 00 01 00 0d 00 COMPILER();.?>...C..............
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 b9 01 00 00 bf 3e 04 50 b9 01 00 00 28 8e 49 9f b6 01 00 00 00 00 00 00 trap.php.....>.P....(.I.........
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 06 0e 00 00 bf 3e 04 50 06 0e 00 00 7b 13 d4 f0 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 p.....>.P....{...............src
0240 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c 49 4f 2e 70 68 70 12 04 00 00 bf 3e 04 50 12 /Composer/IO/NullIO.php.....>.P.
0260 04 00 00 1d 1d fc 03 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...................src/Composer/
0280 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 70 59 03 00 00 bf 3e 04 50 59 03 00 00 10 ba IO/IOInterface.phpY....>.PY.....
02a0 20 3d b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 .=............src/Composer/Comma
02c0 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 80 04 00 00 bf 3e 04 50 80 04 00 00 a2 fe 97 49 b6 01 nd/Command.php.....>.P.......I..
02e0 00 00 00 00 00 00 2d 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 ......-...src/Composer/Command/C
0300 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 28 14 00 00 bf 3e 04 50 28 reateProjectCommand.php(....>.P(
0320 14 00 00 19 d6 d5 e3 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 ...............%...src/Composer/
0340 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 b4 02 00 00 bf 3e 04 50 Command/AboutCommand.php.....>.P
0360 b4 02 00 00 1a 87 d1 cf b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ................$...src/Composer
0380 2f 43 6f 6d 6d 61 6e 64 2f 53 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 70 4b 1f 00 00 bf 3e 04 50 /Command/ShowCommand.phpK....>.P
03a0 4b 1f 00 00 54 7d f7 15 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 K...T}..........&...src/Composer
03c0 2f 43 6f 6d 6d 61 6e 64 2f 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 4f 08 00 00 bf 3e /Command/UpdateCommand.phpO....>
03e0 04 50 4f 08 00 00 46 48 01 5f b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .PO...FH._........'...src/Compos
0400 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 9c 06 00 er/Command/InstallCommand.php...
0420 00 bf 3e 04 50 9c 06 00 00 23 75 ea b8 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d ..>.P....#u..........(...src/Com
0440 70 6f 73 65 72 2f 43 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 poser/Command/ValidateCommand.ph
0460 70 f0 0d 00 00 bf 3e 04 50 f0 0d 00 00 09 60 52 92 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 p.....>.P.....`R.........'...src
0480 2f 43 6f 6d 70 6f 73 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 /Composer/Command/DependsCommand
04a0 2e 70 68 70 79 0a 00 00 bf 3e 04 50 79 0a 00 00 42 fd 55 a3 b6 01 00 00 00 00 00 00 26 00 00 00 .phpy....>.Py...B.U.........&...
04c0 73 72 63 2f 43 6f 6d 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 src/Composer/Command/SearchComma
04e0 6e 64 2e 70 68 70 5d 0d 00 00 bf 3e 04 50 5d 0d 00 00 7f 20 b2 24 b6 01 00 00 00 00 00 00 2a 00 nd.php]....>.P]......$........*.
0500 00 00 73 72 63 2f 43 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 ..src/Composer/Command/SelfUpdat
0520 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 96 06 00 00 bf 3e 04 50 96 06 00 00 75 61 c0 fa b6 01 00 00 eCommand.php.....>.P....ua......
0540 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 61 6e 64 2f 52 65 71 ....'...src/Composer/Command/Req
0560 75 69 72 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 cd 0b 00 00 bf 3e 04 50 cd 0b 00 00 4d ff 8e 8e b6 uireCommand.php.....>.P....M....
0580 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 2f .......,...src/Composer/Command/
05a0 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 bf 3e 04 50 9e Helper/DialogHelper.php.....>.P.
05c0 01 00 00 95 82 8c 26 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ......&........$...src/Composer/
05e0 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 36 28 00 00 bf 3e 04 50 36 Command/InitCommand.php6(...>.P6
0600 28 00 00 c2 14 bc 6f 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 (.....o........)...src/Composer/
0620 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 5b 08 00 00 Downloader/VcsDownloader.php[...
0640 bf 3e 04 50 5b 08 00 00 a3 31 8c 4c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 .>.P[....1.L........*...src/Comp
0660 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 72 2e 70 oser/Downloader/FileDownloader.p
0680 68 70 ce 09 00 00 bf 3e 04 50 ce 09 00 00 4a 42 32 ca b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp.....>.P....JB2.........)...sr
06a0 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 6c 6f 61 c/Composer/Downloader/SvnDownloa
06c0 64 65 72 2e 70 68 70 59 05 00 00 bf 3e 04 50 59 05 00 00 d2 91 bb 04 b6 01 00 00 00 00 00 00 30 der.phpY....>.PY...............0
06e0 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 61 72 50 ...src/Composer/Downloader/PearP
0700 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 f3 1a 00 00 bf 3e 04 50 f3 1a 00 00 a9 ackageExtractor.php.....>.P.....
0720 f5 20 9c 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 6f 77 6e ...........+...src/Composer/Down
0740 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 0c 0e 00 00 bf 3e loader/DownloadManager.php.....>
0760 04 50 0c 0e 00 00 03 87 c8 db b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .P................/...src/Compos
0780 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 66 61 63 er/Downloader/DownloaderInterfac
07a0 65 2e 70 68 70 8f 01 00 00 bf 3e 04 50 8f 01 00 00 74 80 69 74 b6 01 00 00 00 00 00 00 2e 00 00 e.php.....>.P....t.it...........
07c0 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 73 70 6f .src/Composer/Downloader/Transpo
07e0 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 64 00 00 00 bf 3e 04 50 64 00 00 00 47 c9 87 89 b6 rtException.phpd....>.Pd...G....
0800 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 6f 61 64 .......*...src/Composer/Download
0820 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 bf 3e 04 50 e5 00 00 er/PharDownloader.php.....>.P...
0840 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 2f 44 6f .............)...src/Composer/Do
0860 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 00 bf 3e wnloader/TarDownloader.php.....>
0880 04 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 70 6f 73 .P......X?........(...src/Compos
08a0 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 70 a5 05 er/Downloader/HgDownloader.php..
08c0 00 00 bf 3e 04 50 a5 05 00 00 f2 6a 85 a0 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f ...>.P.....j..........-...src/Co
08e0 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 6c 6f 61 mposer/Downloader/ArchiveDownloa
0900 64 65 72 2e 70 68 70 9a 06 00 00 bf 3e 04 50 9a 06 00 00 4e ed 2f eb b6 01 00 00 00 00 00 00 29 der.php.....>.P....N./.........)
0920 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 70 44 6f ...src/Composer/Downloader/ZipDo
0940 77 6e 6c 6f 61 64 65 72 2e 70 68 70 e0 07 00 00 bf 3e 04 50 e0 07 00 00 f6 76 6e eb b6 01 00 00 wnloader.php.....>.P.....vn.....
0960 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 65 72 2f ....)...src/Composer/Downloader/
0980 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 db 19 00 00 bf 3e 04 50 db 19 00 00 2f 71 ff GitDownloader.php.....>.P..../q.
09a0 2d 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 6f 73 69 -........+...src/Composer/Reposi
09c0 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 63 09 00 00 bf 3e 04 50 tory/ArrayRepository.phpc....>.P
09e0 63 09 00 00 55 64 f9 ec b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 c...Ud..........0...src/Composer
0a00 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 6f 72 79 /Repository/FilesystemRepository
0a20 2e 70 68 70 89 04 00 00 bf 3e 04 50 89 04 00 00 17 88 9d 4d b6 01 00 00 00 00 00 00 37 00 00 00 .php.....>.P.......M........7...
0a40 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 62 6c 65 src/Composer/Repository/Writable
0a60 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 bf 3e 04 50 5b RepositoryInterface.php[....>.P[
0a80 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 65 72 2f ...tM..........*...src/Composer/
0aa0 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 06 14 00 Repository/PearRepository.php...
0ac0 00 bf 3e 04 50 06 14 00 00 a8 4b c3 b4 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d ..>.P.....K..........-...src/Com
0ae0 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 6e 61 67 poser/Repository/RepositoryManag
0b00 65 72 2e 70 68 70 70 07 00 00 bf 3e 04 50 70 07 00 00 f1 a5 e7 79 b6 01 00 00 00 00 00 00 2c 00 er.phpp....>.Pp......y........,.
0b20 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 2f 47 69 ..src/Composer/Repository/Vcs/Gi
0b40 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 37 19 00 00 bf 3e 04 50 37 19 00 00 a6 81 4f 28 b6 01 tHubDriver.php7....>.P7.....O(..
0b60 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 74 6f 72 ......2...src/Composer/Repositor
0b80 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 0d 00 00 y/Vcs/GitBitbucketDriver.php=...
0ba0 bf 3e 04 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 6f 6d 70 .>.P=...............)...src/Comp
0bc0 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 2e 70 68 oser/Repository/Vcs/GitDriver.ph
0be0 70 ba 10 00 00 bf 3e 04 50 ba 10 00 00 2a 95 28 7a b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 p.....>.P....*.(z........)...src
0c00 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 72 69 76 /Composer/Repository/Vcs/SvnDriv
0c20 65 72 2e 70 68 70 ad 12 00 00 bf 3e 04 50 ad 12 00 00 95 d7 2f b2 b6 01 00 00 00 00 00 00 32 00 er.php.....>.P....../.........2.
0c40 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 2f 56 63 ..src/Composer/Repository/Vcs/Vc
0c60 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 43 02 00 00 bf 3e 04 50 43 02 00 00 sDriverInterface.phpC....>.PC...
0c80 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 52 65 70 .F..........(...src/Composer/Rep
0ca0 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 6a 0d 00 00 bf 3e 04 50 ository/Vcs/HgDriver.phpj....>.P
0cc0 6a 0d 00 00 7a ce 14 58 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 j...z..X........)...src/Composer
0ce0 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 fe 04 00 /Repository/Vcs/VcsDriver.php...
0d00 00 bf 3e 04 50 fe 04 00 00 4c 12 32 42 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d ..>.P....L.2B........1...src/Com
0d20 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 6b 65 74 poser/Repository/Vcs/HgBitbucket
0d40 44 72 69 76 65 72 2e 70 68 70 f8 0c 00 00 bf 3e 04 50 f8 0c 00 00 cd a4 6d e9 b6 01 00 00 00 00 Driver.php.....>.P......m.......
0d60 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 2f 49 6e ..4...src/Composer/Repository/In
0d80 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 00 bf 3e stalledArrayRepository.php.....>
0da0 04 50 db 00 00 00 7e 8e 24 d8 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
0dc0 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 0c er/Repository/VcsRepository.php.
0de0 17 00 00 bf 3e 04 50 0c 17 00 00 84 7f 6b 24 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 ....>.P......k$............src/C
0e00 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer/Repository/PlatformRepos
0e20 69 74 6f 72 79 2e 70 68 70 ac 08 00 00 bf 3e 04 50 ac 08 00 00 6c 2c c2 8a b6 01 00 00 00 00 00 itory.php.....>.P....l,.........
0e40 00 39 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 49 6e 73 .9...src/Composer/Repository/Ins
0e60 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 2e 70 68 70 a3 00 talledFilesystemRepository.php..
0e80 00 00 bf 3e 04 50 a3 00 00 00 56 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f ...>.P....V.._......../...src/Co
0ea0 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 mposer/Repository/CompositeRepos
0ec0 69 74 6f 72 79 2e 70 68 70 44 06 00 00 bf 3e 04 50 44 06 00 00 90 bc c6 63 b6 01 00 00 00 00 00 itory.phpD....>.PD......c.......
0ee0 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 49 6e 73 .8...src/Composer/Repository/Ins
0f00 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 2e 70 68 70 87 00 00 talledRepositoryInterface.php...
0f20 00 bf 3e 04 50 87 00 00 00 18 a3 39 70 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d ..>.P......9p............src/Com
0f40 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 poser/Repository/ComposerReposit
0f60 6f 72 79 2e 70 68 70 24 0d 00 00 bf 3e 04 50 24 0d 00 00 51 e9 1a d5 b6 01 00 00 00 00 00 00 2f ory.php$....>.P$...Q.........../
0f80 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 72 2f ...src/Composer/Repository/Pear/
0fa0 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 2e 70 68 70 71 01 00 00 bf 3e 04 50 71 01 00 00 66 ba DependencyInfo.phpq....>.Pq...f.
0fc0 54 f2 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 T.........8...src/Composer/Repos
0fe0 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 itory/Pear/PackageDependencyPars
1000 65 72 2e 70 68 70 21 16 00 00 bf 3e 04 50 21 16 00 00 3d cc f3 46 b6 01 00 00 00 00 00 00 2c 00 er.php!....>.P!...=..F........,.
1020 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
1040 68 61 6e 6e 65 6c 49 6e 66 6f 2e 70 68 70 c4 01 00 00 bf 3e 04 50 c4 01 00 00 3a 54 2a c9 b6 01 hannelInfo.php.....>.P....:T*...
1060 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 70 6f 73 69 74 6f 72 ..........src/Composer/Repositor
1080 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6d 06 00 00 bf 3e 04 50 y/Pear/ChannelReader.phpm....>.P
10a0 6d 06 00 00 ef e5 4e 27 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 m.....N'........,...src/Composer
10c0 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 /Repository/Pear/PackageInfo.php
10e0 b0 03 00 00 bf 3e 04 50 b0 03 00 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f .....>.P................5...src/
1100 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 44 65 70 65 6e 64 65 Composer/Repository/Pear/Depende
1120 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 bf 3e 04 50 71 02 00 00 39 0e 17 ncyConstraint.phpq....>.Pq...9..
1140 3d b6 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 =........4...src/Composer/Reposi
1160 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 tory/Pear/ChannelRest11Reader.ph
1180 70 f0 08 00 00 bf 3e 04 50 f0 08 00 00 d3 3d ce 34 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 p.....>.P.....=.4........,...src
11a0 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 52 65 6c 65 61 73 /Composer/Repository/Pear/Releas
11c0 65 49 6e 66 6f 2e 70 68 70 92 01 00 00 bf 3e 04 50 92 01 00 00 6f 93 8a c3 b6 01 00 00 00 00 00 eInfo.php.....>.P....o..........
11e0 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 50 65 61 .2...src/Composer/Repository/Pea
1200 72 2f 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 34 05 00 00 bf 3e 04 50 34 r/BaseChannelReader.php4....>.P4
1220 05 00 00 44 3f 8b 85 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...D?..........4...src/Composer/
1240 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 Repository/Pear/ChannelRest10Rea
1260 64 65 72 2e 70 68 70 c0 09 00 00 bf 3e 04 50 c0 09 00 00 5d 31 0f de b6 01 00 00 00 00 00 00 2f der.php.....>.P....]1........../
1280 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 52 65 70 6f 73 ...src/Composer/Repository/Repos
12a0 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 6d 01 00 00 bf 3e 04 50 6d 01 00 00 7e 60 itoryInterface.phpm....>.Pm...~`
12c0 a6 32 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 52 65 70 6f 73 .2........-...src/Composer/Repos
12e0 69 74 6f 72 79 2f 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 15 02 00 00 bf itory/PackageRepository.php.....
1300 3e 04 50 15 02 00 00 82 f3 73 3e b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f >.P......s>........9...src/Compo
1320 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 4e 6f 74 69 66 69 61 62 6c 65 52 65 70 6f 73 69 74 ser/Repository/NotifiableReposit
1340 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 e3 00 00 00 bf 3e 04 50 e3 00 00 00 c5 d0 53 27 oryInterface.php.....>.P......S'
1360 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 50 61 63 6b 61 67 65 ........+...src/Composer/Package
1380 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 72 2e 70 68 70 16 07 00 00 bf 3e 04 50 16 /Dumper/ArrayDumper.php.....>.P.
13a0 07 00 00 ce 00 27 59 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 .....'Y........*...src/Composer/
13c0 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 9d 01 00 Package/Loader/JsonLoader.php...
13e0 00 bf 3e 04 50 9d 01 00 00 f0 3d a9 f7 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d ..>.P.....=..........+...src/Com
1400 70 6f 73 65 72 2f 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 poser/Package/Loader/ArrayLoader
1420 2e 70 68 70 f7 15 00 00 bf 3e 04 50 f7 15 00 00 5f 6e 7a d3 b6 01 00 00 00 00 00 00 31 00 00 00 .php.....>.P...._nz.........1...
1440 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 52 6f 6f 74 src/Composer/Package/Loader/Root
1460 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 2e 70 68 70 39 14 00 00 bf 3e 04 50 39 14 00 00 ef 04 07 PackageLoader.php9....>.P9......
1480 3c 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 50 61 63 6b 61 67 <........&...src/Composer/Packag
14a0 65 2f 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 2e 70 68 70 03 1b 00 00 bf 3e 04 50 03 1b 00 00 ce e/MemoryPackage.php.....>.P.....
14c0 c6 ef b5 b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b ...............src/Composer/Pack
14e0 61 67 65 2f 4c 6f 63 6b 65 72 2e 70 68 70 10 13 00 00 bf 3e 04 50 10 13 00 00 d7 20 27 58 b6 01 age/Locker.php.....>.P......'X..
1500 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 ......)...src/Composer/Package/P
1520 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 11 08 00 00 bf 3e 04 50 11 08 00 00 30 ackageInterface.php.....>.P....0
1540 3d 09 ec b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b =..........$...src/Composer/Pack
1560 61 67 65 2f 42 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 82 0c 00 00 bf 3e 04 50 82 0c 00 00 78 age/BasePackage.php.....>.P....x
1580 8a 5d e2 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 50 61 63 6b .].............src/Composer/Pack
15a0 61 67 65 2f 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 e0 15 00 age/Version/VersionParser.php...
15c0 00 bf 3e 04 50 e0 15 00 00 fa 01 4c 4f b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d ..>.P......LO........%...src/Com
15e0 70 6f 73 65 72 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 77 12 poser/Package/AliasPackage.phpw.
1600 00 00 bf 3e 04 50 77 12 00 00 af be d3 20 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f ...>.Pw...................src/Co
1620 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 2e 70 68 70 33 05 00 00 bf 3e 04 50 33 mposer/Package/Link.php3....>.P3
1640 05 00 00 92 66 36 b9 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 ....f6.........7...src/Composer/
1660 50 61 63 6b 61 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 Package/LinkConstraint/MultiCons
1680 74 72 61 69 6e 74 2e 70 68 70 5c 03 00 00 bf 3e 04 50 5c 03 00 00 5b 0b 7d 63 b6 01 00 00 00 00 traint.php\....>.P\...[.}c......
16a0 00 00 39 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 69 6e 6b 43 ..9...src/Composer/Package/LinkC
16c0 6f 6e 73 74 72 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 onstraint/VersionConstraint.php.
16e0 05 00 00 bf 3e 04 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 ....>.P....)m..........:...src/C
1700 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 61 69 6e 74 2f 53 omposer/Package/LinkConstraint/S
1720 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 bf 3e 04 50 71 02 00 pecificConstraint.phpq....>.Pq..
1740 00 96 53 9a f8 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 ..S..........?...src/Composer/Pa
1760 63 6b 61 67 65 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 ckage/LinkConstraint/LinkConstra
1780 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 bf 3e 04 50 15 01 00 00 e5 fe 87 a2 intInterface.php.....>.P........
17a0 b6 01 00 00 00 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 ............src/Composer/Cache.p
17c0 68 70 be 03 00 00 bf 3e 04 50 be 03 00 00 c9 f2 a0 f9 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 hp.....>.P................3...sr
17e0 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 50 6f c/Composer/DependencyResolver/Po
1800 6c 69 63 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 91 01 00 00 bf 3e 04 50 91 01 00 00 42 18 9f licyInterface.php.....>.P....B..
1820 b6 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 65 70 65 6e 64 .........+...src/Composer/Depend
1840 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 9b 09 00 00 bf 3e 04 50 encyResolver/RuleSet.php.....>.P
1860 9b 09 00 00 4a 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 ....Jy..........6...src/Composer
1880 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 42 75 67 45 78 63 /DependencyResolver/SolverBugExc
18a0 65 70 74 69 6f 6e 2e 70 68 70 98 01 00 00 bf 3e 04 50 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 eption.php.....>.P....."qN......
18c0 00 00 31 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 ..1...src/Composer/DependencyRes
18e0 6f 6c 76 65 72 2f 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 57 15 00 00 bf 3e 04 50 57 olver/DefaultPolicy.phpW....>.PW
1900 15 00 00 9e e9 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 .....].........-...src/Composer/
1920 44 65 70 65 6e 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 DependencyResolver/Decisions.php
1940 8e 0e 00 00 bf 3e 04 50 8e 0e 00 00 bb ed 61 f4 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f .....>.P......a.........1...src/
1960 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 6c 65 Composer/DependencyResolver/Rule
1980 57 61 74 63 68 4e 6f 64 65 2e 70 68 70 f0 03 00 00 bf 3e 04 50 f0 03 00 00 5d 24 f3 b4 b6 01 00 WatchNode.php.....>.P....]$.....
19a0 00 00 00 00 00 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 .....;...src/Composer/Dependency
19c0 52 65 73 6f 6c 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 Resolver/SolverProblemsException
19e0 2e 70 68 70 c4 03 00 00 bf 3e 04 50 c4 03 00 00 ac d6 5b b0 b6 01 00 00 00 00 00 00 2f 00 00 00 .php.....>.P......[........./...
1a00 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/
1a20 54 72 61 6e 73 61 63 74 69 6f 6e 2e 70 68 70 11 14 00 00 bf 3e 04 50 11 14 00 00 93 fe de 87 b6 Transaction.php.....>.P.........
1a40 01 00 00 00 00 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 .......@...src/Composer/Dependen
1a60 63 79 52 65 73 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 cyResolver/Operation/UninstallOp
1a80 65 72 61 74 69 6f 6e 2e 70 68 70 49 02 00 00 bf 3e 04 50 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 eration.phpI....>.PI...F........
1aa0 00 00 00 3d 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 ...=...src/Composer/DependencyRe
1ac0 73 6f 6c 76 65 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 solver/Operation/UpdateOperation
1ae0 2e 70 68 70 68 03 00 00 bf 3e 04 50 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 00 00 00 49 00 00 00 .phph....>.Ph....S.]........I...
1b00 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/
1b20 4f 70 65 72 61 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 Operation/MarkAliasInstalledOper
1b40 61 74 69 6f 6e 2e 70 68 70 d0 02 00 00 bf 3e 04 50 d0 02 00 00 78 55 5a 61 b6 01 00 00 00 00 00 ation.php.....>.P....xUZa.......
1b60 00 3e 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 .>...src/Composer/DependencyReso
1b80 6c 76 65 72 2f 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 lver/Operation/InstallOperation.
1ba0 70 68 70 43 02 00 00 bf 3e 04 50 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 3d 00 00 00 73 phpC....>.PC....\.*........=...s
1bc0 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 4f rc/Composer/DependencyResolver/O
1be0 70 65 72 61 74 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 peration/SolverOperation.php....
1c00 bf 3e 04 50 eb 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 .>.P................K...src/Comp
1c20 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 69 6f oser/DependencyResolver/Operatio
1c40 6e 2f 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 2e n/MarkAliasUninstalledOperation.
1c60 70 68 70 d6 02 00 00 bf 3e 04 50 d6 02 00 00 5f 69 c7 ab b6 01 00 00 00 00 00 00 40 00 00 00 73 php.....>.P...._i..........@...s
1c80 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 4f rc/Composer/DependencyResolver/O
1ca0 70 65 72 61 74 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 peration/OperationInterface.php.
1cc0 00 00 00 bf 3e 04 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 ....>.P......&.........(...src/C
1ce0 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 50 6f 6f 6c 2e omposer/DependencyResolver/Pool.
1d00 70 68 70 6b 0c 00 00 bf 3e 04 50 6b 0c 00 00 d3 9c 60 35 b6 01 00 00 00 00 00 00 28 00 00 00 73 phpk....>.Pk.....`5........(...s
1d20 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 52 rc/Composer/DependencyResolver/R
1d40 75 6c 65 2e 70 68 70 d4 0f 00 00 bf 3e 04 50 d4 0f 00 00 1b d5 fa ee b6 01 00 00 00 00 00 00 34 ule.php.....>.P................4
1d60 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
1d80 65 72 2f 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 50 15 00 00 bf 3e 04 50 50 er/RuleSetGenerator.phpP....>.PP
1da0 15 00 00 c0 dc 64 1e 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 .....d........./...src/Composer/
1dc0 44 65 70 65 6e 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 DependencyResolver/DebugSolver.p
1de0 68 70 89 06 00 00 bf 3e 04 50 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 hp.....>.P................3...sr
1e00 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
1e20 6c 65 53 65 74 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 bf 3e 04 50 14 06 00 00 7d f5 c7 leSetIterator.php.....>.P....}..
1e40 f9 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 44 65 70 65 6e 64 .........2...src/Composer/Depend
1e60 65 6e 63 79 52 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 encyResolver/RuleWatchChain.phpi
1e80 01 00 00 bf 3e 04 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 ....>.Pi...h..,........*...src/C
1ea0 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 53 6f 6c 76 65 omposer/DependencyResolver/Solve
1ec0 72 2e 70 68 70 43 35 00 00 bf 3e 04 50 43 35 00 00 e5 22 66 50 b6 01 00 00 00 00 00 00 2b 00 00 r.phpC5...>.PC5..."fP........+..
1ee0 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
1f00 2f 52 65 71 75 65 73 74 2e 70 68 70 89 04 00 00 bf 3e 04 50 89 04 00 00 31 1a b2 49 b6 01 00 00 /Request.php.....>.P....1..I....
1f20 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
1f40 65 73 6f 6c 76 65 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 d0 0a 00 00 bf 3e 04 50 d0 0a 00 00 69 esolver/Problem.php.....>.P....i
1f60 44 c1 4e 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 44 65 70 65 D.N........2...src/Composer/Depe
1f80 6e 64 65 6e 63 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 ndencyResolver/RuleWatchGraph.ph
1fa0 70 e1 06 00 00 bf 3e 04 50 e1 06 00 00 89 72 f4 76 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 p.....>.P.....r.v............src
1fc0 2f 43 6f 6d 70 6f 73 65 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 1a 19 00 00 bf 3e 04 50 1a 19 00 /Composer/Factory.php.....>.P...
1fe0 00 0e 22 f3 17 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 .."..............src/Composer/Ut
2000 69 6c 2f 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 53 0c 00 00 bf 3e 04 50 53 0c 00 00 96 4b 12 il/Filesystem.phpS....>.PS....K.
2020 70 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 p........%...src/Composer/Util/P
2040 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 71 04 00 00 bf 3e 04 50 71 04 00 00 89 8a rocessExecutor.phpq....>.Pq.....
2060 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/
2080 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 d2 11 00 00 bf 3e 04 50 d2 11 00 00 RemoteFilesystem.php.....>.P....
20a0 9d a3 9c df 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 ............*...src/Composer/Uti
20c0 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 43 06 00 00 bf 3e l/StreamContextFactory.phpC....>
20e0 04 50 43 06 00 00 23 59 74 3a b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .PC...#Yt:........"...src/Compos
2100 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 bf 3e 04 50 er/Util/ErrorHandler.php.....>.P
2120 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 72 .....@..........+...src/Composer
2140 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 36 /Util/SpdxLicenseIdentifier.php6
2160 0a 00 00 bf 3e 04 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 43 ....>.P6....6.o............src/C
2180 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 5b 0c 00 00 bf 3e 04 50 5b 0c 00 00 omposer/Util/Svn.php[....>.P[...
21a0 f7 82 63 9b 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 6d ..c.............src/Composer/Com
21c0 70 6f 73 65 72 2e 70 68 70 97 05 00 00 bf 3e 04 50 97 05 00 00 af b2 eb 28 b6 01 00 00 00 00 00 poser.php.....>.P.......(.......
21e0 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 70 .%...src/Composer/Json/JsonManip
2200 75 6c 61 74 6f 72 2e 70 68 70 49 0a 00 00 bf 3e 04 50 49 0a 00 00 1b e9 2f fe b6 01 00 00 00 00 ulator.phpI....>.PI...../.......
2220 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 65 ......src/Composer/Json/JsonFile
2240 2e 70 68 70 43 14 00 00 bf 3e 04 50 43 14 00 00 11 e7 12 70 b6 01 00 00 00 00 00 00 2d 00 00 00 .phpC....>.PC......p........-...
2260 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 6e src/Composer/Json/JsonValidation
2280 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 32 01 00 00 bf 3e 04 50 32 01 00 00 39 62 84 31 b6 01 00 Exception.php2....>.P2...9b.1...
22a0 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 70 .........src/Composer/Config.php
22c0 fc 07 00 00 bf 3e 04 50 fc 07 00 00 f2 d0 1b f0 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f .....>.P....................src/
22e0 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 bf 3e 04 Composer/Script/Event.php.....>.
2300 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 65 P................$...src/Compose
2320 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 bf 3e 04 r/Script/ScriptEvents.php.....>.
2340 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 65 P................$...src/Compose
2360 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 bf 3e 04 r/Script/CommandEvent.phpo....>.
2380 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 65 Po......y........$...src/Compose
23a0 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 bf 3e 04 r/Script/PackageEvent.php.....>.
23c0 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 65 P....[...........'...src/Compose
23e0 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 87 08 00 00 r/Script/EventDispatcher.php....
2400 bf 3e 04 50 87 08 00 00 3f 21 d5 e4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 .>.P....?!..........(...src/Comp
2420 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 70 oser/Installer/NoopInstaller.php
2440 15 05 00 00 bf 3e 04 50 15 05 00 00 b2 03 fd 15 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f .....>.P................/...src/
2460 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 6e Composer/Installer/MetapackageIn
2480 73 74 61 6c 6c 65 72 2e 70 68 70 a6 04 00 00 bf 3e 04 50 a6 04 00 00 ab a3 66 ce b6 01 00 00 00 staller.php.....>.P......f......
24a0 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 65 ...(...src/Composer/Installer/Pe
24c0 61 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 d5 0c 00 00 bf 3e 04 50 d5 0c 00 00 f3 60 7d b0 b6 arInstaller.php.....>.P.....`}..
24e0 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 65 .......+...src/Composer/Installe
2500 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 bf 3e 04 50 e1 05 r/ProjectInstaller.php.....>.P..
2520 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 49 ..>:1.........+...src/Composer/I
2540 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 b3 17 00 nstaller/LibraryInstaller.php...
2560 00 bf 3e 04 50 b3 17 00 00 43 28 18 2d b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d ..>.P....C(.-............src/Com
2580 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 61 poser/Installer/InstallationMana
25a0 67 65 72 2e 70 68 70 c2 0d 00 00 bf 3e 04 50 c2 0d 00 00 10 4e 05 ca b6 01 00 00 00 00 00 00 2d ger.php.....>.P.....N..........-
25c0 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 6c ...src/Composer/Installer/Instal
25e0 6c 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 bf 3e 04 50 c5 02 00 00 48 53 93 a1 lerInterface.php.....>.P....HS..
2600 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 6c ........-...src/Composer/Install
2620 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 b4 09 00 00 bf 3e 04 er/InstallerInstaller.php.....>.
2640 50 b4 09 00 00 86 07 a9 9e b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P................$...src/Compose
2660 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 f0 0b 00 00 bf 3e 04 r/Console/Application.php.....>.
2680 50 f0 0b 00 00 33 71 30 cc b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 P....3q0.........+...src/Compose
26a0 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 70 r/Autoload/AutoloadGenerator.php
26c0 61 21 00 00 bf 3e 04 50 61 21 00 00 f6 b1 56 d4 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f a!...>.Pa!....V.........+...src/
26e0 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 61 Composer/Autoload/ClassMapGenera
2700 74 6f 72 2e 70 68 70 81 07 00 00 bf 3e 04 50 81 07 00 00 00 bb ea bb b6 01 00 00 00 00 00 00 1a tor.php.....>.P.................
2720 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 e3 3c 00 ...src/Composer/Installer.php.<.
2740 00 bf 3e 04 50 e3 3c 00 00 76 d8 db 06 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d ..>.P.<..v...........%...src/Com
2760 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 9c 15 poser/Autoload/ClassLoader.php..
2780 00 00 bf 3e 04 50 9c 15 00 00 a4 69 f6 f6 b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 73 70 ...>.P.....i..............res/sp
27a0 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 58 09 00 00 bf 3e 04 50 58 09 00 00 8c 66 dx-identifier.jsonX....>.PX....f
27c0 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 6d ..............res/composer-schem
27e0 61 2e 6a 73 6f 6e 83 2b 00 00 bf 3e 04 50 83 2b 00 00 19 c3 95 61 b6 01 00 00 00 00 00 00 1f 00 a.json.+...>.P.+.....a..........
2800 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 78 ..src/Composer/IO/hiddeninput.ex
2820 65 00 24 00 00 bf 3e 04 50 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e e.$...>.P.$.....v........?...ven
2840 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 70 dor/symfony/process/Symfony/Comp
2860 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 df 02 00 00 onent/Process/PhpProcess.php....
2880 bf 3e 04 50 df 02 00 00 ed 5a e2 ae b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 .>.P.....Z..........E...vendor/s
28a0 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 74 ymfony/process/Symfony/Component
28c0 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 db 04 00 /Process/ExecutableFinder.php...
28e0 00 bf 3e 04 50 db 04 00 00 93 79 f1 6d b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f ..>.P.....y.m........<...vendor/
2900 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
2920 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 2e 2d 00 00 bf 3e 04 50 2e 2d 00 t/Process/Process.php.-...>.P.-.
2940 00 c2 37 91 c2 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 2f ..7..........C...vendor/symfony/
2960 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
2980 73 2f 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 1b 06 00 00 bf 3e 04 50 1b 06 00 00 s/ProcessBuilder.php.....>.P....
29a0 f9 d9 7b 51 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 70 ..{Q........Q...vendor/symfony/p
29c0 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 73 rocess/Symfony/Component/Process
29e0 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 68 /Exception/ExceptionInterface.ph
2a00 70 66 00 00 00 bf 3e 04 50 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e pf....>.Pf...].>T........O...ven
2a20 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 70 dor/symfony/process/Symfony/Comp
2a40 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 45 onent/Process/Exception/RuntimeE
2a60 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 00 00 00 bf 3e 04 50 98 00 00 00 a2 1b d8 3a b6 01 00 00 xception.php.....>.P.......:....
2a80 00 00 00 00 55 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 ....U...vendor/symfony/process/S
2aa0 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 69 ymfony/Component/Process/Excepti
2ac0 6f 6e 2f 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 a2 02 00 on/ProcessFailedException.php...
2ae0 00 bf 3e 04 50 a2 02 00 00 d2 3a 2f fc b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f ..>.P.....:/.........H...vendor/
2b00 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
2b20 74 2f 50 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 t/Process/PhpExecutableFinder.ph
2b40 70 44 03 00 00 bf 3e 04 50 44 03 00 00 fb dc e5 31 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e pD....>.PD......1........H...ven
2b60 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 70 dor/symfony/console/Symfony/Comp
2b80 6f 6e 65 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 onent/Console/Command/HelpComman
2ba0 64 2e 70 68 70 e2 05 00 00 bf 3e 04 50 e2 05 00 00 dd fc 1b ff b6 01 00 00 00 00 00 00 44 00 00 d.php.....>.P................D..
2bc0 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 2f .vendor/symfony/console/Symfony/
2be0 43 6f 6d 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 Component/Console/Command/Comman
2c00 64 2e 70 68 70 25 1c 00 00 bf 3e 04 50 25 1c 00 00 30 dc 95 87 b6 01 00 00 00 00 00 00 48 00 00 d.php%....>.P%...0...........H..
2c20 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 2f .vendor/symfony/console/Symfony/
2c40 43 6f 6d 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 Component/Console/Command/ListCo
2c60 6d 6d 61 6e 64 2e 70 68 70 3d 07 00 00 bf 3e 04 50 3d 07 00 00 5c f7 17 15 b6 01 00 00 00 00 00 mmand.php=....>.P=...\..........
2c80 00 4d 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 .M...vendor/symfony/console/Symf
2ca0 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 65 72 2f 41 70 70 ony/Component/Console/Tester/App
2cc0 6c 69 63 61 74 69 6f 6e 54 65 73 74 65 72 2e 70 68 70 f2 04 00 00 bf 3e 04 50 f2 04 00 00 2a a3 licationTester.php.....>.P....*.
2ce0 b4 04 b6 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 ..........I...vendor/symfony/con
2d00 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 54 sole/Symfony/Component/Console/T
2d20 65 73 74 65 72 2f 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 7a 04 00 00 bf 3e 04 50 7a ester/CommandTester.phpz....>.Pz
2d40 04 00 00 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 ...xU..........X...vendor/symfon
2d60 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
2d80 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
2da0 6c 65 53 74 61 63 6b 2e 70 68 70 08 05 00 00 bf 3e 04 50 08 05 00 00 79 08 49 27 b6 01 00 00 00 leStack.php.....>.P....y.I'.....
2dc0 00 00 00 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 ...S...vendor/symfony/console/Sy
2de0 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 61 74 74 65 mfony/Component/Console/Formatte
2e00 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 29 0c 00 00 bf 3e r/OutputFormatterStyle.php)....>
2e20 04 50 29 0c 00 00 35 5d 6e d2 b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .P)...5]n.........\...vendor/sym
2e40 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
2e60 6f 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 onsole/Formatter/OutputFormatter
2e80 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 64 01 00 00 bf 3e 04 50 64 01 00 00 03 42 StyleInterface.phpd....>.Pd....B
2ea0 23 b2 b6 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 #.........N...vendor/symfony/con
2ec0 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 46 sole/Symfony/Component/Console/F
2ee0 6f 72 6d 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 dd 0a 00 00 ormatter/OutputFormatter.php....
2f00 bf 3e 04 50 dd 0a 00 00 10 07 07 0d b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 .>.P................W...vendor/s
2f20 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
2f40 2f 43 6f 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 /Console/Formatter/OutputFormatt
2f60 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 6e 01 00 00 bf 3e 04 50 6e 01 00 00 f6 85 ee 10 b6 erInterface.phpn....>.Pn........
2f80 01 00 00 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 .......@...vendor/symfony/consol
2fa0 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 41 70 70 6c e/Symfony/Component/Console/Appl
2fc0 69 63 61 74 69 6f 6e 2e 70 68 70 37 48 00 00 bf 3e 04 50 37 48 00 00 bc f1 8c 99 b6 01 00 00 00 ication.php7H...>.P7H...........
2fe0 00 00 00 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 ...H...vendor/symfony/console/Sy
3000 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 6e mfony/Component/Console/Input/In
3020 70 75 74 41 72 67 75 6d 65 6e 74 2e 70 68 70 9a 05 00 00 bf 3e 04 50 9a 05 00 00 fd 77 4f 6d b6 putArgument.php.....>.P.....wOm.
3040 01 00 00 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 .......@...vendor/symfony/consol
3060 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 70 75 e/Symfony/Component/Console/Inpu
3080 74 2f 49 6e 70 75 74 2e 70 68 70 83 09 00 00 bf 3e 04 50 83 09 00 00 7c 3e 7f 5c b6 01 00 00 00 t/Input.php.....>.P....|>.\.....
30a0 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 79 ...F...vendor/symfony/console/Sy
30c0 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 53 74 mfony/Component/Console/Input/St
30e0 72 69 6e 67 49 6e 70 75 74 2e 70 68 70 92 05 00 00 bf 3e 04 50 92 05 00 00 8b 63 80 95 b6 01 00 ringInput.php.....>.P.....c.....
3100 00 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 .....F...vendor/symfony/console/
3120 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 70 75 74 2f Symfony/Component/Console/Input/
3140 49 6e 70 75 74 4f 70 74 69 6f 6e 2e 70 68 70 1a 0b 00 00 bf 3e 04 50 1a 0b 00 00 58 a5 aa 58 b6 InputOption.php.....>.P....X..X.
3160 01 00 00 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 .......D...vendor/symfony/consol
3180 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 70 75 e/Symfony/Component/Console/Inpu
31a0 74 2f 41 72 67 76 49 6e 70 75 74 2e 70 68 70 c4 10 00 00 bf 3e 04 50 c4 10 00 00 f6 34 b3 cc b6 t/ArgvInput.php.....>.P.....4...
31c0 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
31e0 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 70 75 e/Symfony/Component/Console/Inpu
3200 74 2f 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b7 02 00 00 bf 3e 04 50 b7 02 00 00 t/InputInterface.php.....>.P....
3220 7e 25 73 9a 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 ~%s.........E...vendor/symfony/c
3240 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
3260 2f 49 6e 70 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 d1 08 00 00 bf 3e 04 50 d1 08 00 /Input/ArrayInput.php.....>.P...
3280 00 da 5f 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 .._..........J...vendor/symfony/
32a0 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 6f 6c console/Symfony/Component/Consol
32c0 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 2e 70 68 70 d5 25 00 00 bf e/Input/InputDefinition.php.%...
32e0 3e 04 50 d5 25 00 00 e9 44 90 31 b6 01 00 00 00 00 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 >.P.%...D.1........:...vendor/sy
3300 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/
3320 43 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 e4 0d 00 00 bf 3e 04 50 e4 0d 00 00 d4 ac eb Console/Shell.php.....>.P.......
3340 c1 b6 01 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 .........B...vendor/symfony/cons
3360 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 4f 75 ole/Symfony/Component/Console/Ou
3380 74 70 75 74 2f 4f 75 74 70 75 74 2e 70 68 70 78 07 00 00 bf 3e 04 50 78 07 00 00 c6 02 19 a4 b6 tput/Output.phpx....>.Px........
33a0 01 00 00 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 .......F...vendor/symfony/consol
33c0 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 4f 75 74 70 e/Symfony/Component/Console/Outp
33e0 75 74 2f 4e 75 6c 6c 4f 75 74 70 75 74 2e 70 68 70 a3 00 00 00 bf 3e 04 50 a3 00 00 00 92 c7 a2 ut/NullOutput.php.....>.P.......
3400 8e b6 01 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 .........R...vendor/symfony/cons
3420 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 4f 75 ole/Symfony/Component/Console/Ou
3440 74 70 75 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 tput/ConsoleOutputInterface.php.
3460 01 00 00 bf 3e 04 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 ....>.P................H...vendo
3480 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
34a0 65 6e 74 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 ent/Console/Output/StreamOutput.
34c0 70 68 70 99 04 00 00 bf 3e 04 50 99 04 00 00 c1 96 d0 a5 b6 01 00 00 00 00 00 00 4b 00 00 00 76 php.....>.P................K...v
34e0 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 2f 43 6f endor/symfony/console/Symfony/Co
3500 6d 70 6f 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 mponent/Console/Output/OutputInt
3520 65 72 66 61 63 65 2e 70 68 70 ae 02 00 00 bf 3e 04 50 ae 02 00 00 8f da 2d a7 b6 01 00 00 00 00 erface.php.....>.P......-.......
3540 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 79 6d ..I...vendor/symfony/console/Sym
3560 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 43 6f fony/Component/Console/Output/Co
3580 6e 73 6f 6c 65 4f 75 74 70 75 74 2e 70 68 70 74 05 00 00 bf 3e 04 50 74 05 00 00 28 c8 3e 54 b6 nsoleOutput.phpt....>.Pt...(.>T.
35a0 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 6e 73 6f 6c .......K...vendor/symfony/consol
35c0 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 48 65 6c 70 e/Symfony/Component/Console/Help
35e0 65 72 2f 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 da 00 00 00 bf 3e 04 50 da 00 er/HelperInterface.php.....>.P..
3600 00 00 98 43 e5 17 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 ...C..........K...vendor/symfony
3620 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 6f /console/Symfony/Component/Conso
3640 6c 65 2f 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 9f 04 00 le/Helper/FormatterHelper.php...
3660 00 bf 3e 04 50 9f 04 00 00 f5 fe 15 54 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f ..>.P.......T........E...vendor/
3680 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
36a0 74 2f 43 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 t/Console/Helper/HelperSet.php..
36c0 00 00 bf 3e 04 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 ...>.P.....^9t........H...vendor
36e0 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
3700 6e 74 2f 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 nt/Console/Helper/DialogHelper.p
3720 68 70 ec 05 00 00 bf 3e 04 50 ec 05 00 00 31 be 47 8a b6 01 00 00 00 00 00 00 42 00 00 00 76 65 hp.....>.P....1.G.........B...ve
3740 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
3760 70 6f 6e 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 ponent/Console/Helper/Helper.php
3780 39 01 00 00 bf 3e 04 50 39 01 00 00 8b fa a9 8a b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 9....>.P9...............9...vend
37a0 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 6f 6e or/symfony/finder/Symfony/Compon
37c0 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 3c 19 00 00 bf 3e 04 50 3c 19 00 ent/Finder/Finder.php<....>.P<..
37e0 00 8b ef 3a b7 b6 01 00 00 00 00 00 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ...:.........7...vendor/symfony/
3800 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 65 72 2f finder/Symfony/Component/Finder/
3820 47 6c 6f 62 2e 70 68 70 0d 05 00 00 bf 3e 04 50 0d 05 00 00 c3 62 b5 af b6 01 00 00 00 00 00 00 Glob.php.....>.P.....b..........
3840 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 66 6f 6e T...vendor/symfony/finder/Symfon
3860 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 65 70 74 y/Component/Finder/Iterator/Dept
3880 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 68 03 00 00 bf 3e 04 50 hRangeFilterIterator.phph....>.P
38a0 68 03 00 00 9b 55 6f 1a b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f h....Uo.........L...vendor/symfo
38c0 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
38e0 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 70 68 70 er/Iterator/SortableIterator.php
3900 dc 05 00 00 bf 3e 04 50 dc 05 00 00 20 48 a0 3a b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 .....>.P.....H.:........U...vend
3920 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 6f 6e or/symfony/finder/Symfony/Compon
3940 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 6e 74 46 ent/Finder/Iterator/FilecontentF
3960 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 bf 3e 04 50 23 03 00 00 da 5f 56 ilterIterator.php#....>.P#...._V
3980 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 69 6e 64 .........S...vendor/symfony/find
39a0 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
39c0 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 70 68 70 ator/SizeRangeFilterIterator.php
39e0 2d 02 00 00 bf 3e 04 50 2d 02 00 00 fc 36 51 1f b6 01 00 00 00 00 00 00 5a 00 00 00 76 65 6e 64 -....>.P-....6Q.........Z...vend
3a00 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 6f 6e or/symfony/finder/Symfony/Compon
3a20 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 72 65 63 ent/Finder/Iterator/ExcludeDirec
3a40 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 a6 02 00 00 bf 3e 04 50 a6 02 toryFilterIterator.php.....>.P..
3a60 00 00 d3 40 31 de b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ...@1.........V...vendor/symfony
3a80 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 65 72 /finder/Symfony/Component/Finder
3aa0 2f 49 74 65 72 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 /Iterator/MultiplePcreFilterIter
3ac0 61 74 6f 72 2e 70 68 70 a7 03 00 00 bf 3e 04 50 a7 03 00 00 32 2e b3 2a b6 01 00 00 00 00 00 00 ator.php.....>.P....2..*........
3ae0 50 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 P...vendor/symfony/finder/Symfon
3b00 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 43 75 73 74 y/Component/Finder/Iterator/Cust
3b20 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 bf 3e 04 50 5c 02 00 00 omFilterIterator.php\....>.P\...
3b40 49 ca 33 b2 b6 01 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 66 I.3.........R...vendor/symfony/f
3b60 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
3b80 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 terator/FilenameFilterIterator.p
3ba0 68 70 7a 02 00 00 bf 3e 04 50 7a 02 00 00 57 6c 19 48 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 hpz....>.Pz...Wl.H........S...ve
3bc0 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
3be0 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 61 74 65 52 61 6e 67 65 46 onent/Finder/Iterator/DateRangeF
3c00 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 2f 02 00 00 bf 3e 04 50 2f 02 00 00 d8 b4 1b ilterIterator.php/....>.P/......
3c20 08 b6 01 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 66 69 6e 64 .........R...vendor/symfony/find
3c40 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
3c60 61 74 6f 72 2f 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5d ator/FileTypeFilterIterator.php]
3c80 02 00 00 bf 3e 04 50 5d 02 00 00 fe c9 56 90 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f ....>.P].....V.........V...vendo
3ca0 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
3cc0 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 52 65 63 75 72 73 69 76 65 44 69 72 65 nt/Finder/Iterator/RecursiveDire
3ce0 63 74 6f 72 79 49 74 65 72 61 74 6f 72 2e 70 68 70 37 02 00 00 bf 3e 04 50 37 02 00 00 01 50 88 ctoryIterator.php7....>.P7....P.
3d00 37 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 7........L...vendor/symfony/find
3d20 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 43 6f 6d 70 er/Symfony/Component/Finder/Comp
3d40 61 72 61 74 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 26 03 00 00 bf 3e 04 arator/DateComparator.php&....>.
3d60 50 26 03 00 00 e9 68 64 b1 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 P&....hd.........N...vendor/symf
3d80 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
3da0 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 2e der/Comparator/NumberComparator.
3dc0 70 68 70 79 03 00 00 bf 3e 04 50 79 03 00 00 22 60 14 db b6 01 00 00 00 00 00 00 48 00 00 00 76 phpy....>.Py..."`..........H...v
3de0 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
3e00 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 43 6f 6d 70 61 72 61 ponent/Finder/Comparator/Compara
3e20 74 6f 72 2e 70 68 70 88 03 00 00 bf 3e 04 50 88 03 00 00 3e 9a 5d 58 b6 01 00 00 00 00 00 00 3e tor.php.....>.P....>.]X........>
3e40 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 79 ...vendor/symfony/finder/Symfony
3e60 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 6f 2e 70 68 /Component/Finder/SplFileInfo.ph
3e80 70 f9 02 00 00 bf 3e 04 50 f9 02 00 00 b6 62 24 ba b6 01 00 00 00 00 00 00 34 00 00 00 76 65 6e p.....>.P.....b$.........4...ven
3ea0 64 6f 72 2f 73 65 6c 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 dor/seld/jsonlint/src/Seld/JsonL
3ec0 69 6e 74 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 bf 3e 04 50 3e 00 00 00 ff 71 9f int/Undefined.php>....>.P>....q.
3ee0 9f b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e .........5...vendor/seld/jsonlin
3f00 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4a 73 6f 6e 50 61 72 73 65 72 2e 70 t/src/Seld/JsonLint/JsonParser.p
3f20 68 70 83 26 00 00 bf 3e 04 50 83 26 00 00 bb d0 e1 7e b6 01 00 00 00 00 00 00 30 00 00 00 76 65 hp.&...>.P.&.....~........0...ve
3f40 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e ndor/seld/jsonlint/src/Seld/Json
3f60 4c 69 6e 74 2f 4c 65 78 65 72 2e 70 68 70 91 10 00 00 bf 3e 04 50 91 10 00 00 38 49 09 44 b6 01 Lint/Lexer.php.....>.P....8I.D..
3f80 00 00 00 00 00 00 3b 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 ......;...vendor/seld/jsonlint/s
3fa0 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f rc/Seld/JsonLint/ParsingExceptio
3fc0 6e 2e 70 68 70 1d 01 00 00 bf 3e 04 50 1d 01 00 00 fd bb 3a cb b6 01 00 00 00 00 00 00 49 00 00 n.php.....>.P......:.........I..
3fe0 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 68 65 6d .vendor/justinrainbow/json-schem
4000 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 55 6e 64 a/src/JsonSchema/Constraints/Und
4020 65 66 69 6e 65 64 2e 70 68 70 78 06 00 00 bf 3e 04 50 78 06 00 00 68 b7 d9 71 b6 01 00 00 00 00 efined.phpx....>.Px...h..q......
4040 00 00 44 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 ..D...vendor/justinrainbow/json-
4060 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 61 69 6e 74 schema/src/JsonSchema/Constraint
4080 73 2f 54 79 70 65 2e 70 68 70 d4 05 00 00 bf 3e 04 50 d4 05 00 00 85 e9 2b 46 b6 01 00 00 00 00 s/Type.php.....>.P......+F......
40a0 00 00 46 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 ..F...vendor/justinrainbow/json-
40c0 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 61 69 6e 74 schema/src/JsonSchema/Constraint
40e0 73 2f 53 63 68 65 6d 61 2e 70 68 70 d4 01 00 00 bf 3e 04 50 d4 01 00 00 b9 3a 66 4d b6 01 00 00 s/Schema.php.....>.P.....:fM....
4100 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 62 6f 77 2f 6a 73 6f ....F...vendor/justinrainbow/jso
4120 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 61 69 n-schema/src/JsonSchema/Constrai
4140 6e 74 73 2f 4e 75 6d 62 65 72 2e 70 68 70 57 02 00 00 bf 3e 04 50 57 02 00 00 2e 31 f2 e7 b6 01 nts/Number.phpW....>.PW....1....
4160 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 62 6f 77 2f 6a ......F...vendor/justinrainbow/j
4180 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
41a0 61 69 6e 74 73 2f 4f 62 6a 65 63 74 2e 70 68 70 94 07 00 00 bf 3e 04 50 94 07 00 00 63 e8 5a fb aints/Object.php.....>.P....c.Z.
41c0 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 ........S...vendor/justinrainbow
41e0 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 6f 6e 73 /json-schema/src/JsonSchema/Cons
4200 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 24 traints/ConstraintInterface.php$
4220 01 00 00 bf 3e 04 50 24 01 00 00 03 67 d6 ec b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f ....>.P$....g..........J...vendo
4240 72 2f 6a 75 73 74 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 r/justinrainbow/json-schema/src/
4260 4a 73 6f 6e 53 63 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 JsonSchema/Constraints/Constrain
4280 74 2e 70 68 70 15 0a 00 00 bf 3e 04 50 15 0a 00 00 3e 1d e3 18 b6 01 00 00 00 00 00 00 4a 00 00 t.php.....>.P....>...........J..
42a0 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 68 65 6d .vendor/justinrainbow/json-schem
42c0 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 43 6f 6c a/src/JsonSchema/Constraints/Col
42e0 6c 65 63 74 69 6f 6e 2e 70 68 70 56 08 00 00 bf 3e 04 50 56 08 00 00 dc 3c a7 b6 b6 01 00 00 00 lection.phpV....>.PV....<.......
4300 00 00 00 44 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 ...D...vendor/justinrainbow/json
4320 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 61 69 6e -schema/src/JsonSchema/Constrain
4340 74 73 2f 45 6e 75 6d 2e 70 68 70 86 01 00 00 bf 3e 04 50 86 01 00 00 24 28 6d be b6 01 00 00 00 ts/Enum.php.....>.P....$(m......
4360 00 00 00 46 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 ...F...vendor/justinrainbow/json
4380 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 61 69 6e -schema/src/JsonSchema/Constrain
43a0 74 73 2f 53 74 72 69 6e 67 2e 70 68 70 98 02 00 00 bf 3e 04 50 98 02 00 00 b4 f5 97 6b b6 01 00 ts/String.php.....>.P.......k...
43c0 00 00 00 00 00 3d 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 .....=...vendor/justinrainbow/js
43e0 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 56 61 6c 69 64 61 74 on-schema/src/JsonSchema/Validat
4400 6f 72 2e 70 68 70 5b 01 00 00 bf 3e 04 50 5b 01 00 00 38 11 97 f6 b6 01 00 00 00 00 00 00 13 00 or.php[....>.P[...8.............
4420 00 00 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 1a 02 00 00 bf 3e 04 50 1a 02 00 ..vendor/autoload.php.....>.P...
4440 00 9c b0 61 5b b6 01 00 00 00 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 ...a[........'...vendor/composer
4460 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 bb 01 00 00 bf 3e 04 50 /autoload_namespaces.php.....>.P
4480 bb 01 00 00 11 1f 28 c3 b6 01 00 00 00 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f ......(.........%...vendor/compo
44a0 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 5a 00 00 00 bf 3e 04 ser/autoload_classmap.phpZ....>.
44c0 50 5a 00 00 00 eb a6 e1 96 b6 01 00 00 00 00 00 00 1f 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 PZ...................vendor/comp
44e0 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 43 09 00 00 bf 3e 04 50 43 09 00 00 oser/ClassLoader.phpC....>.PC...
4500 85 1c a0 e0 b6 01 00 00 00 00 00 00 0c 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 65 72 01 01 00 00 ................bin/composer....
4520 bf 3e 04 50 01 01 00 00 ef 0c 6f 68 b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 45 4e 53 45 33 .>.P......oh............LICENSE3
4540 04 00 00 bf 3e 04 50 33 04 00 00 0b 81 32 0b b6 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a ....>.P3.....2.........<?php....
4560 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 45 78 69 73 74 73 ........function.includeIfExists
4580 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 24 66 69 6c 65 29 ($file).{.if.(file_exists($file)
45a0 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 7d 0a 7d 0a 0a 69 ).{.return.include.$file;.}.}..i
45c0 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 69 73 74 73 28 5f f.((!$loader.=.includeIfExists(_
45e0 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 64 2e 70 68 70 27 _DIR__.'/../vendor/autoload.php'
4600 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 66 45 78 69 73 74 )).&&.(!$loader.=.includeIfExist
4620 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 6f 61 64 2e 70 68 s(__DIR__.'/../../../autoload.ph
4640 70 27 29 29 29 20 7b 0a 64 69 65 28 27 59 6f 75 20 6d 75 73 74 20 73 65 74 20 75 70 20 74 68 65 p'))).{.die('You.must.set.up.the
4660 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 6e 20 74 68 65 20 66 .project.dependencies,.run.the.f
4680 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 4f 4c 2e 0a 27 63 75 ollowing.commands:'.PHP_EOL..'cu
46a0 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 6f 72 67 2f 69 6e 73 rl.-s.http://getcomposer.org/ins
46c0 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 68 70 20 63 6f 6d 70 taller.|.php'.PHP_EOL..'php.comp
46e0 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 4c 29 3b 0a 7d 0a 0a oser.phar.install'.PHP_EOL);.}..
4700 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$loader;.<?php...........
4720 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 75 73 65 20 53 79 6d .namespace.Composer\IO;..use.Sym
4740 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
4760 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
4780 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 66 61 63 nt\Console\Output\OutputInterfac
47a0 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 65 e;.use.Symfony\Component\Console
47c0 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 \Helper\HelperSet;........class.
47e0 43 6f 6e 73 6f 6c 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 61 63 65 ConsoleIO.implements.IOInterface
4800 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 .{.protected.$input;.protected.$
4820 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 output;.protected.$helperSet;.pr
4840 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 otected.$authorizations.=.array(
4860 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 3b 0a 0a 0a 0a 0a 0a );.protected.$lastMessage;......
4880 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
48a0 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 65 nputInterface.$input,.OutputInte
48c0 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 rface.$output,.HelperSet.$helper
48e0 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 Set).{.$this->input.=.$input;.$t
4900 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 68 65 his->output.=.$output;.$this->he
4920 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 70 75 62 6c lperSet.=.$helperSet;.}.....publ
4940 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 ic.function.isInteractive().{.re
4960 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 turn.$this->input->isInteractive
4980 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 69 73 44 65 63 6f ();.}.....public.function.isDeco
49a0 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e rated().{.return.$this->output->
49c0 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 isDecorated();.}.....public.func
49e0 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 tion.isVerbose().{.return.(bool)
4a00 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 .$this->input->getOption('verbos
4a20 65 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 77 72 69 74 65 e');.}.....public.function.write
4a40 28 24 6d 65 73 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 24 ($messages,.$newline.=.true).{.$
4a60 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 this->output->write($messages,.$
4a80 6e 65 77 6c 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 6a newline);.$this->lastMessage.=.j
4aa0 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 oin($newline.?."\n".:.'',.(array
4ac0 29 20 24 6d 65 73 73 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 ).$messages);.}.....public.funct
4ae0 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 24 6e 65 77 6c 69 6e ion.overwrite($messages,.$newlin
4b00 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6d 65 73 e.=.true,.$size.=.null).{...$mes
4b20 73 61 67 65 73 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 27 sages.=.join($newline.?."\n".:.'
4b40 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 0a 20 69 66 20 28 21 69 ',.(array).$messages);....if.(!i
4b60 73 73 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 20 3d 20 73 74 72 6c 65 6e 28 sset($size)).{...$size.=.strlen(
4b80 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 29 29 3b strip_tags($this->lastMessage));
4ba0 0a 7d 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 22 5c 78 .}...$this->write(str_repeat("\x
4bc0 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 77 08",.$size),.false);....$this->w
4be0 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 29 3b 0a 0a 24 66 69 6c 6c 20 3d rite($messages,.false);..$fill.=
4c00 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 6d 65 73 73 .$size.-.strlen(strip_tags($mess
4c20 61 67 65 73 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a 0a 20 24 74 68 69 73 ages));.if.($fill.>.0).{...$this
4c40 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 66 69 6c 6c 29 2c 20 ->write(str_repeat('.',.$fill),.
4c60 66 61 6c 73 65 29 3b 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 false);...$this->write(str_repea
4c80 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 t("\x08",.$fill),.false);.}..if.
4ca0 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d ($newline).{.$this->write('');.}
4cc0 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 73 73 61 67 65 73 3b .$this->lastMessage.=.$messages;
4ce0 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 75 65 73 .}.....public.function.ask($ques
4d00 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 72 6e 20 tion,.$default.=.null).{.return.
4d20 24 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 $this->helperSet->get('dialog')-
4d40 3e 61 73 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 >ask($this->output,.$question,.$
4d60 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.
4d80 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 65 66 61 askConfirmation($question,.$defa
4da0 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 ult.=.true).{.return.$this->help
4dc0 65 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d erSet->get('dialog')->askConfirm
4de0 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 ation($this->output,.$question,.
4e00 24 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 $default);.}.....public.function
4e20 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 6c 69 .askAndValidate($question,.$vali
4e40 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 61 75 dator,.$attempts.=.false,.$defau
4e60 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 lt.=.null).{.return.$this->helpe
4e80 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 rSet->get('dialog')->askAndValid
4ea0 61 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 ate($this->output,.$question,.$v
4ec0 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a alidator,.$attempts,.$default);.
4ee0 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 48 69 64 65 }.....public.function.askAndHide
4f00 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 Answer($question).{...if.(define
4f20 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')).
4f40 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e {.$exe.=.__DIR__.'\\hiddeninput.
4f60 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 28 exe';....if.('phar:'.===.substr(
4f80 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 73 __FILE__,.0,.5)).{.$tmpExe.=.sys
4fa0 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 _get_temp_dir().'/hiddeninput.ex
4fc0 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 20 3d 20 e';.copy($exe,.$tmpExe);.$exe.=.
4fe0 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 $tmpExe;.}..$this->write($questi
5000 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c on,.false);.$value.=.rtrim(shell
5020 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a _exec($exe));.$this->write('');.
5040 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 ...if.(isset($tmpExe)).{.unlink(
5060 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 $tmpExe);.}..return.$value;.}..i
5080 66 20 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 f.(file_exists('/usr/bin/env')).
50a0 7b 0a 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 {...$test.=."/usr/bin/env.%s.-c.
50c0 27 65 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 'echo.OK'.2>./dev/null";.foreach
50e0 20 28 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 .(array('bash',.'zsh',.'ksh',.'c
5100 73 68 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 sh').as.$sh).{.if.('OK'.===.rtri
5120 6d 28 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 m(shell_exec(sprintf($test,.$sh)
5140 29 29 29 20 7b 0a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 ))).{.$shell.=.$sh;.break;.}.}.i
5160 66 20 28 69 73 73 65 74 28 24 73 68 65 6c 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 f.(isset($shell)).{.$this->write
5180 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 28 ($question,.false);.$readCmd.=.(
51a0 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 29 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 $shell.===.'csh').?.'set.mypassw
51c0 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 ord.=.$<'.:.'read.mypassword';.$
51e0 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 command.=.sprintf("/usr/bin/env.
5200 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f %s.-c.'stty.-echo;.%s;.stty.echo
5220 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 ;.echo.\$mypassword'",.$shell,.$
5240 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 readCmd);.$value.=.rtrim(shell_e
5260 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 xec($command));.$this->write('')
5280 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 ;..return.$value;.}.}....return.
52a0 24 74 68 69 73 2d 3e 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 $this->ask($question);.}.....pub
52c0 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 73 28 29 lic.function.getAuthorizations()
52e0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 3b .{.return.$this->authorizations;
5300 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 6f 72 .}.....public.function.hasAuthor
5320 69 7a 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 61 75 74 68 ization($repositoryName).{.$auth
5340 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 28 29 3b 0a s.=.$this->getAuthorizations();.
5360 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 .return.isset($auths[$repository
5380 4e 61 6d 65 5d 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 Name]);.}.....public.function.ge
53a0 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 29 0a tAuthorization($repositoryName).
53c0 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 72 69 7a 61 74 69 {.$auths.=.$this->getAuthorizati
53e0 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 73 5b 24 72 65 70 ons();..return.isset($auths[$rep
5400 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 20 3f 20 24 61 75 74 68 73 5b 24 72 65 70 6f 73 69 74 6f ositoryName]).?.$auths[$reposito
5420 72 79 4e 61 6d 65 5d 20 3a 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 ryName].:.array('username'.=>.nu
5440 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ll,.'password'.=>.null);.}.....p
5460 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 ublic.function.setAuthorization(
5480 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 $repositoryName,.$username,.$pas
54a0 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 69 7a 61 sword.=.null).{.$this->authoriza
54c0 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 27 tions[$repositoryName].=.array('
54e0 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e 61 6d 65 2c 20 27 70 61 73 73 77 6f 72 username'.=>.$username,.'passwor
5500 64 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a d'.=>.$password);.}.}.<?php.....
5520 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 49 4f 3b 0a 0a 0a .......namespace.Composer\IO;...
5540 0a 0a 0a 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 ....class.NullIO.implements.IOIn
5560 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 69 73 49 terface.{....public.function.isI
5580 6e 74 65 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 nteractive().{.return.false;.}..
55a0 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 7b ...public.function.isVerbose().{
55c0 0a 72 65 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 .return.false;.}.....public.func
55e0 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 66 61 6c 73 tion.isDecorated().{.return.fals
5600 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 77 72 69 74 65 28 24 e;.}.....public.function.write($
5620 6d 65 73 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 messages,.$newline.=.true).{.}..
5640 0a 0a 0a 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 ...public.function.overwrite($me
5660 73 73 61 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 ssages,.$newline.=.true,.$size.=
5680 20 38 30 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 .80).{.}.....public.function.ask
56a0 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 0a 7b 0a 72 ($question,.$default.=.null).{.r
56c0 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 63 20 66 75 6e eturn.$default;.}.....public.fun
56e0 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 69 6f 6e 2c ction.askConfirmation($question,
5700 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 64 65 66 61 .$default.=.true).{.return.$defa
5720 75 6c 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 61 73 6b 41 6e ult;.}.....public.function.askAn
5740 64 56 61 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 dValidate($question,.$validator,
5760 20 24 61 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 .$attempts.=.false,.$default.=.n
5780 75 6c 6c 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 ull).{.return.$default;.}.....pu
57a0 62 6c 69 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 blic.function.askAndHideAnswer($
57c0 71 75 65 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 question).{.return.null;.}.....p
57e0 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 73 ublic.function.getAuthorizations
5800 28 29 0a 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 ().{.return.array();.}.....publi
5820 63 20 66 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 c.function.hasAuthorization($rep
5840 6f 73 69 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 ositoryName).{.return.false;.}..
5860 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 69 7a 61 74 ...public.function.getAuthorizat
5880 69 6f 6e 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 ion($repositoryName).{.return.ar
58a0 72 61 79 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 ray('username'.=>.null,.'passwor
58c0 64 27 20 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 d'.=>.null);.}.....public.functi
58e0 6f 6e 20 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 on.setAuthorization($repositoryN
5900 61 6d 65 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 ame,.$username,.$password.=.null
5920 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 65 73 70 61 ).{.}.}.<?php............namespa
5940 63 65 20 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 ce.Composer\IO;.......interface.
5960 49 4f 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 69 IOInterface.{......public.functi
5980 6f 6e 20 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 on.isInteractive();.......public
59a0 20 66 75 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 .function.isVerbose();.......pub
59c0 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 0a 0a lic.function.isDecorated();.....
59e0 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 73 61 67 ...public.function.write($messag
5a00 65 73 2c 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 es,.$newline.=.true);.........pu
5a20 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
5a40 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 29 3b s,.$newline.=.true,.$size.=.80);
5a60 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 73 6b 28 ............public.function.ask(
5a80 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 3b 0a 0a 0a 0a $question,.$default.=.null);....
5aa0 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 43 6f 6e 66 69 ........public.function.askConfi
5ac0 72 6d 61 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 rmation($question,.$default.=.tr
5ae0 75 65 29 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 ue);..................public.fun
5b00 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 69 6f 6e 2c 20 ction.askAndValidate($question,.
5b20 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 65 2c 20 24 $validator,.$attempts.=.false,.$
5b40 64 65 66 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 default.=.null);.........public.
5b60 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 73 74 function.askAndHideAnswer($quest
5b80 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 6e 20 67 65 74 41 ion);.......public.function.getA
5ba0 75 74 68 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 uthorizations();.........public.
5bc0 66 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 function.hasAuthorization($repos
5be0 69 74 6f 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 itoryName);.........public.funct
5c00 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 6f 73 69 74 6f 72 79 ion.getAuthorization($repository
5c20 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 20 73 Name);.........public.function.s
5c40 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 2c etAuthorization($repositoryName,
5c60 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 3b 0a 7d .$username,.$password.=.null);.}
5c80 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
5ca0 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 6d 70 oser\Command;..use.Composer\Comp
5cc0 6f 73 65 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 oser;.use.Composer\Console\Appli
5ce0 63 61 74 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 cation;.use.Composer\IO\IOInterf
5d00 61 63 65 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 ace;.use.Composer\IO\NullIO;.use
5d20 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 61 .Symfony\Component\Console\Comma
5d40 6e 64 5c 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 nd\Command.as.BaseCommand;......
5d60 0a 0a 61 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 ..abstract.class.Command.extends
5d80 20 42 61 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 .BaseCommand.{....private.$compo
5da0 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 70 75 62 6c 69 ser;.....private.$io;......publi
5dc0 63 20 66 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 c.function.getComposer($required
5de0 20 3d 20 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 .=.true).{.if.(null.===.$this->c
5e00 6f 6d 70 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 omposer).{.$application.=.$this-
5e20 3e 67 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 >getApplication();.if.($applicat
5e40 69 6f 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 ion.instanceof.Application).{..$
5e60 74 68 69 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 this->composer.=.$application->g
5e80 65 74 43 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 etComposer($required);.}.elseif.
5ea0 28 24 72 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 ($required).{.throw.new.\Runtime
5ec0 45 78 63 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 Exception(.'Could.not.create.a.C
5ee0 6f 6d 70 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 omposer\Composer.instance,.you.m
5f00 75 73 74 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 ust.inject.'..'one.if.this.comma
5f20 6e 64 20 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 nd.is.not.used.with.a.Composer\C
5f40 6f 6e 73 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 onsole\Application.instance'.);.
5f60 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;.}..
5f80 0a 0a 0a 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 ...public.function.setComposer(C
5fa0 6f 6d 70 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 omposer.$composer).{.$this->comp
5fc0 6f 73 65 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 oser.=.$composer;.}.....public.f
5fe0 75 6e 63 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 unction.getIO().{.if.(null.===.$
6000 74 68 69 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 this->io).{.$application.=.$this
6020 2d 3e 67 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 ->getApplication();.if.($applica
6040 74 69 6f 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 tion.instanceof.Application).{..
6060 24 74 68 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 $this->io.=.$application->getIO(
6080 29 3b 0a 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 );.}.else.{.$this->io.=.new.Null
60a0 49 4f 28 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 IO();.}.}..return.$this->io;.}..
60c0 0a 0a 0a 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 ...public.function.setIO(IOInter
60e0 66 61 63 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 face.$io).{.$this->io.=.$io;.}.}
6100 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
6120 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 46 61 63 74 oser\Command;..use.Composer\Fact
6140 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 73 65 ory;.use.Composer\Installer;.use
6160 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 72 6f 6a 65 63 74 49 6e 73 74 61 .Composer\Installer\ProjectInsta
6180 6c 6c 65 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 ller;.use.Composer\IO\IOInterfac
61a0 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 6d 70 6f e;.use.Composer\Repository\Compo
61c0 73 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 serRepository;.use.Composer\Repo
61e0 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 20 sitory\CompositeRepository;.use.
6200 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 65 6d 52 65 Composer\Repository\FilesystemRe
6220 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 6f 72 pository;.use.Composer\Repositor
6240 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;
6260 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
6280 65 64 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 53 79 6d 66 edFilesystemRepository;.use.Symf
62a0 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
62c0 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 70 6f 6e 65 6e 74 tArgument;.use.Symfony\Component
62e0 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
6300 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
6320 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
6340 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
6360 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 73 6f 6e 46 69 6c 65 face;.use.Composer\Json\JsonFile
6380 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 6c 65 73 79 ;.use.Composer\Util\RemoteFilesy
63a0 73 74 65 6d 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 stem;.use.Composer\Package\Versi
63c0 6f 6e 5c 56 65 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 43 72 on\VersionParser;.......class.Cr
63e0 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 eateProjectCommand.extends.Comma
6400 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 69 67 75 72 nd.{.protected.function.configur
6420 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 74 65 2d 70 72 e().{.$this.->setName('create-pr
6440 6f 6a 65 63 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 oject').->setDescription('Create
6460 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 20 69 6e 74 6f .new.project.from.a.package.into
6480 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 .given.directory.').->setDefinit
64a0 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 27 70 61 ion(array(.new.InputArgument('pa
64c0 63 6b 61 67 65 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 ckage',.InputArgument::REQUIRED,
64e0 20 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 27 29 .'Package.name.to.be.installed')
6500 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 2c ,.new.InputArgument('directory',
6520 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 20 27 44 69 72 65 63 .InputArgument::OPTIONAL,.'Direc
6540 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 tory.where.the.files.should.be.c
6560 72 65 61 74 65 64 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 reated'),.new.InputArgument('ver
6580 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 4f 4e 41 4c 2c 20 sion',.InputArgument::OPTIONAL,.
65a0 27 56 65 72 73 69 6f 6e 2c 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 61 74 65 73 'Version,.will.defaults.to.lates
65c0 74 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 75 t'),.new.InputOption('prefer-sou
65e0 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 4e rce',.null,.InputOption::VALUE_N
6600 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 70 ONE,.'Forces.installation.from.p
6620 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 6e ackage.sources.when.possible,.in
6640 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 20 cluding.VCS.information.'),.new.
6660 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 InputOption('repository-url',.nu
6680 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,
66a0 20 27 50 69 63 6b 20 61 20 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 .'Pick.a.different.repository.ur
66c0 6c 20 74 6f 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 l.to.look.for.the.package.'),.ne
66e0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 w.InputOption('dev',.null,.Input
6700 4f 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 Option::VALUE_NONE,.'Whether.to.
6720 69 6e 73 74 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 install.dependencies.for.develop
6740 6d 65 6e 74 2e 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 ment.').)).->setHelp(<<<EOT.The.
6760 3c 69 6e 66 6f 3e 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d <info>create-project</info>.comm
6780 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f 6d 20 61 and.creates.a.new.project.from.a
67a0 20 67 69 76 65 6e 0a 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 69 72 65 63 74 .given.package.into.a.new.direct
67c0 6f 72 79 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f ory..You.can.use.this.command.to
67e0 20 62 6f 6f 74 73 74 72 61 70 20 6e 65 77 0a 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 .bootstrap.new.projects.or.setup
6800 20 61 20 63 6c 65 61 6e 20 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 .a.clean.version-controlled.inst
6820 61 6c 6c 61 74 69 6f 6e 0a 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 allation.for.developers.of.your.
6840 70 72 6f 6a 65 63 74 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 project...<info>php.composer.pha
6860 72 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 r.create-project.vendor/project.
6880 74 61 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f target-directory.[version]</info
68a0 3e 0a 0a 54 6f 20 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 6c 65 >..To.setup.a.developer.workable
68c0 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 20 70 .version.you.should.create.the.p
68e0 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f 6c 6c roject.using.the.source.controll
6900 65 64 20 63 6f 64 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f 3e 27 ed.code.by.appending.the.<info>'
6920 2d 2d 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 20 41 6c --prefer-source'</info>.flag..Al
6940 73 6f 2c 20 69 74 20 69 73 0a 61 64 76 69 73 61 62 6c 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 61 so,.it.is.advisable.to.install.a
6960 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 64 65 76 ll.dependencies.required.for.dev
6980 65 6c 6f 70 6d 65 6e 74 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 0a 3c 69 6e 66 6f 3e elopment.by.appending.the.<info>
69a0 27 2d 2d 64 65 76 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c '--dev'</info>.flag...To.install
69c0 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 65 72 20 72 65 70 6f 73 69 74 6f .a.package.from.another.reposito
69e0 72 79 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f ry.repository.than.the.default.o
6a00 6e 65 20 79 6f 75 0a 63 61 6e 20 70 61 73 73 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 65 70 ne.you.can.pass.the.<info>'--rep
6a20 6f 73 69 74 6f 72 79 2d 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 79 2e ository-url=http://myrepository.
6a40 6f 72 67 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 org'</info>.flag...EOT.).;.}..pr
6a60 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 49 6e otected.function.execute(InputIn
6a80 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.
6aa0 24 6f 75 74 70 75 74 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 $output).{.return.$this->install
6ac0 50 72 6f 6a 65 63 74 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 6e 70 75 74 2d Project(.$this->getIO(),.$input-
6ae0 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 2d >getArgument('package'),.$input-
6b00 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 29 2c 0a 24 69 6e 70 75 >getArgument('directory'),.$inpu
6b20 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 2c 0a 24 69 6e 70 75 t->getArgument('version'),.$inpu
6b40 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 2c 0a 24 t->getOption('prefer-source'),.$
6b60 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 2c 0a 24 69 6e 70 75 74 2d input->getOption('dev'),.$input-
6b80 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 29 0a 29 3b 0a >getOption('repository-url').);.
6ba0 7d 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 50 72 6f 6a 65 63 }..public.function.installProjec
6bc0 74 28 49 4f 49 6e 74 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 t(IOInterface.$io,.$packageName,
6be0 20 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e .$directory.=.null,.$version.=.n
6c00 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 69 6e 73 ull,.$preferSource.=.false,.$ins
6c20 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 tallDevPackages.=.false,.$reposi
6c40 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 toryUrl.=.null).{.$dm.=.$this->c
6c60 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 69 66 20 28 24 reateDownloadManager($io);.if.($
6c80 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f preferSource).{.$dm->setPreferSo
6ca0 75 72 63 65 28 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 urce(true);.}..$config.=.Factory
6cc0 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ::createConfig();.if.(null.===.$
6ce0 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 65 70 6f 20 3d 20 6e repositoryUrl).{.$sourceRepo.=.n
6d00 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 63 74 6f 72 79 3a 3a ew.CompositeRepository(Factory::
6d20 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 28 24 69 6f 2c 20 24 createDefaultRepositories($io,.$
6d40 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 22 20 3d 3d 3d 20 70 config));.}.elseif.("json".===.p
6d60 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 41 54 48 49 4e 46 4f athinfo($repositoryUrl,.PATHINFO
6d80 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 6f 20 3d 20 6e 65 77 _EXTENSION)).{.$sourceRepo.=.new
6da0 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 20 4a 73 6f 6e 46 69 .FilesystemRepository(new.JsonFi
6dc0 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 6d 6f 74 65 46 69 6c le($repositoryUrl,.new.RemoteFil
6de0 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 28 30 20 3d 3d 3d 20 esystem($io)));.}.elseif.(0.===.
6e00 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 74 74 70 27 29 29 20 strpos($repositoryUrl,.'http')).
6e20 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 73 65 72 52 65 70 6f {.$sourceRepo.=.new.ComposerRepo
6e40 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 70 6f 73 69 74 6f 72 sitory(array('url'.=>.$repositor
6e60 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 6c 73 65 20 7b 0a 74 yUrl),.$io,.$config);.}.else.{.t
6e80 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
6ea0 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 6c 20 67 69 76 65 6e on("Invalid.repository.url.given
6ec0 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 6f 72 20 61 6e 20 68 ..Has.to.be.a..json.file.or.an.h
6ee0 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 73 20 3d 20 24 73 6f ttp.url.");.}..$candidates.=.$so
6f00 75 72 63 65 52 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 4e urceRepo->findPackages($packageN
6f20 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 ame,.$version);.if.(!$candidates
6f40 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
6f60 63 65 70 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 ception("Could.not.find.package.
6f80 24 70 61 63 6b 61 67 65 4e 61 6d 65 22 20 2e 20 28 24 76 65 72 73 69 6f 6e 20 3f 20 22 20 77 69 $packageName"...($version.?.".wi
6fa0 74 68 20 76 65 72 73 69 6f 6e 20 24 76 65 72 73 69 6f 6e 2e 22 20 3a 20 27 27 29 29 3b 0a 7d 0a th.version.$version.".:.''));.}.
6fc0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 70 61 72 .if.(null.===.$directory).{.$par
6fe0 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 ts.=.explode("/",.$packageName,.
7000 32 29 3b 0a 24 64 69 72 65 63 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 2);.$directory.=.getcwd()...DIRE
7020 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 CTORY_SEPARATOR...array_pop($par
7040 74 73 29 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 73 ts);.}....$package.=.$candidates
7060 5b 30 5d 3b 0a 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 [0];.foreach.($candidates.as.$ca
7080 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 ndidate).{.if.(version_compare($
70a0 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 package->getVersion(),.$candidat
70c0 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 e->getVersion(),.'<')).{.$packag
70e0 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 e.=.$candidate;.}.}..$io->write(
7100 27 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 '<info>Installing.'...$package->
7120 67 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 getName()...'.('...VersionParser
7140 3a 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 ::formatVersion($package,.false)
7160 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 ...')</info>',.true);.if.(0.===.
7180 73 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 strpos($package->getPrettyVersio
71a0 6e 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 n(),.'dev-').&&.in_array($packag
71c0 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 67 69 74 27 2c e->getSourceType(),.array('git',
71e0 20 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 .'hg'))).{.$package->setSourceRe
7200 66 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 ference(substr($package->getPret
7220 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 tyVersion(),.4));.}..$projectIns
7240 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 64 taller.=.new.ProjectInstaller($d
7260 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 65 irectory,.$dm);.$projectInstalle
7280 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 74 r->install(new.InstalledFilesyst
72a0 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 2f emRepository(new.JsonFile('php:/
72c0 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 6b /memory')),.$package);.if.($pack
72e0 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 20 age->getRepository().instanceof.
7300 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 7b NotifiableRepositoryInterface).{
7320 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 69 .$package->getRepository()->noti
7340 66 79 49 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 fyInstall($package);.}..$io->wri
7360 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 6e 20 27 20 2e te('<info>Created.project.in.'..
7380 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 2c 20 74 72 75 65 29 3b 0a .$directory...'</info>',.true);.
73a0 63 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 chdir($directory);..putenv('COMP
73c0 4f 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 OSER_ROOT_VERSION='.$package->ge
73e0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 tPrettyVersion());..$composer.=.
7400 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 6c 65 72 Factory::create($io);.$installer
7420 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 6d 70 6f .=.Installer::create($io,.$compo
7440 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 ser);..$installer.->setPreferSou
7460 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 rce($preferSource).->setDevMode(
7480 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 0a 2d 3e 72 75 6e 28 29 3b 0a 7d 0a $installDevPackages).->run();.}.
74a0 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 6f 77 6e 6c 6f .protected.function.createDownlo
74c0 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 66 61 adManager(IOInterface.$io).{.$fa
74e0 63 74 6f 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 ctory.=.new.Factory();..return.$
7500 66 61 63 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 factory->createDownloadManager($
7520 69 6f 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 io);.}.}.<?php............namesp
7540 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 6f ace.Composer\Command;..use.Symfo
7560 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
7580 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
75a0 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;
75c0 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 74 65 6e 64 73 20 .....class.AboutCommand.extends.
75e0 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 20 63 6f 6e Command.{.protected.function.con
7600 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 61 62 6f 75 figure().{.$this.->setName('abou
7620 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 74 20 69 6e 66 6f t').->setDescription('Short.info
7640 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 3e 73 65 74 48 65 rmation.about.Composer').->setHe
7660 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 72 2e 70 68 61 lp(<<<EOT.<info>php.composer.pha
7680 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 70 72 6f 74 65 63 r.about</info>.EOT.).;.}..protec
76a0 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 72 66 ted.function.execute(InputInterf
76c0 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
76e0 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 3c 45 4f 54 0a 3c put).{.$output->writeln(<<<EOT.<
7700 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 6e 61 67 65 6d 65 info>Composer.-.Package.Manageme
7720 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 3e 43 6f 6d 70 6f nt.for.PHP</info>.<comment>Compo
7740 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 72 61 63 6b 69 6e ser.is.a.package.manager.trackin
7760 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 75 72 20 70 72 6f g.local.dependencies.of.your.pro
7780 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 74 74 70 3a 2f 2f jects.and.libraries..See.http://
77a0 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 69 6e 66 6f 72 6d getcomposer.org/.for.more.inform
77c0 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 0a 7d 0a 3c 3f 70 ation.</comment>.EOT.);..}.}.<?p
77e0 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
7800 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 72 \Command;..use.Composer\Composer
7820 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 70 ;.use.Composer\Factory;.use.Comp
7840 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 0a 75 oser\Package\PackageInterface;.u
7860 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
7880 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 5c 43 ut\InputInterface;.use.Symfony\C
78a0 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 41 72 67 75 omponent\Console\Input\InputArgu
78c0 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 43 6f 6e 73 ment;.use.Symfony\Component\Cons
78e0 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 6f ole\Input\InputOption;.use.Symfo
7900 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
7920 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 52 65 70 6f 73 69 utInterface;.use.Composer\Reposi
7940 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 73 tory\ArrayRepository;.use.Compos
7960 65 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 er\Repository\CompositeRepositor
7980 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 5c 50 6c 61 74 66 y;.use.Composer\Repository\Platf
79a0 6f 72 6d 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 ormRepository;.use.Composer\Repo
79c0 73 69 74 6f 72 79 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 sitory\RepositoryInterface;.....
79e0 0a 63 6c 61 73 73 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 .class.ShowCommand.extends.Comma
7a00 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 69 67 75 72 nd.{.protected.function.configur
7a20 65 28 29 0a 7b 0a 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 e().{.$this.->setName('show').->
7a40 73 65 74 44 65 73 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 setDescription('Show.information
7a60 20 61 62 6f 75 74 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 .about.packages').->setDefinitio
7a80 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 70 61 63 6b n(array(.new.InputArgument('pack
7aa0 61 67 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 20 27 age',.InputArgument::OPTIONAL,.'
7ac0 50 61 63 6b 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 41 Package.to.inspect'),.new.InputA
7ae0 72 67 75 6d 65 6e 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 rgument('version',.InputArgument
7b00 3a 3a 4f 50 54 49 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 ::OPTIONAL,.'Version.to.inspect'
7b20 29 2c 0a 6e 65 77 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 ),.new.InputOption('installed',.
7b40 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,.'
7b60 4c 69 73 74 20 69 6e 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 List.installed.packages.only'),.
7b80 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 2c 20 6e 75 6c 6c new.InputOption('platform',.null
7ba0 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 4c 69 73 74 ,.InputOption::VALUE_NONE,.'List
7bc0 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 .platform.packages.only'),.new.I
7be0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 nputOption('self',.null,.InputOp
7c00 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 74 68 65 20 72 6f 6f 74 tion::VALUE_NONE,.'Show.the.root
7c20 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 .package.information'),.)).->set
7c40 48 65 6c 70 28 3c 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 Help(<<<EOT.The.show.command.dis
7c60 70 6c 61 79 73 20 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 plays.detailed.information.about
7c80 20 61 20 70 61 63 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 .a.package,.or.lists.all.package
7ca0 73 20 61 76 61 69 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 s.available...EOT.).;.}..protect
7cc0 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 72 66 61 ed.function.execute(InputInterfa
7ce0 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
7d00 75 74 29 0a 7b 0a 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 ut).{...$platformRepo.=.new.Plat
7d20 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f formRepository;.if.($input->getO
7d40 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 3d 20 24 74 68 69 ption('self')).{.$package.=.$thi
7d60 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 50 61 63 6b 61 67 s->getComposer(false)->getPackag
7d80 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 70 6f 20 3d 20 6e e();.$repos.=.$installedRepo.=.n
7da0 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 70 61 63 6b 61 67 ew.ArrayRepository(array($packag
7dc0 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 4f 70 74 69 6f 6e e));.}.elseif.($input->getOption
7de0 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 69 6e 73 74 61 6c ('platform')).{.$repos.=.$instal
7e00 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 20 65 6c 73 65 69 ledRepo.=.$platformRepo;.}.elsei
7e20 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 61 6c 6c 65 64 27 f.($input->getOption('installed'
7e40 29 29 20 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 )).{.$composer.=.$this->getCompo
7e60 73 65 72 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 70 6f 20 3d ser();.$repos.=.$installedRepo.=
7e80 20 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 6e 61 67 65 72 .$composer->getRepositoryManager
7ea0 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 ()->getLocalRepository();.}.else
7ec0 69 66 20 28 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 if.($composer.=.$this->getCompos
7ee0 65 72 28 66 61 6c 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 er(false)).{.$localRepo.=.$compo
7f00 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 67 65 74 ser->getRepositoryManager()->get
7f20 4c 6f 63 61 6c 52 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 LocalRepository();.$installedRep
7f40 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 61 72 72 61 o.=.new.CompositeRepository(arra
7f60 79 28 24 6c 6f 63 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 y($localRepo,.$platformRepo));.$
7f80 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 28 repos.=.new.CompositeRepository(
7fa0 61 72 72 61 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 array_merge(array($installedRepo
7fc0 29 2c 20 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 6e 61 67 ),.$composer->getRepositoryManag
7fe0 65 72 28 29 2d 3e 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 er()->getRepositories()));.}.els
8000 65 20 7b 0a 24 64 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 e.{.$defaultRepos.=.Factory::cre
8020 61 74 65 44 65 66 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 ateDefaultRepositories($this->ge
8040 74 49 4f 28 29 29 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 tIO());.$output->writeln('No.com
8060 70 6f 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 poser.json.found.in.the.current.
8080 64 69 72 65 63 74 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 directory,.showing.packages.from
80a0 20 27 20 2e 20 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 24 64 .'...implode(',.',.array_keys($d
80c0 65 66 61 75 6c 74 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 efaultRepos)));.$installedRepo.=
80e0 20 24 70 6c 61 74 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 .$platformRepo;.$repos.=.new.Com
8100 70 6f 73 69 74 65 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 positeRepository(array_merge(arr
8120 61 79 28 24 69 6e 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 ay($installedRepo),.$defaultRepo
8140 73 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e s));.}....if.($input->getArgumen
8160 74 28 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 t('package').||.!empty($package)
8180 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 70 61 63 6b ).{.if.(empty($package)).{.$pack
81a0 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2c 20 age.=.$this->getPackage($input,.
81c0 24 6f 75 74 70 75 74 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 $output,.$installedRepo,.$repos)
81e0 3b 0a 7d 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 ;.}.if.(!$package).{.throw.new.\
8200 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 61 67 InvalidArgumentException('Packag
8220 65 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 e.'.$input->getArgument('package
8240 27 29 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e ').'.not.found');.}..$this->prin
8260 74 4d 65 74 61 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 tMeta($input,.$output,.$package,
8280 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-
82a0 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
82c0 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
82e0 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,
8300 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)'
8320 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()).
8340 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
8360 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
8380 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.=>
83a0 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
83c0 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
83e0 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
8400 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
8420 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
8440 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
8460 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
8480 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
84a0 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
84c0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 2d 3e 67 65 74 50 61 63 6b rray();.foreach.($repos->getPack
84e0 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 6c 61 74 66 ages().as.$package).{.if.($platf
8500 6f 72 6d 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 29 20 7b ormRepo->hasPackage($package)).{
8520 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a .$type.=.'<info>platform</info>:
8540 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 ';.}.elseif.($installedRepo->has
8560 50 61 63 6b 61 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 Package($package)).{.$type.=.'<i
8580 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 20 7b nfo>installed</info>:';.}.else.{
85a0 0a 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f .$type.=.'<comment>available</co
85c0 6d 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b mment>:';.}.if.(isset($packages[
85e0 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 29 0a 26 26 20 $type][$package->getName()]).&&.
8600 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d version_compare($packages[$type]
8620 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 2d 3e 67 65 74 56 65 72 73 69 6f [$package->getName()]->getVersio
8640 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3e 3d n(),.$package->getVersion(),.'>=
8660 27 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 ').).{.continue;.}.$packages[$ty
8680 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 61 63 6b pe][$package->getName()].=.$pack
86a0 61 67 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 3c 69 6e 66 6f 3e 70 6c age;.}..foreach.(array('<info>pl
86c0 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 2c 20 27 3c 63 6f 6d 6d 65 atform</info>:'.=>.true,.'<comme
86e0 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 20 3d 3e 20 66 61 6c 73 nt>available</comment>:'.=>.fals
8700 65 2c 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 e,.'<info>installed</info>:'.=>.
8720 74 72 75 65 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 73 68 6f 77 56 65 72 73 69 6f 6e 29 20 true).as.$type.=>.$showVersion).
8740 7b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 29 20 7b {.if.(isset($packages[$type])).{
8760 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 79 70 65 29 3b 0a 6b 73 6f 72 74 28 .$output->writeln($type);.ksort(
8780 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 $packages[$type]);.foreach.($pac
87a0 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6f 75 74 kages[$type].as.$package).{.$out
87c0 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 20 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 put->writeln('..'.$package->getP
87e0 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 27 20 27 2e 28 24 73 68 6f 77 56 65 72 73 69 6f 6e 20 3f rettyName()..'.'.($showVersion.?
8800 20 27 5b 27 2e 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(
8820 29 2e 27 5d 27 20 3a 20 27 27 29 2e 27 20 3c 63 6f 6d 6d 65 6e 74 3e 3a 3c 2f 63 6f 6d 6d 65 6e ).']'.:.'').'.<comment>:</commen
8840 74 3e 20 27 2e 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 t>.'..strtok($package->getDescri
8860 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 ption(),."\r\n"));.}.$output->wr
8880 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 iteln('');.}.}.}.........protect
88a0 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 49 6e 70 75 74 49 6e 74 65 ed.function.getPackage(InputInte
88c0 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
88e0 75 74 70 75 74 2c 20 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 utput,.RepositoryInterface.$inst
8900 61 6c 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 alledRepo,.RepositoryInterface.$
8920 72 65 70 6f 73 29 0a 7b 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 repos).{...if.($input->getArgume
8940 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 2d 3e nt('version')).{.return.$repos->
8960 66 69 6e 64 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 findPackage($input->getArgument(
8980 27 70 61 63 6b 61 67 65 27 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 'package'),.$input->getArgument(
89a0 27 76 65 72 73 69 6f 6e 27 29 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 'version'));.}....foreach.($inst
89c0 61 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 alledRepo->getPackages().as.$pac
89e0 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 4e 61 6d 65 28 29 20 kage).{.if.($package->getName().
8a00 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 70 61 63 6b 61 67 65 ===.$input->getArgument('package
8a20 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 68 ')).{.return.$package;.}.}....$h
8a40 69 67 68 65 73 74 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 ighestVersion.=.null;.foreach.($
8a60 72 65 70 6f 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 repos->findPackages($input->getA
8a80 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 rgument('package')).as.$package)
8aa0 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 20 .{.if.(null.===.$highestVersion.
8ac0 7c 7c 20 76 65 72 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 ||.version_compare($package->get
8ae0 56 65 72 73 69 6f 6e 28 29 2c 20 24 68 69 67 68 65 73 74 56 65 72 73 69 6f 6e 2d 3e 67 65 74 56 Version(),.$highestVersion->getV
8b00 65 72 73 69 6f 6e 28 29 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 68 69 67 68 65 73 74 56 65 72 73 69 ersion(),.'>=')).{.$highestVersi
8b20 6f 6e 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 24 68 69 67 68 on.=.$package;.}.}..return.$high
8b40 65 73 74 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 estVersion;.}.....protected.func
8b60 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
8b80 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 50 nput,.OutputInterface.$output,.P
8ba0 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 52 65 70 6f 73 69 ackageInterface.$package,.Reposi
8bc0 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 20 52 65 toryInterface.$installedRepo,.Re
8be0 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 24 6f 75 74 positoryInterface.$repos).{.$out
8c00 70 75 74 2d 3e 77 72 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 put->writeln('<info>name</info>.
8c20 20 20 20 20 3a 20 27 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 ....:.'...$package->getPrettyNam
8c40 65 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 6f 3e 64 65 e());.$output->writeln('<info>de
8c60 73 63 72 69 70 2e 3c 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 scrip.</info>.:.'...$package->ge
8c80 74 44 65 73 63 72 69 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 tDescription());.$output->writel
8ca0 6e 28 27 3c 69 6e 66 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 n('<info>keywords</info>.:.'...j
8cc0 6f 69 6e 28 27 2c 20 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 oin(',.',.$package->getKeywords(
8ce0 29 20 3f 3a 20 61 72 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 ).?:.array()));.$this->printVers
8d00 69 6f 6e 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 ions($input,.$output,.$package,.
8d20 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 74 70 75 74 $installedRepo,.$repos);.$output
8d40 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 20 20 20 20 ->writeln('<info>type</info>....
8d60 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 0a 24 6f 75 .:.'...$package->getType());.$ou
8d80 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 3c 2f 69 6e tput->writeln('<info>license</in
8da0 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 63 6b 61 67 fo>..:.'...implode(',.',.$packag
8dc0 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 77 72 69 74 e->getLicense()));.$output->writ
8de0 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 20 27 20 2e eln('<info>source</info>...:.'..
8e00 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 63 6f 6d 6d .sprintf('[%s].<comment>%s</comm
8e20 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 65 54 79 70 ent>.%s',.$package->getSourceTyp
8e40 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 29 2c 20 24 e(),.$package->getSourceUrl(),.$
8e60 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 29 3b package->getSourceReference()));
8e80 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 74 3c 2f 69 .$output->writeln('<info>dist</i
8ea0 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 20 3c 63 6f nfo>.....:.'...sprintf('[%s].<co
8ec0 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 6b 61 67 65 mment>%s</comment>.%s',.$package
8ee0 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 65 74 44 69 ->getDistType(),.$package->getDi
8f00 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 66 65 72 65 stUrl(),.$package->getDistRefere
8f20 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 69 6e 66 6f nce()));.$output->writeln('<info
8f40 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 64 65 28 27 >names</info>....:.'...implode('
8f60 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 0a 0a 69 66 ,.',.$package->getNames()));..if
8f80 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 24 6f 75 74 .($package->getSupport()).{.$out
8fa0 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 74 3c 2f 69 put->writeln("\n<info>support</i
8fc0 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 65 74 53 75 nfo>");.foreach.($package->getSu
8fe0 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 7b 0a 24 6f pport().as.$type.=>.$value).{.$o
9000 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 20 24 74 79 utput->writeln('<comment>'...$ty
9020 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 3b 0a 7d 0a pe...'</comment>.:.'.$value);.}.
9040 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 28 29 29 20 }..if.($package->getAutoload()).
9060 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 61 75 74 6f {.$output->writeln("\n<info>auto
9080 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 6b 61 67 65 load</info>");.foreach.($package
90a0 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 24 61 75 74 ->getAutoload().as.$type.=>.$aut
90c0 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 3c 63 6f 6d oloads).{.$output->writeln('<com
90e0 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 27 29 3b 0a ment>'...$type...'</comment>');.
9100 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 72 65 61 63 .if.($type.===.'psr-0').{.foreac
9120 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 61 74 68 29 h.($autoloads.as.$name.=>.$path)
9140 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 3a 20 27 2a .{.$output->writeln(($name.?:.'*
9160 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 29 3b 0a 7d ')...'.=>.'...($path.?:.'.'));.}
9180 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 61 70 27 29 .}.elseif.($type.===.'classmap')
91a0 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 27 2c 20 27 .{.$output->writeln(implode(',.'
91c0 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 6b 61 67 65 ,.$autoloads));.}.}.if.($package
91e0 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 75 74 2d 3e ->getIncludePaths()).{.$output->
9200 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 74 68 3c 2f writeln('<comment>include-path</
9220 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 28 69 6d 70 comment>');.$output->writeln(imp
9240 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 75 64 65 50 lode(',.',.$package->getIncludeP
9260 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 64 20 66 75 aths()));.}.}.}.....protected.fu
9280 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 74 65 72 66 nction.printVersions(InputInterf
92a0 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
92c0 70 75 74 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 2c 20 put,.PackageInterface.$package,.
92e0 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 6c 65 64 52 65 RepositoryInterface.$installedRe
9300 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 70 6f 73 29 0a po,.RepositoryInterface.$repos).
9320 7b 0a 69 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 {.if.($input->getArgument('versi
9340 6f 6e 27 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 on')).{.$output->writeln('<info>
9360 76 65 72 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 version</info>..:.'...$package->
9380 67 65 74 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 getPrettyVersion());..return;.}.
93a0 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 .$versions.=.array();..foreach.(
93c0 24 72 65 70 6f 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 $repos->findPackages($package->g
93e0 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f etName()).as.$version).{.$versio
9400 6e 73 5b 24 76 65 72 73 69 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 5d ns[$version->getPrettyVersion()]
9420 20 3d 20 24 76 65 72 73 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 75 61 .=.$version->getVersion();.}..ua
9440 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
9460 27 29 3b 0a 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 ');..$versions.=.implode(',.',.a
9480 72 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 rray_keys(array_reverse($version
94a0 73 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 s)));....if.($installedRepo->has
94c0 50 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 Package($package)).{.$versions.=
94e0 20 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 .str_replace($package->getPretty
9500 56 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 Version(),.'<info>*.'...$package
9520 2d 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 ->getPrettyVersion()...'</info>'
9540 2c 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 ,.$versions);.}..$output->writel
9560 6e 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 n('<info>versions</info>.:.'...$
9580 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e versions);.}.......protected.fun
95a0 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 63 65 20 ction.printLinks(InputInterface.
95c0 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 2c $input,.OutputInterface.$output,
95e0 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 2c 20 24 6c 69 6e .PackageInterface.$package,.$lin
9600 6b 54 79 70 65 2c 20 24 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 74 6c 65 20 3d kType,.$title.=.null).{.$title.=
9620 20 24 74 69 74 6c 65 20 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 69 66 20 28 24 6c 69 6e 6b 73 .$title.?:.$linkType;.if.($links
9640 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e .=.$package->{'get'.ucfirst($lin
9660 6b 54 79 70 65 29 7d 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 kType)}()).{.$output->writeln("\
9680 6e 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a n<info>"...$title..."</info>");.
96a0 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 24 6f 75 .foreach.($links.as.$link).{.$ou
96c0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 tput->writeln($link->getTarget()
96e0 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 ...'.<comment>'...$link->getPret
9700 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a tyConstraint()...'</comment>');.
9720 7d 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
9740 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 6f 73 ce.Composer\Command;..use.Compos
9760 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 6f 6e er\Installer;.use.Symfony\Compon
9780 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 63 65 ent\Console\Input\InputInterface
97a0 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\
97c0 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 5c 43 Input\InputOption;.use.Symfony\C
97e0 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 41 72 67 75 omponent\Console\Input\InputArgu
9800 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 43 6f 6e 73 ment;.use.Symfony\Component\Cons
9820 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 0a 0a 0a 0a ole\Output\OutputInterface;.....
9840 63 6c 61 73 73 20 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d class.UpdateCommand.extends.Comm
9860 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 69 67 75 and.{.protected.function.configu
9880 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 re().{.$this.->setName('update')
98a0 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 .->setDescription('Updates.your.
98c0 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 dependencies.to.the.latest.versi
98e0 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 65 72 2e 6c 6f 63 on,.and.updates.the.composer.loc
9900 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 61 72 72 61 79 28 k.file.').->setDefinition(array(
9920 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 73 27 2c 20 49 .new.InputArgument('packages',.I
9940 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 6e 70 75 74 41 72 nputArgument::IS_ARRAY.|.InputAr
9960 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 73 20 74 68 61 74 gument::OPTIONAL,.'Packages.that
9980 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 20 70 72 6f 76 69 .should.be.updated,.if.not.provi
99a0 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 65 77 20 49 6e 70 ded.all.packages.are.'),.new.Inp
99c0 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 20 utOption('prefer-source',.null,.
99e0 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 73 InputOption::VALUE_NONE,.'Forces
9a00 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 63 .installation.from.package.sourc
9a20 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 20 es.when.possible,.including.VCS.
9a40 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 28 information.'),.new.InputOption(
9a60 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 6e 3a 3a 56 41 'dry-run',.null,.InputOption::VA
9a80 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 61 74 69 6f 6e LUE_NONE,.'Outputs.the.operation
9aa0 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 68 69 6e 67 20 s.but.will.not.execute.anything.
9ac0 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 73 65 29 2e 27 (implicitly.enables.--verbose).'
9ae0 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 75 6c 6c 2c 20 ),.new.InputOption('dev',.null,.
9b00 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 6e 61 62 6c 65 InputOption::VALUE_NONE,.'Enable
9b20 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 72 65 20 70 61 s.installation.of.dev-require.pa
9b40 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 27 6e 6f 2d 73 ckages.'),.new.InputOption('no-s
9b60 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 41 4c 55 cripts',.null,.InputOption::VALU
9b80 45 5f 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 E_NONE,.'Skips.the.execution.of.
9ba0 61 6c 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 all.scripts.defined.in.composer.
9bc0 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f json.file.'),.)).->setHelp(<<<EO
9be0 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e T.The.<info>update</info>.comman
9c00 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 d.reads.the.composer.json.file.f
9c20 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 70 72 6f 63 65 rom.the.current.directory,.proce
9c40 73 73 65 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 2c 20 72 65 6d 6f 76 65 73 20 6f 72 sses.it,.and.updates,.removes.or
9c60 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a .installs.all.the.dependencies..
9c80 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 75 70 64 61 74 65 3c .<info>php.composer.phar.update<
9ca0 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 70 64 61 74 65 20 6f 70 65 72 /info>..To.limit.the.update.oper
9cc0 61 74 69 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 67 65 73 2c 20 79 6f 75 20 63 61 6e ation.to.a.few.packages,.you.can
9ce0 20 6c 69 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 0a 79 6f 75 20 77 61 6e 74 20 74 6f .list.the.package(s).you.want.to
9d00 20 75 70 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 .update.as.such:..<info>php.comp
9d20 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 6f 72 2f 70 61 63 6b 61 67 65 31 oser.phar.update.vendor/package1
9d40 20 66 6f 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a .foo/mypackage.[...]</info>.EOT.
9d60 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
9d80 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
9da0 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 nterface.$output).{.$composer.=.
9dc0 24 74 68 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 $this->getComposer();.$io.=.$thi
9de0 73 2d 3e 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 s->getIO();.$install.=.Installer
9e00 3a 3a 63 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 ::create($io,.$composer);..$inst
9e20 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f all.->setDryRun($input->getOptio
9e40 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 n('dry-run')).->setVerbose($inpu
9e60 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 t->getOption('verbose')).->setPr
9e80 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 eferSource($input->getOption('pr
9ea0 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 70 efer-source')).->setDevMode($inp
9ec0 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 53 63 ut->getOption('dev')).->setRunSc
9ee0 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 63 72 ripts(!$input->getOption('no-scr
9f00 69 70 74 73 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 ipts')).->setUpdate(true).->setU
9f20 70 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 pdateWhitelist($input->getArgume
9f40 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 0a 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 nt('packages')).;..return.$insta
9f60 6c 6c 2d 3e 72 75 6e 28 29 20 3f 20 30 20 3a 20 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ll->run().?.0.:.1;.}.}.<?php....
9f80 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 6d 6d 61 ........namespace.Composer\Comma
9fa0 6e 64 3b 0a 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 nd;..use.Composer\Installer;.use
9fc0 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
9fe0 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
a000 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
a020 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\
a040 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 63 6c Output\OutputInterface;.......cl
a060 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 ass.InstallCommand.extends.Comma
a080 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 69 67 75 72 nd.{.protected.function.configur
a0a0 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 e().{.$this.->setName('install')
a0c0 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 50 61 72 73 65 73 20 74 68 65 20 63 6f .->setDescription('Parses.the.co
a0e0 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 74 mposer.json.file.and.downloads.t
a100 68 65 20 6e 65 65 64 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 0a 2d 3e 73 65 74 44 he.needed.dependencies.').->setD
a120 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 69 6f 6e efinition(array(.new.InputOption
a140 28 27 70 72 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 ('prefer-source',.null,.InputOpt
a160 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 61 6c 6c ion::VALUE_NONE,.'Forces.install
a180 61 74 69 6f 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 ation.from.package.sources.when.
a1a0 70 6f 73 73 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 possible,.including.VCS.informat
a1c0 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 64 72 79 2d 72 75 6e ion.'),.new.InputOption('dry-run
a1e0 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
a200 2c 20 27 4f 75 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 ,.'Outputs.the.operations.but.wi
a220 6c 6c 20 6e 6f 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 ll.not.execute.anything.(implici
a240 74 6c 79 20 65 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 tly.enables.--verbose).'),.new.I
a260 6e 70 75 74 4f 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 nputOption('dev',.null,.InputOpt
a280 69 6f 6e 3a 3a 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 ion::VALUE_NONE,.'Enables.instal
a2a0 6c 61 74 69 6f 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 lation.of.dev-require.packages.'
a2c0 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 69 70 74 73 27 2c ),.new.InputOption('no-scripts',
a2e0 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 2c 20 .null,.InputOption::VALUE_NONE,.
a300 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 6c 20 73 63 72 69 'Skips.the.execution.of.all.scri
a320 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 6f 6e 20 66 69 6c pts.defined.in.composer.json.fil
a340 65 2e 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 65 20 3c 69 e.'),.)).->setHelp(<<<EOT.The.<i
a360 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 73 nfo>install</info>.command.reads
a380 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 .the.composer.json.file.from.the
a3a0 0a 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 74 .current.directory,.processes.it
a3c0 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 6c ,.and.downloads.and.installs.all
a3e0 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 20 .the.libraries.and.dependencies.
a400 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 outlined.in.that.file...<info>ph
a420 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a p.composer.phar.install</info>..
a440 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 78 EOT.).;.}..protected.function.ex
a460 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 74 ecute(InputInterface.$input,.Out
a480 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 63 6f 6d 70 6f 73 65 putInterface.$output).{.$compose
a4a0 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 6f 20 3d 20 r.=.$this->getComposer();.$io.=.
a4c0 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 3d 20 49 6e 73 74 61 $this->getIO();.$install.=.Insta
a4e0 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 65 72 29 3b 0a 0a 24 ller::create($io,.$composer);..$
a500 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 74 2d 3e 67 65 74 4f install.->setDryRun($input->getO
a520 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 72 62 6f 73 65 28 24 ption('dry-run')).->setVerbose($
a540 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 29 0a 2d 3e 73 input->getOption('verbose')).->s
a560 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 74 4f 70 74 69 6f 6e etPreferSource($input->getOption
a580 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 ('prefer-source')).->setDevMode(
a5a0 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 52 $input->getOption('dev')).->setR
a5c0 75 6e 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 unScripts(!$input->getOption('no
a5e0 2d 73 63 72 69 70 74 73 27 29 29 0a 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e -scripts')).;..return.$install->
a600 72 75 6e 28 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 run().?.0.:.1;.}.}.<?php........
a620 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;.
a640 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
a660 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
a680 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 41 72 \Component\Console\Input\InputAr
a6a0 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 43 6f gument;.use.Symfony\Component\Co
a6c0 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 0a 75 73 nsole\Output\OutputInterface;.us
a6e0 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
a700 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 mposer\Json\JsonValidationExcept
a720 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 6d 6f 74 65 46 69 6c ion;.use.Composer\Util\RemoteFil
a740 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 53 70 64 78 4c esystem;.use.Composer\Util\SpdxL
a760 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 icenseIdentifier;........class.V
a780 61 6c 69 64 61 74 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 alidateCommand.extends.Command.{
a7a0 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 67 75 72 65 ....protected.function.configure
a7c0 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 76 61 6c 69 64 61 74 65 27 29 ().{.$this.->setName('validate')
a7e0 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 56 61 6c 69 64 61 74 65 73 20 61 20 63 .->setDescription('Validates.a.c
a800 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 omposer.json').->setDefinition(a
a820 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 66 69 6c 65 27 2c 20 rray(.new.InputArgument('file',.
a840 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 70 61 74 68 20 74 InputArgument::OPTIONAL,.'path.t
a860 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 27 2c 20 27 2e 2f 63 6f 6d 70 6f 73 o.composer.json.file',.'./compos
a880 65 72 2e 6a 73 6f 6e 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 er.json').)).->setHelp(<<<EOT.Th
a8a0 65 20 76 61 6c 69 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 76 61 6c 69 64 61 74 65 73 20 61 20 67 e.validate.command.validates.a.g
a8c0 69 76 65 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 0a 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a 0a 0a iven.composer.json..EOT.);.}....
a8e0 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 28 49 ....protected.function.execute(I
a900 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 65 nputInterface.$input,.OutputInte
a920 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d rface.$output).{.$file.=.$input-
a940 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 29 3b 0a 0a 69 66 20 28 21 66 69 6c 65 >getArgument('file');..if.(!file
a960 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 _exists($file)).{.$output->write
a980 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 6e 6f 74 20 66 6f 75 ln('<error>'...$file...'.not.fou
a9a0 6e 64 2e 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 69 66 20 28 nd.</error>');..return.1;.}.if.(
a9c0 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e !is_readable($file)).{.$output->
a9e0 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 20 69 73 writeln('<error>'...$file...'.is
aa00 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 .not.readable.</error>');..retur
aa20 6e 20 31 3b 0a 7d 0a 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 n.1;.}..$errors.=.array();.$publ
aa40 69 73 68 45 72 72 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 ishErrors.=.array();.$warnings.=
aa60 20 61 72 72 61 79 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 .array();....$laxValid.=.false;.
aa80 24 76 61 6c 69 64 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 $valid.=.false;.try.{.$json.=.ne
aaa0 77 20 4a 73 6f 6e 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 w.JsonFile($file,.new.RemoteFile
aac0 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 29 3b 0a 24 6d 61 6e 69 66 65 system($this->getIO()));.$manife
aae0 73 74 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 st.=.$json->read();..$json->vali
ab00 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 29 dateSchema(JsonFile::LAX_SCHEMA)
ab20 3b 0a 24 6c 61 78 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 ;.$laxValid.=.true;.$json->valid
ab40 61 74 65 53 63 68 65 6d 61 28 29 3b 0a 24 76 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 7d 20 63 61 ateSchema();.$valid.=.true;.}.ca
ab60 74 63 68 20 28 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 24 65 29 tch.(JsonValidationException.$e)
ab80 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 20 61 73 20 24 .{.foreach.($e->getErrors().as.$
aba0 6d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 6c 61 78 56 61 6c 69 64 29 20 7b 0a 24 70 75 62 message).{.if.($laxValid).{.$pub
abc0 6c 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 27 3c 65 72 72 6f 72 3e 50 75 62 6c 69 73 68 20 45 lishErrors[].=.'<error>Publish.E
abe0 72 72 6f 72 3a 20 27 20 2e 20 24 6d 65 73 73 61 67 65 20 2e 20 27 3c 2f 65 72 72 6f 72 3e 27 3b rror:.'...$message...'</error>';
ac00 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 27 3c 65 72 72 6f 72 3e 27 20 .}.else.{.$errors[].=.'<error>'.
ac20 2e 20 24 6d 65 73 73 61 67 65 20 2e 20 27 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 7d 0a 7d 20 63 ..$message...'</error>';.}.}.}.c
ac40 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e atch.(\Exception.$e).{.$output->
ac60 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 writeln('<error>'...$e->getMessa
ac80 67 65 28 29 20 2e 20 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d ge()...'</error>');..return.1;.}
aca0 0a 0a 0a 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 ....if.(!empty($manifest['licens
acc0 65 27 5d 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 e'])).{.$licenseValidator.=.new.
ace0 53 70 64 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 SpdxLicenseIdentifier();.if.(!$l
ad00 69 63 65 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 icenseValidator->validate($manif
ad20 65 73 74 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 est['license'])).{.$warnings[].=
ad40 20 73 70 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 .sprintf(.'License.%s.is.not.a.v
ad60 61 6c 69 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 alid.SPDX.license.identifier,.se
ad80 65 20 68 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 e.http://www.spdx.org/licenses/.
ada0 69 66 20 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 if.you.use.an.open.license',.jso
adc0 6e 5f 65 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 n_encode($manifest['license']).)
ade0 3b 0a 7d 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 ;.}.}.else.{.$warnings[].=.'No.l
ae00 69 63 65 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 icense.specified,.it.is.recommen
ae20 64 65 64 20 74 6f 20 64 6f 20 73 6f 27 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 ded.to.do.so';.}..if.(preg_match
ae40 28 27 7b 5b 41 2d 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 ('{[A-Z]}',.$manifest['name'])).
ae60 7b 0a 24 73 75 67 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 {.$suggestName.=.preg_replace('{
ae80 28 3f 3a 28 5b 61 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 (?:([a-z])([A-Z])|([A-Z])([A-Z][
aea0 61 2d 7a 5d 29 29 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 a-z]))}',.'\\1\\3-\\2\\4',.$mani
aec0 66 65 73 74 5b 27 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 fest['name']);.$suggestName.=.st
aee0 72 74 6f 6c 6f 77 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 rtolower($suggestName);..$warnin
af00 67 73 5b 5d 20 3d 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 gs[].=.sprintf(.'Name."%s".does.
af20 6e 6f 74 20 6d 61 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 not.match.the.best.practice.(e.g
af40 2e 20 6c 6f 77 65 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 ..lower-cased/with-dashes)..We.s
af60 75 67 67 65 73 74 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 uggest.using."%s".instead..As.su
af80 63 68 20 79 6f 75 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 ch.you.will.not.be.able.to.submi
afa0 74 20 69 74 20 74 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 t.it.to.Packagist.',.$manifest['
afc0 6e 61 6d 65 27 5d 2c 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 name'],.$suggestName.);.}....if.
afe0 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 20 26 26 20 (!$errors.&&.!$publishErrors.&&.
b000 21 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 !$warnings).{.$output->writeln('
b020 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e <info>'...$file...'.is.valid</in
b040 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 fo>');.}.elseif.(!$errors.&&.!$p
b060 75 62 6c 69 73 68 45 72 72 6f 72 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e ublishErrors).{.$output->writeln
b080 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 61 6c 69 64 2c 20 ('<info>'...$file...'.is.valid,.
b0a0 62 75 74 20 77 69 74 68 20 61 20 66 65 77 20 77 61 72 6e 69 6e 67 73 3c 2f 69 6e 66 6f 3e 27 29 but.with.a.few.warnings</info>')
b0c0 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 ;.$output->writeln('<warning>See
b0e0 20 68 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 30 34 2d 73 .http://getcomposer.org/doc/04-s
b100 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 chema.md.for.details.on.the.sche
b120 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f ma</warning>');.}.elseif.(!$erro
b140 72 73 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 27 20 rs).{.$output->writeln('<info>'.
b160 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 ..$file...'.is.valid.for.simple.
b180 75 73 61 67 65 20 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 20 62 75 74 20 68 61 73 3c 2f 69 6e 66 usage.with.composer.but.has</inf
b1a0 6f 3e 27 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 73 74 o>');.$output->writeln('<info>st
b1c0 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 74 20 6d 61 6b 65 20 69 74 20 75 6e 61 62 6c 65 20 rict.errors.that.make.it.unable.
b1e0 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 20 61 73 20 61 20 70 61 63 6b 61 67 65 3a 3c 2f 69 to.be.published.as.a.package:</i
b200 6e 66 6f 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 nfo>');.$output->writeln('<warni
b220 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f ng>See.http://getcomposer.org/do
b240 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 c/04-schema.md.for.details.on.th
b260 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 e.schema</warning>');.}.else.{.$
b280 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
b2a0 65 20 2e 20 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 e...'.is.invalid,.the.following.
b2c0 65 72 72 6f 72 73 2f 77 61 72 6e 69 6e 67 73 20 77 65 72 65 20 66 6f 75 6e 64 3a 3c 2f 65 72 72 errors/warnings.were.found:</err
b2e0 6f 72 3e 27 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 65 72 or>');.}..$messages.=.array(.'er
b300 72 6f 72 27 20 3d 3e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 70 75 ror'.=>.array_merge($errors,.$pu
b320 62 6c 69 73 68 45 72 72 6f 72 73 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e 20 24 77 61 72 6e blishErrors),.'warning'.=>.$warn
b340 69 6e 67 73 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 ings,.);..foreach.($messages.as.
b360 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 $style.=>.$msgs).{.foreach.($msg
b380 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c s.as.$msg).{.$output->writeln('<
b3a0 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e '...$style...'>'...$msg...'</'..
b3c0 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 .$style...'>');.}.}..return.$err
b3e0 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3f 20 31 20 3a 20 30 3b 0a 7d ors.||.$publishErrors.?.1.:.0;.}
b400 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
b420 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
b440 6d 70 6f 73 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 6f mposer;.use.Symfony\Component\Co
b460 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.
b480 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\
b4a0 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 70 6f InputArgument;.use.Symfony\Compo
b4c0 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 3b 0a nent\Console\Input\InputOption;.
b4e0 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 75 use.Symfony\Component\Console\Ou
b500 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 63 6c 61 73 73 tput\OutputInterface;......class
b520 20 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a .DependsCommand.extends.Command.
b540 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a {.protected.$linkTypes.=.array(.
b560 27 72 65 71 75 69 72 65 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 0a 27 72 65 71 75 69 72 'require'.=>.'requires',.'requir
b580 65 2d 64 65 76 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 0a 29 3b 0a 0a 70 72 6f e-dev'.=>.'devRequires',.);..pro
b5a0 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
b5c0 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 65 70 65 6e 64 73 27 29 0a 2d 3e 73 65 74 44 65 his.->setName('depends').->setDe
b5e0 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 73 20 77 68 69 63 68 20 70 61 63 6b 61 67 65 73 20 scription('Shows.which.packages.
b600 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e depend.on.the.given.package').->
b620 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 41 72 setDefinition(array(.new.InputAr
b640 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a gument('package',.InputArgument:
b660 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 :REQUIRED,.'Package.to.inspect')
b680 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 2c 20 27 ,.new.InputOption('link-type',.'
b6a0 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 7c ',.InputOption::VALUE_OPTIONAL.|
b6c0 20 49 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 2c 20 27 4c .InputOption::VALUE_IS_ARRAY,.'L
b6e0 69 6e 6b 20 74 79 70 65 73 20 74 6f 20 73 68 6f 77 20 28 72 65 71 75 69 72 65 2c 20 72 65 71 75 ink.types.to.show.(require,.requ
b700 69 72 65 2d 64 65 76 29 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 6c 69 6e ire-dev)',.array_keys($this->lin
b720 6b 54 79 70 65 73 29 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 44 69 73 kTypes)).)).->setHelp(<<<EOT.Dis
b740 70 6c 61 79 73 20 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 plays.detailed.information.about
b760 20 77 68 65 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 72 65 66 65 72 65 6e 63 65 64 2e 0a .where.a.package.is.referenced..
b780 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 64 65 70 65 6e 64 73 .<info>php.composer.phar.depends
b7a0 20 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 .composer/composer</info>..EOT.)
b7c0 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 65 .;.}..protected.function.execute
b7e0 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 6e (InputInterface.$input,.OutputIn
b800 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 terface.$output).{.$composer.=.$
b820 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 this->getComposer();.$references
b840 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 69 6e 70 75 74 2c 20 .=.$this->getReferences($input,.
b860 24 6f 75 74 70 75 74 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 $output,.$composer);..if.($input
b880 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 74 68 69 73 2d ->getOption('verbose')).{.$this-
b8a0 3e 70 72 69 6e 74 52 65 66 65 72 65 6e 63 65 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 >printReferences($input,.$output
b8c0 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e ,.$references);.}.else.{.$this->
b8e0 70 72 69 6e 74 50 61 63 6b 61 67 65 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 printPackages($input,.$output,.$
b900 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 references);.}.}...........priva
b920 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 49 6e 70 75 74 49 te.function.getReferences(InputI
b940 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
b960 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a .$output,.Composer.$composer).{.
b980 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 6e 74 28 27 70 $needle.=.$input->getArgument('p
b9a0 61 63 6b 61 67 65 27 29 3b 0a 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 ackage');..$references.=.array()
b9c0 3b 0a 24 76 65 72 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 29 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ;.$verbose.=.(bool).$input->getO
b9e0 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 3b 0a 0a 24 72 65 70 6f 73 20 3d 20 24 63 6f 6d ption('verbose');..$repos.=.$com
ba00 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 67 poser->getRepositoryManager()->g
ba20 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 24 74 79 70 65 73 20 3d 20 24 69 6e 70 75 etRepositories();.$types.=.$inpu
ba40 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 3b 0a 0a 66 6f 72 65 t->getOption('link-type');..fore
ba60 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 66 6f ach.($repos.as.$repository).{.fo
ba80 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 reach.($repository->getPackages(
baa0 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 ).as.$package).{.foreach.($types
bac0 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 6d 28 24 74 79 70 65 .as.$type).{.$type.=.rtrim($type
bae0 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 ,.'s');.if.(!isset($this->linkTy
bb00 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 61 6c 69 pes[$type])).{.throw.new.\Invali
bb20 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 64 20 6c dArgumentException('Unexpected.l
bb40 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 70 65 73 ink.type:.'.$type.',.valid.types
bb60 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 24 74 68 :.'.implode(',.',.array_keys($th
bb80 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 61 is->linkTypes)));.}.foreach.($pa
bba0 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 5b 24 ckage->{'get'.$this->linkTypes[$
bbc0 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 24 6c 69 6e 6b 2d 3e type]}().as.$link).{.if.($link->
bbe0 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 7b 0a 69 66 20 28 24 getTarget().===.$needle).{.if.($
bc00 76 65 72 62 6f 73 65 29 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 5d 20 3d 20 61 72 72 61 79 verbose).{.$references[].=.array
bc20 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 6c 69 6e 6b 29 3b 0a 7d 20 65 6c 73 65 ($type,.$package,.$link);.}.else
bc40 20 7b 0a 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 .{.$references[$package->getName
bc60 28 29 5d 20 3d 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 3b ()].=.$package->getPrettyName();
bc80 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 .}.}.}.}.}.}..return.$references
bca0 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 52 65 66 65 72 ;.}..private.function.printRefer
bcc0 65 6e 63 65 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 ences(InputInterface.$input,.Out
bce0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 61 72 72 61 79 20 24 72 65 66 putInterface.$output,.array.$ref
bd00 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 66 65 72 65 6e 63 65 73 20 erences).{.foreach.($references.
bd20 61 73 20 24 72 65 66 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 72 65 66 as.$ref).{.$output->writeln($ref
bd40 5b 31 5d 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 20 27 20 2e 20 24 72 65 [1]->getPrettyName()...'.'...$re
bd60 66 5b 31 5d 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 3c 69 6e f[1]->getPrettyVersion()...'.<in
bd80 66 6f 3e 27 20 2e 20 24 72 65 66 5b 30 5d 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 20 2e 20 24 72 fo>'...$ref[0]...'</info>.'...$r
bda0 65 66 5b 32 5d 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d ef[2]->getPrettyConstraint());.}
bdc0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 50 61 63 6b 61 67 .}..private.function.printPackag
bde0 65 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 es(InputInterface.$input,.Output
be00 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 Interface.$output,.array.$packag
be20 65 73 29 0a 7b 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 66 6f 72 65 61 63 68 20 es).{.ksort($packages);.foreach.
be40 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 6f 75 74 70 75 ($packages.as.$package).{.$outpu
be60 74 2d 3e 77 72 69 74 65 6c 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 t->writeln($package);.}.}.}.<?ph
be80 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\
bea0 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 74 5c Command;..use.Symfony\Component\
bec0 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 73 Console\Input\InputInterface;.us
bee0 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
bf00 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
bf20 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
bf40 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 43 rface;.use.Composer\Repository\C
bf60 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 6f 6d 70 6f 73 65 72 ompositeRepository;.use.Composer
bf80 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;.
bfa0 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
bfc0 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 6c 69 61 rface;.use.Composer\Package\Alia
bfe0 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 63 74 6f 72 79 3b 0a sPackage;.use.Composer\Factory;.
c000 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 78 74 65 6e 64 73 20 ....class.SearchCommand.extends.
c020 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 20 63 6f 6e Command.{.protected.function.con
c040 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 73 65 61 72 figure().{.$this.->setName('sear
c060 63 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f ch').->setDescription('Search.fo
c080 72 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 r.packages').->setDefinition(arr
c0a0 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 2c 20 ay(.new.InputArgument('tokens',.
c0c0 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 6e 70 75 74 41 InputArgument::IS_ARRAY.|.InputA
c0e0 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 6f 20 73 65 rgument::REQUIRED,.'tokens.to.se
c100 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a arch.for'),.)).->setHelp(<<<EOT.
c120 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d 61 6e 64 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 The.search.command.searches.for.
c140 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 20 6e 61 6d 65 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 packages.by.its.name.<info>php.c
c160 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 63 6f 6d 70 omposer.phar.search.symfony.comp
c180 6f 73 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 oser</info>..EOT.).;.}..protecte
c1a0 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 72 66 61 63 d.function.execute(InputInterfac
c1c0 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 75 e.$input,.OutputInterface.$outpu
c1e0 74 29 0a 7b 0a 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 t).{...$platformRepo.=.new.Platf
c200 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 ormRepository;.if.($composer.=.$
c220 74 68 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 this->getComposer(false)).{.$loc
c240 61 6c 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 73 69 74 6f 72 alRepo.=.$composer->getRepositor
c260 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 6f 72 79 28 29 yManager()->getLocalRepository()
c280 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
c2a0 52 65 70 6f 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 Repository(array($localRepo,.$pl
c2c0 61 74 66 6f 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 atformRepo));.$repos.=.new.Compo
c2e0 73 69 74 65 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 siteRepository(array_merge(array
c300 28 24 69 6e 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 ($installedRepo),.$composer->get
c320 52 65 70 6f 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 RepositoryManager()->getReposito
c340 72 69 65 73 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 ries()));.}.else.{.$defaultRepos
c360 20 3d 20 46 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 .=.Factory::createDefaultReposit
c380 6f 72 69 65 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 ories($this->getIO());.$output->
c3a0 77 72 69 74 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 writeln('No.composer.json.found.
c3c0 69 6e 20 74 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 in.the.current.directory,.showin
c3e0 67 20 70 61 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 g.packages.from.'...implode(',.'
c400 2c 20 61 72 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 ,.array_keys($defaultRepos)));.$
c420 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 24 installedRepo.=.$platformRepo;.$
c440 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 28 repos.=.new.CompositeRepository(
c460 61 72 72 61 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 array_merge(array($installedRepo
c480 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 73 20 3d ),.$defaultRepos));.}..$tokens.=
c4a0 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 29 3b 0a .$input->getArgument('tokens');.
c4c0 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6d 61 78 50 61 63 6b 61 67 $packages.=.array();..$maxPackag
c4e0 65 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 2d 3e 67 65 eLength.=.0;.foreach.($repos->ge
c500 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 69 66 20 28 24 tPackages().as.$package).{.if.($
c520 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 20 package.instanceof.AliasPackage.
c540 7c 7c 20 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ||.isset($packages[$package->get
c560 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 Name()])).{.continue;.}..foreach
c580 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 24 73 63 6f .($tokens.as.$token).{.if.(!$sco
c5a0 72 65 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 re.=.$this->matchPackage($packag
c5c0 65 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 e,.$token)).{.continue;.}..if.(f
c5e0 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 69 70 6f 73 28 24 70 61 63 6b 61 67 alse.!==.($pos.=.stripos($packag
c600 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 6f 6b 65 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 e->getName(),.$token))).{.$name.
c620 3d 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
c640 28 29 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 (),.0,.$pos)...'<highlight>'...s
c660 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 28 29 2c ubstr($package->getPrettyName(),
c680 20 24 70 6f 73 2c 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 20 2e 20 27 3c 2f 68 69 67 68 .$pos,.strlen($token))...'</high
c6a0 6c 69 67 68 74 3e 27 0a 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 light>'...substr($package->getPr
c6c0 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 6f 6b 65 6e ettyName(),.$pos.+.strlen($token
c6e0 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ));.}.else.{.$name.=.$package->g
c700 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 etPrettyName();.}..$description.
c720 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f =.strtok($package->getDescriptio
c740 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f n(),."\r\n");.if.(false.!==.($po
c760 73 20 3d 20 73 74 72 69 70 6f 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 74 6f 6b 65 6e s.=.stripos($description,.$token
c780 29 29 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 64 65 73 ))).{.$description.=.substr($des
c7a0 63 72 69 70 74 69 6f 6e 2c 20 30 2c 20 24 70 6f 73 29 0a 2e 20 27 3c 68 69 67 68 6c 69 67 68 74 cription,.0,.$pos)...'<highlight
c7c0 3e 27 20 2e 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 70 6f 73 2c 20 >'...substr($description,.$pos,.
c7e0 73 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 strlen($token))...'</highlight>'
c800 0a 2e 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 70 6f 73 20 2b 20 73 ...substr($description,.$pos.+.s
c820 74 72 6c 65 6e 28 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 trlen($token));.}..$packages[$pa
c840 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 ckage->getName()].=.array(.'name
c860 27 20 3d 3e 20 24 6e 61 6d 65 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 64 65 '.=>.$name,.'description'.=>.$de
c880 73 63 72 69 70 74 69 6f 6e 2c 0a 27 6c 65 6e 67 74 68 27 20 3d 3e 20 24 6c 65 6e 67 74 68 20 3d scription,.'length'.=>.$length.=
c8a0 20 73 74 72 6c 65 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 .strlen($package->getPrettyName(
c8c0 29 29 2c 0a 27 73 63 6f 72 65 27 20 3d 3e 20 24 73 63 6f 72 65 2c 0a 29 3b 0a 0a 24 6d 61 78 50 )),.'score'.=>.$score,.);..$maxP
c8e0 61 63 6b 61 67 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6d 61 78 50 61 63 6b 61 67 65 4c 65 ackageLength.=.max($maxPackageLe
c900 6e 67 74 68 2c 20 24 6c 65 6e 67 74 68 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d ngth,.$length);..continue.2;.}.}
c920 0a 0a 75 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c ..usort($packages,.function.($a,
c940 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 63 6f 72 65 27 5d 20 3d 3d 3d 20 24 62 5b 27 73 .$b).{.if.($a['score'].===.$b['s
c960 63 6f 72 65 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 core']).{.return.0;.}..return.$a
c980 5b 27 73 63 6f 72 65 27 5d 20 3e 20 24 62 5b 27 73 63 6f 72 65 27 5d 20 3f 20 2d 31 20 3a 20 31 ['score'].>.$b['score'].?.-1.:.1
c9a0 3b 0a 7d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 64 65 ;.});..foreach.($packages.as.$de
c9c0 74 61 69 6c 73 29 20 7b 0a 24 65 78 74 72 61 53 70 61 63 65 73 20 3d 20 24 6d 61 78 50 61 63 6b tails).{.$extraSpaces.=.$maxPack
c9e0 61 67 65 4c 65 6e 67 74 68 20 2d 20 24 64 65 74 61 69 6c 73 5b 27 6c 65 6e 67 74 68 27 5d 3b 0a ageLength.-.$details['length'];.
ca00 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 6d 65 27 $output->writeln($details['name'
ca20 5d 20 2e 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 65 78 74 72 61 53 70 61 63 65 73 ]...str_repeat('.',.$extraSpaces
ca40 29 20 2e 27 20 3c 63 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 )..'.<comment>:</comment>.'..$de
ca60 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 0a 0a 0a 0a tails['description']);.}.}......
ca80 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 50 61 63 6b 61 67 65 ...private.function.matchPackage
caa0 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 24 74 6f 6b (PackageInterface.$package,.$tok
cac0 65 6e 29 0a 7b 0a 24 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 en).{.$score.=.0;..if.(false.!==
cae0 20 73 74 72 69 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 .stripos($package->getName(),.$t
cb00 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 35 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c oken)).{.$score.+=.5;.}..if.(fal
cb20 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 6a 6f 69 6e 28 27 2c 27 2c 20 24 70 61 63 6b 61 67 se.!==.stripos(join(',',.$packag
cb40 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 61 79 28 29 29 2c 20 24 74 e->getKeywords().?:.array()),.$t
cb60 6f 6b 65 6e 29 29 20 7b 0a 24 73 63 6f 72 65 20 2b 3d 20 33 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c oken)).{.$score.+=.3;.}..if.(fal
cb80 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 63 se.!==.stripos($package->getDesc
cba0 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 20 ription(),.$token)).{.$score.+=.
cbc0 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 0a 1;.}..return.$score;.}.}.<?php..
cbe0 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 6d ..........namespace.Composer\Com
cc00 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 73 mand;..use.Composer\Composer;.us
cc20 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 6d e.Composer\Util\RemoteFilesystem
cc40 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\
cc60 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 6e Input\InputInterface;.use.Symfon
cc80 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 75 y\Component\Console\Output\Outpu
cca0 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 65 tInterface;.....class.SelfUpdate
ccc0 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
cce0 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
cd00 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 44 .->setName('self-update').->setD
cd20 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 70 68 61 escription('Updates.composer.pha
cd40 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 73 65 74 r.to.the.latest.version.').->set
cd60 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 64 61 74 Help(<<<EOT.The.<info>self-updat
cd80 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 6d 70 6f e</info>.command.checks.getcompo
cda0 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 20 63 6f ser.org.for.newer.versions.of.co
cdc0 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 20 74 68 mposer.and.if.found,.installs.th
cde0 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 2e 70 68 e.latest...<info>php.composer.ph
ce00 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 3b 0a 7d ar.self-update</info>..EOT.).;.}
ce20 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 70 ..protected.function.execute(Inp
ce40 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 66 utInterface.$input,.OutputInterf
ce60 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 6f 74 65 ace.$output).{.$rfs.=.new.Remote
ce80 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 6c 61 74 Filesystem($this->getIO());.$lat
cea0 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 27 67 65 est.=.trim($rfs->getContents('ge
cec0 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 6d 70 6f tcomposer.org',.'http://getcompo
cee0 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 66 20 28 ser.org/version',.false));..if.(
cf00 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 29 20 7b Composer::VERSION.!==.$latest).{
cf20 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 64 61 74 .$output->writeln(sprintf("Updat
cf40 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 3e 2e 22 ing.to.version.<info>%s</info>."
cf60 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 20 3d 20 ,.$latest));..$remoteFilename.=.
cf80 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 73 65 72 'http://getcomposer.org/composer
cfa0 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 52 56 45 .phar';.$localFilename.=.$_SERVE
cfc0 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 20 62 61 R['argv'][0];.$tempFilename.=.ba
cfe0 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 27 29 2e sename($localFilename,.'.phar').
d000 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 74 63 6f '-temp.phar';..$rfs->copy('getco
d020 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 20 24 74 mposer.org',.$remoteFilename,.$t
d040 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 65 6d 70 empFilename);..try.{.chmod($temp
d060 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 20 24 70 Filename,.0777.&.~umask());...$p
d080 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 29 3b 0a har.=.new.\Phar($tempFilename);.
d0a0 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 69 6c 65 ..unset($phar);.rename($tempFile
d0c0 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 68 20 28 name,.$localFilename);.}.catch.(
d0e0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 6e 63 \Exception.$e).{.if.(!$e.instanc
d100 65 6f 66 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 20 26 26 eof.\UnexpectedValueException.&&
d120 20 21 24 65 20 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 .!$e.instanceof.\PharException).
d140 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 74 65 6d 70 46 69 6c 65 6e 61 {.throw.$e;.}.unlink($tempFilena
d160 6d 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 54 68 me);.$output->writeln('<error>Th
d180 65 20 64 6f 77 6e 6c 6f 61 64 20 69 73 20 63 6f 72 72 75 70 74 20 28 27 2e 24 65 2d 3e 67 65 74 e.download.is.corrupt.('.$e->get
d1a0 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 6f 75 74 70 75 74 Message().').</error>');.$output
d1c0 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 65 2d 72 75 6e 20 ->writeln('<error>Please.re-run.
d1e0 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 20 74 72 79 20 61 the.self-update.command.to.try.a
d200 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 7b 0a 24 6f 75 74 gain.</error>');.}.}.else.{.$out
d220 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 65 20 75 73 69 6e put->writeln("<info>You.are.usin
d240 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 69 6f 6e 2e 3c 2f g.the.latest.composer.version.</
d260 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 0a 0a 0a 0a 0a 0a info>");.}.}.}.<?php............
d280 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
d2a0 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
d2c0 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
d2e0 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
d300 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
d320 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
d340 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
d360 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 63 74 6f 72 79 3b Interface;.use.Composer\Factory;
d380 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 43 6f 6d .use.Composer\Installer;.use.Com
d3a0 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 65 poser\Json\JsonFile;.use.Compose
d3c0 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 0a 0a 0a 63 6c 61 r\Json\JsonManipulator;......cla
d3e0 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 49 6e 69 74 43 6f ss.RequireCommand.extends.InitCo
d400 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 69 mmand.{.protected.function.confi
d420 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 72 65 71 75 69 72 gure().{.$this.->setName('requir
d440 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 20 72 65 71 75 69 e').->setDescription('Adds.requi
d460 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 73 red.packages.to.your.composer.js
d480 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 65 74 44 65 66 69 on.and.installs.them').->setDefi
d4a0 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(
d4c0 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 3a 49 53 5f 41 52 'packages',.InputArgument::IS_AR
d4e0 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 4e 41 4c 2c 20 27 RAY.|.InputArgument::OPTIONAL,.'
d500 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 72 73 69 6f 6e 20 Required.package.with.a.version.
d520 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 2e 30 2e 30 20 6f constraint,.e.g..foo/bar:1.0.0.o
d540 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 72 20 31 2e 30 2e r.foo/bar=1.0.0.or."foo/bar.1.0.
d560 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 27 2c 20 6e 75 6c 0"'),.new.InputOption('dev',.nul
d580 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 41 64 64 l,.InputOption::VALUE_NONE,.'Add
d5a0 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 76 2e 27 29 2c 0a .requirement.to.require-dev.'),.
d5c0 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 75 72 63 65 27 2c new.InputOption('prefer-source',
d5e0 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 2c 20 .null,.InputOption::VALUE_NONE,.
d600 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 61 67 'Forces.installation.from.packag
d620 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 6e 63 6c 75 64 69 e.sources.when.possible,.includi
d640 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 ng.VCS.information.'),.)).->setH
d660 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 20 61 elp(<<<EOT.The.require.command.a
d680 64 64 73 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 dds.required.packages.to.your.co
d6a0 6d 70 6f 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 0a 0a 45 mposer.json.and.installs.them..E
d6c0 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
d6e0 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
d700 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 61 63 74 6f 72 79 20 utInterface.$output).{.$factory.
d720 3d 20 6e 65 77 20 46 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 =.new.Factory;.$file.=.$factory-
d740 3e 67 65 74 43 6f 6d 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 >getComposerFile();..if.(!file_e
d760 78 69 73 74 73 28 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 xists($file)).{.$output->writeln
d780 28 27 3c 65 72 72 6f 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 ('<error>'.$file.'.not.found.</e
d7a0 72 72 6f 72 3e 27 29 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 rror>');..return.1;.}.if.(!is_re
d7c0 61 64 61 62 6c 65 28 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 adable($file)).{.$output->writel
d7e0 6e 28 27 3c 65 72 72 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 n('<error>'.$file.'.is.not.reada
d800 62 6c 65 2e 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 0a 24 64 ble.</error>');..return.1;.}..$d
d820 69 61 6c 6f 67 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 67 ialog.=.$this->getHelperSet()->g
d840 65 74 28 27 64 69 61 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 et('dialog');..$json.=.new.JsonF
d860 69 6c 65 28 24 66 69 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 ile($file);.$composer.=.$json->r
d880 65 61 64 28 29 3b 0a 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 ead();..$requirements.=.$this->d
d8a0 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 6f 75 etermineRequirements($input,.$ou
d8c0 74 70 75 74 2c 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 tput,.$input->getArgument('packa
d8e0 67 65 73 27 29 29 3b 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 ges'));..$requireKey.=.$input->g
d900 65 74 4f 70 74 69 6f 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 etOption('dev').?.'require-dev'.
d920 3a 20 27 72 65 71 75 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 :.'require';.$baseRequirements.=
d940 20 61 72 72 61 79 5f 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 .array_key_exists($requireKey,.$
d960 63 6f 6d 70 6f 73 65 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 composer).?.$composer[$requireKe
d980 79 5d 20 3a 20 61 72 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 y].:.array();.$requirements.=.$t
d9a0 68 69 73 2d 3e 66 6f 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 his->formatRequirements($require
d9c0 6d 65 6e 74 73 29 3b 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 ments);..if.(!$this->updateFileC
d9e0 6c 65 61 6e 6c 79 28 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 leanly($json,.$baseRequirements,
da00 20 24 72 65 71 75 69 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 .$requirements,.$requireKey)).{.
da20 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 70 61 63 6b 61 foreach.($requirements.as.$packa
da40 67 65 20 3d 3e 20 24 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 ge.=>.$version).{.$baseRequireme
da60 6e 74 73 5b 24 70 61 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 nts[$package].=.$version;.}..$co
da80 6d 70 6f 73 65 72 5b 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 mposer[$requireKey].=.$baseRequi
daa0 72 65 6d 65 6e 74 73 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 rements;.$json->write($composer)
dac0 3b 0a 7d 0a 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 2e 24 ;.}..$output->writeln('<info>'.$
dae0 66 69 6c 65 2e 27 20 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 file.'.has.been.updated</info>')
db00 3b 0a 0a 0a 20 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 ;....$composer.=.$this->getCompo
db20 73 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 ser();.$io.=.$this->getIO();.$in
db40 73 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 stall.=.Installer::create($io,.$
db60 63 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 56 65 72 62 6f 73 composer);..$install.->setVerbos
db80 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 27 29 29 0a e($input->getOption('verbose')).
dba0 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 74 4f 70 74 ->setPreferSource($input->getOpt
dbc0 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 44 65 76 4d 6f ion('prefer-source')).->setDevMo
dbe0 64 65 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 de($input->getOption('dev')).->s
dc00 65 74 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 etUpdate(true).->setUpdateWhitel
dc20 69 73 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 ist($requirements);.;..return.$i
dc40 6e 73 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 nstall->run().?.0.:.1;.}..privat
dc60 65 20 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 e.function.updateFileCleanly($js
dc80 6f 6e 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 on,.array.$base,.array.$new,.$re
dca0 71 75 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 quireKey).{.$contents.=.file_get
dcc0 5f 63 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 _contents($json->getPath());..$m
dce0 61 6e 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 anipulator.=.new.JsonManipulator
dd00 28 24 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 ($contents);..foreach.($new.as.$
dd20 70 61 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 package.=>.$constraint).{.if.(!$
dd40 6d 61 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 manipulator->addLink($requireKey
dd60 2c 20 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 ,.$package,.$constraint)).{.retu
dd80 72 6e 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 rn.false;.}.}..file_put_contents
dda0 28 24 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 ($json->getPath(),.$manipulator-
ddc0 3e 67 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 >getContents());..return.true;.}
dde0 0a 0a 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 ..protected.function.interact(In
de00 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
de20 66 61 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 face.$output).{.return;.}.}.<?ph
de40 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\
de60 43 6f 6d 6d 61 6e 64 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 Command\Helper;..use.Symfony\Com
de80 70 6f 6e 65 6e 74 5c 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 ponent\Console\Helper\DialogHelp
dea0 65 72 20 61 73 20 42 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 er.as.BaseDialogHelper;..class.D
dec0 69 61 6c 6f 67 48 65 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 ialogHelper.extends.BaseDialogHe
dee0 6c 70 65 72 0a 7b 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 lper.{............public.functio
df00 6e 20 67 65 74 51 75 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 n.getQuestion($question,.$defaul
df20 74 20 3d 20 6e 75 6c 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 t.=.null,.$sep.=.':').{.return.$
df40 64 65 66 61 75 6c 74 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 default.!==.null.?.sprintf('<inf
df60 6f 3e 25 73 3c 2f 69 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 o>%s</info>.[<comment>%s</commen
df80 74 3e 5d 25 73 20 27 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 t>]%s.',.$question,.$default,.$s
dfa0 65 70 29 20 3a 0a 73 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 ep).:.sprintf('<info>%s</info>%s
dfc0 20 27 2c 20 24 71 75 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 .',.$question,.$sep);.}.}.<?php.
dfe0 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
e000 6d 6d 61 6e 64 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 46 69 mmand;..use.Composer\Json\JsonFi
e020 6c 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 43 6f le;.use.Composer\Factory;.use.Co
e040 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 74 65 52 65 70 6f 73 mposer\Repository\CompositeRepos
e060 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 5c 50 itory;.use.Composer\Repository\P
e080 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 latformRepository;.use.Symfony\C
e0a0 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
e0c0 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
e0e0 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
e100 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
e120 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
e140 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 ent\Process\Process;.use.Symfony
e160 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 65 63 75 74 61 62 6c 65 46 69 6e \Component\Process\ExecutableFin
e180 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 der;......class.InitCommand.exte
e1a0 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 67 69 74 43 6f 6e 66 69 67 nds.Command.{.private.$gitConfig
e1c0 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ;.private.$repos;..public.functi
e1e0 6f 6e 20 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 0a 7b 0a on.parseAuthorString($author).{.
e200 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 3c 6e 61 6d 65 3e 5b 2d 20 5c 2e if.(preg_match('/^(?P<name>[-.\.
e220 2c 5c 77 5c 27 e2 80 99 5d 2b 29 20 3c 28 3f 50 3c 65 6d 61 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 ,\w\'...]+).<(?P<email>.+?)>$/u'
e240 2c 20 24 61 75 74 68 6f 72 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 66 75 6e 63 74 ,.$author,.$match)).{.if.(!funct
e260 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 7c 7c 20 76 65 72 73 ion_exists('filter_var').||.vers
e280 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 33 27 ion_compare(PHP_VERSION,.'5.3.3'
e2a0 2c 20 27 3c 27 29 20 7c 7c 20 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 20 3d 3d 3d 20 66 69 ,.'<').||.$match['email'].===.fi
e2c0 6c 74 65 72 5f 76 61 72 28 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 lter_var($match['email'],.FILTER
e2e0 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 _VALIDATE_EMAIL)).{.return.array
e300 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 27 6e 61 6d 65 27 5d 29 (.'name'.=>.trim($match['name'])
e320 2c 0a 27 65 6d 61 69 6c 27 20 3d 3e 20 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 0a 29 3b 0a ,.'email'.=>.$match['email'].);.
e340 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 67 75 6d 65 6e 74 45 }.}..throw.new.\InvalidArgumentE
e360 78 63 65 70 74 69 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 61 75 74 68 6f 72 20 73 74 72 69 6e 67 xception(.'Invalid.author.string
e380 2e 20 20 4d 75 73 74 20 62 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 3a 20 27 2e 0a 27 4a 6f ...Must.be.in.the.format:.'..'Jo
e3a0 68 6e 20 53 6d 69 74 68 20 3c 6a 6f 68 6e 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 27 0a 29 3b 0a hn.Smith.<john@example.com>'.);.
e3c0 7d 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 }..protected.function.configure(
e3e0 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 69 74 27 29 0a 2d 3e 73 65 ).{.$this.->setName('init').->se
e400 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f tDescription('Creates.a.basic.co
e420 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 mposer.json.file.in.current.dire
e440 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(.
e460 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e new.InputOption('name',.null,.In
e480 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4e 61 6d 65 20 6f 66 20 putOption::VALUE_NONE,.'Name.of.
e4a0 74 68 65 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 the.package'),.new.InputOption('
e4c0 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a description',.null,.InputOption:
e4e0 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 61 63 :VALUE_NONE,.'Description.of.pac
e500 6b 61 67 65 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 kage'),.new.InputOption('author'
e520 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 2c ,.null,.InputOption::VALUE_NONE,
e540 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
e560 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,.
e580 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 48 6f 6d 65 70 61 InputOption::VALUE_NONE,.'Homepa
e5a0 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 74 69 6f 6e ge.of.package'),.new.InputOption
e5c0 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 6e 3a 3a 56 ('require',.null,.InputOption::V
e5e0 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 3a 56 41 4c ALUE_IS_ARRAY.|.InputOption::VAL
e600 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 75 69 72 65 UE_REQUIRED,.'Package.to.require
e620 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 65 2e 67 2e .with.a.version.constraint,.e.g.
e640 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 30 2e 30 20 .foo/bar:1.0.0.or.foo/bar=1.0.0.
e660 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 70 75 74 4f or."foo/bar.1.0.0"'),.new.InputO
e680 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 6e 70 75 74 ption('require-dev',.null,.Input
e6a0 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 75 74 4f 70 Option::VALUE_IS_ARRAY.|.InputOp
e6c0 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 67 65 20 74 tion::VALUE_REQUIRED,.'Package.t
e6e0 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 74 68 20 61 o.require.for.development.with.a
e700 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 6f 2f 62 61 .version.constraint,.e.g..foo/ba
e720 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 22 66 6f 6f r:1.0.0.or.foo/bar=1.0.0.or."foo
e740 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 /bar.1.0.0"'),.)).->setHelp(<<<E
e760 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 OT.The.<info>init</info>.command
e780 20 63 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 66 .creates.a.basic.composer.json.f
e7a0 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c ile.in.the.current.directory...<
e7c0 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 69 74 3c 2f 69 6e 66 info>php.composer.phar.init</inf
e7e0 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 66 75 6e 63 74 69 6f o>..EOT.).;.}..protected.functio
e800 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,
e820 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 64 69 61 .OutputInterface.$output).{.$dia
e840 6c 6f 67 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 67 65 74 log.=.$this->getHelperSet()->get
e860 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 28 ('dialog');..$whitelist.=.array(
e880 27 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 27 61 75 74 68 6f 72 27 2c 'name',.'description',.'author',
e8a0 20 27 72 65 71 75 69 72 65 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 .'require');..$options.=.array_f
e8c0 69 6c 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 ilter(array_intersect_key($input
e8e0 2d 3e 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 ->getOptions(),.array_flip($whit
e900 65 6c 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 elist)));..if.(isset($options['a
e920 75 74 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 uthor'])).{.$options['authors'].
e940 3d 20 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 =.$this->formatAuthors($options[
e960 27 61 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 'author']);.unset($options['auth
e980 6f 72 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 or']);.}..$options['require'].=.
e9a0 69 73 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 0a 24 74 68 isset($options['require']).?.$th
e9c0 69 73 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 is->formatRequirements($options[
e9e0 27 72 65 71 75 69 72 65 27 5d 29 20 3a 0a 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 0a 24 66 'require']).:.new.\stdClass;..$f
ea00 69 6c 65 20 3d 20 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 ile.=.new.JsonFile('composer.jso
ea20 6e 27 29 3b 0a 0a 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 n');..$json.=.$file->encode($opt
ea40 69 6f 6e 73 29 3b 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 ions);..if.($input->isInteractiv
ea60 65 28 29 29 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 e()).{.$output->writeln(array(.'
ea80 27 2c 0a 24 6a 73 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 ',.$json,.''.));.if.(!$dialog->a
eaa0 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 64 69 61 6c 6f 67 2d skConfirmation($output,.$dialog-
eac0 3e 67 65 74 51 75 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 >getQuestion('Do.you.confirm.gen
eae0 65 72 61 74 69 6f 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 eration',.'yes',.'?'),.true)).{.
eb00 24 6f 75 74 70 75 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 $output->writeln('<error>Command
eb20 20 61 62 6f 72 74 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 .aborted</error>');..return.1;.}
eb40 0a 7d 0a 0a 24 66 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 .}..$file->write($options);..if.
eb60 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 69 67 6e ($input->isInteractive()).{.$ign
eb80 6f 72 65 46 69 6c 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 oreFile.=.realpath('.gitignore')
eba0 3b 0a 0a 69 66 20 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 ;..if.(false.===.$ignoreFile).{.
ebc0 24 69 67 6e 6f 72 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 $ignoreFile.=.realpath('.')...'/
ebe0 2e 67 69 74 69 67 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 .gitignore';.}..if.(!$this->hasV
ec00 65 6e 64 6f 72 49 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 endorIgnore($ignoreFile)).{.$que
ec20 73 74 69 6f 6e 20 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 stion.=.'Would.you.like.the.<inf
ec40 6f 3e 76 65 6e 64 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 o>vendor</info>.directory.added.
ec60 74 6f 20 79 6f 75 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 to.your.<info>.gitignore</info>.
ec80 5b 3c 63 6f 6d 6d 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 [<comment>yes</comment>]?';..if.
eca0 28 24 64 69 61 6c 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 ($dialog->askConfirmation($outpu
ecc0 74 2c 20 24 71 75 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 t,.$question,.true)).{.$this->ad
ece0 64 56 65 6e 64 6f 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 dVendorIgnore($ignoreFile);.}.}.
ed00 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 74 65 72 61 63 74 }.}..protected.function.interact
ed20 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 6e (InputInterface.$input,.OutputIn
ed40 74 65 72 66 61 63 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 terface.$output).{.$git.=.$this-
ed60 3e 67 65 74 47 69 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 >getGitConfig();..$dialog.=.$thi
ed80 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 6c 6f 67 27 29 s->getHelperSet()->get('dialog')
eda0 3b 0a 24 66 6f 72 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 ;.$formatter.=.$this->getHelperS
edc0 65 74 28 29 2d 3e 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 et()->get('formatter');.$output-
ede0 3e 77 72 69 74 65 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 >writeln(array(.'',.$formatter->
ee00 66 6f 72 6d 61 74 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 formatBlock('Welcome.to.the.Comp
ee20 6f 73 65 72 20 63 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 oser.config.generator',.'bg=blue
ee40 3b 66 67 3d 77 68 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 ;fg=white',.true),.''.));....$ou
ee60 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 27 54 68 69 73 20 63 tput->writeln(array(.'',.'This.c
ee80 6f 6d 6d 61 6e 64 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 ommand.will.guide.you.through.cr
eea0 65 61 74 69 6e 67 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 eating.your.composer.json.config
eec0 2e 27 2c 0a 27 27 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 .',.'',.));..$cwd.=.realpath("."
eee0 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 );..if.(false.===.$name.=.$input
ef00 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 62 ->getOption('name')).{.$name.=.b
ef20 61 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 67 asename($cwd);.if.(isset($git['g
ef40 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 67 ithub.user'])).{.$name.=.$git['g
ef60 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c ithub.user']...'/'...$name;.}.el
ef80 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 seif.(!empty($_SERVER['USERNAME'
efa0 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 ])).{.$name.=.$_SERVER['USERNAME
efc0 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 5f ']...'/'...$name;.}.elseif.(get_
efe0 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 75 current_user()).{.$name.=.get_cu
f000 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c rrent_user()...'/'...$name;.}.el
f020 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e 61 se.{...$name.=.$name...'/'...$na
f040 6d 65 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 me;.}.}..$name.=.$dialog->askAnd
f060 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 2d 3e 67 65 74 51 Validate(.$output,.$dialog->getQ
f080 75 65 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e 2f uestion('Package.name.(<vendor>/
f0a0 3c 6e 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c <name>)',.$name),.function.($val
f0c0 75 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ue).use.($name).{.if.(null.===.$
f0e0 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 value).{.return.$name;.}..if.(!p
f100 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d reg_match('{^[a-z0-9_.-]+/[a-z0-
f120 39 5f 2e 2d 5d 2b 24 7d 69 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 9_.-]+$}i',.$value)).{.throw.new
f140 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 54 68 65 .\InvalidArgumentException(.'The
f160 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 76 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 61 .package.name.'.$value.'.is.inva
f180 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d lid,.it.should.have.a.vendor.nam
f1a0 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 e,.a.forward.slash,.and.a.packag
f1c0 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b e.name,.matching:.[a-z0-9_.-]+/[
f1e0 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 a-z0-9_.-]+'.);.}..return.$value
f200 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c ;.}.);.$input->setOption('name',
f220 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d .$name);..$description.=.$input-
f240 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 20 3f 3a 20 66 61 6c >getOption('description').?:.fal
f260 73 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 se;.$description.=.$dialog->ask(
f280 0a 24 6f 75 74 70 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 .$output,.$dialog->getQuestion('
f2a0 44 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 0a 29 3b 0a 24 Description',.$description).);.$
f2c0 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 input->setOption('description',.
f2e0 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 $description);..if.(false.===.$a
f300 75 74 68 6f 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f uthor.=.$input->getOption('autho
f320 72 27 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 r')).{.if.(isset($git['user.name
f340 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 ']).&&.isset($git['user.email'])
f360 29 20 7b 0a 24 61 75 74 68 6f 72 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c ).{.$author.=.sprintf('%s.<%s>',
f380 20 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 65 .$git['user.name'],.$git['user.e
f3a0 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 61 75 mail']);.}.}..$self.=.$this;.$au
f3c0 74 68 6f 72 20 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 thor.=.$dialog->askAndValidate(.
f3e0 24 6f 75 74 70 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 41 $output,.$dialog->getQuestion('A
f400 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c uthor',.$author),.function.($val
f420 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 6e ue).use.($self,.$author).{.if.(n
f440 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 75 74 68 6f 72 ull.===.$value).{.return.$author
f460 3b 0a 7d 0a 0a 24 61 75 74 68 6f 72 20 3d 20 24 73 65 6c 66 2d 3e 70 61 72 73 65 41 75 74 68 6f ;.}..$author.=.$self->parseAutho
f480 72 53 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 rString($value);..return.sprintf
f4a0 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 61 75 74 68 6f 72 5b 27 6e 61 6d 65 27 5d 2c 20 24 61 75 ('%s.<%s>',.$author['name'],.$au
f4c0 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 thor['email']);.}.);.$input->set
f4e0 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 24 61 75 74 68 6f 72 29 3b 0a 0a 24 6f 75 74 Option('author',.$author);..$out
f500 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 44 65 66 69 6e 65 20 put->writeln(array(.'',.'Define.
f520 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 2c 0a 27 27 0a 29 29 3b 0a 0a 24 72 65 your.dependencies.',.''.));..$re
f540 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f quirements.=.array();.if.($dialo
f560 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 64 69 61 g->askConfirmation($output,.$dia
f580 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 log->getQuestion('Would.you.like
f5a0 20 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 .to.define.your.dependencies.(re
f5c0 71 75 69 72 65 29 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 quire).interactively',.'yes',.'?
f5e0 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 '),.true)).{.$requirements.=.$th
f600 69 73 2d 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 is->determineRequirements($input
f620 2c 20 24 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 ,.$output,.$input->getOption('re
f640 71 75 69 72 65 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 72 quire'));.}.$input->setOption('r
f660 65 71 75 69 72 65 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 24 64 65 76 52 65 71 equire',.$requirements);.$devReq
f680 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 uirements.=.array();.if.($dialog
f6a0 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 64 69 61 6c ->askConfirmation($output,.$dial
f6c0 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 og->getQuestion('Would.you.like.
f6e0 74 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 76 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 to.define.your.dev.dependencies.
f700 28 72 65 71 75 69 72 65 2d 64 65 76 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 (require-dev).interactively',.'y
f720 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d es',.'?'),.true)).{.$devRequirem
f740 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 ents.=.$this->determineRequireme
f760 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 nts($input,.$output,.$input->get
f780 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 Option('require-dev'));.}.$input
f7a0 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 24 64 65 76 52 ->setOption('require-dev',.$devR
f7c0 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 equirements);.}..protected.funct
f7e0 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 24 70 61 63 6b 61 ion.findPackages($name).{.$packa
f800 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 ges.=.array();....if.(!$this->re
f820 70 6f 73 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 pos).{.$this->repos.=.new.Compos
f840 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 72 61 79 iteRepository(array_merge(.array
f860 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 29 2c 0a 46 61 63 74 6f 72 (new.PlatformRepository),.Factor
f880 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 28 24 74 68 y::createDefaultRepositories($th
f8a0 69 73 2d 3e 67 65 74 49 4f 28 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 73 74 72 is->getIO()).));.}..$token.=.str
f8c0 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e tolower($name);.foreach.($this->
f8e0 72 65 70 6f 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 repos->getPackages().as.$package
f900 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 ).{.if.(false.===.($pos.=.strpos
f920 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 29 20 ($package->getName(),.$token))).
f940 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 {.continue;.}..$packages[].=.$pa
f960 63 6b 61 67 65 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 70 ckage;.}..return.$packages;.}..p
f980 72 6f 74 65 63 74 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 rotected.function.determineRequi
f9a0 72 65 6d 65 6e 74 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 rements(InputInterface.$input,.O
f9c0 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 72 65 71 75 69 72 65 utputInterface.$output,.$require
f9e0 73 20 3d 20 61 72 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 s.=.array()).{.$dialog.=.$this->
fa00 67 65 74 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 getHelperSet()->get('dialog');.$
fa20 70 72 6f 6d 70 74 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 prompt.=.$dialog->getQuestion('S
fa40 65 61 72 63 68 20 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 earch.for.a.package',.false,.':'
fa60 29 3b 0a 0a 69 66 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 );..if.($requires).{.foreach.($r
fa80 65 71 75 69 72 65 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 equires.as.$key.=>.$requirement)
faa0 20 7b 0a 24 72 65 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 .{.$requires[$key].=.$this->norm
fac0 61 6c 69 7a 65 52 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 alizeRequirement($requirement);.
fae0 69 66 20 28 66 61 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 if.(false.===.strpos($requires[$
fb00 6b 65 79 5d 2c 20 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 key],.'.').&&.$input->isInteract
fb20 69 76 65 28 29 29 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 ive()).{.$question.=.$dialog->ge
fb40 74 51 75 65 73 74 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 tQuestion('Please.provide.a.vers
fb60 69 6f 6e 20 63 6f 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 ion.constraint.for.the.'.$requir
fb80 65 6d 65 6e 74 2e 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 ement.'.requirement');.if.($cons
fba0 74 72 61 69 6e 74 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 traint.=.$dialog->ask($output,.$
fbc0 71 75 65 73 74 69 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 question)).{.$requires[$key]..=.
fbe0 27 20 27 20 2e 20 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 '.'...$constraint;.}.}.if.(false
fc00 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 27 20 27 .===.strpos($requires[$key],.'.'
fc20 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
fc40 78 63 65 70 74 69 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 xception('The.requirement.'.$req
fc60 75 69 72 65 6d 65 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 uirement.'.must.contain.a.versio
fc80 6e 20 63 6f 6e 73 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 n.constraint');.}.}..return.$req
fca0 75 69 72 65 73 3b 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 uires;.}..while.(null.!==.$packa
fcc0 67 65 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 70 72 6f 6d ge.=.$dialog->ask($output,.$prom
fce0 70 74 29 29 20 7b 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 pt)).{.$matches.=.$this->findPac
fd00 6b 61 67 65 73 28 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 kages($package);..if.(count($mat
fd20 63 68 65 73 29 29 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 ches)).{.$output->writeln(array(
fd40 0a 27 27 2c 0a 73 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 .'',.sprintf('Found.<info>%s</in
fd60 66 6f 3e 20 70 61 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 fo>.packages.matching.<info>%s</
fd80 69 6e 66 6f 3e 27 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 info>',.count($matches),.$packag
fda0 65 29 2c 0a 27 27 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 e),.''.));..foreach.($matches.as
fdc0 20 24 70 6f 73 69 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 .$position.=>.$package).{.$outpu
fde0 74 2d 3e 77 72 69 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 t->writeln(sprintf('.<info>%5s</
fe00 69 6e 66 6f 3e 20 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 info>.%s.<comment>%s</comment>',
fe20 20 22 5b 24 70 6f 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 ."[$position]",.$package->getPre
fe40 74 74 79 4e 61 6d 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 ttyName(),.$package->getPrettyVe
fe60 72 73 69 6f 6e 28 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 rsion()));.}..$output->writeln('
fe80 27 29 3b 0a 0a 24 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 ');..$validator.=.function.($sel
fea0 65 63 74 69 6f 6e 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 ection).use.($matches).{.if.(''.
fec0 3d 3d 3d 20 24 73 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 ===.$selection).{.return.false;.
fee0 7d 0a 0a 69 66 20 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 }..if.(!is_numeric($selection).&
ff00 26 20 70 72 65 67 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 &.preg_match('{^\s*(\S+).+(\S.*)
ff20 5c 73 2a 7d 27 2c 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 \s*}',.$selection,.$matches)).{.
ff40 72 65 74 75 72 6e 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 return.$matches[1].'.'.$matches[
ff60 32 5d 3b 0a 7d 0a 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 2];.}..if.(!isset($matches[(int)
ff80 20 24 73 65 6c 65 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 .$selection])).{.throw.new.\Exce
ffa0 70 74 69 6f 6e 28 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 ption('Not.a.valid.selection');.
ffc0 7d 0a 0a 24 70 61 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 }..$package.=.$matches[(int).$se
ffe0 6c 65 63 74 69 6f 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 lection];..return.sprintf('%s.%s
10000 27 2c 20 24 70 61 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 ',.$package->getName(),.$package
10020 2d 3e 67 65 74 50 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 ->getPrettyVersion());.};..$pack
10040 61 67 65 20 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 24 6f age.=.$dialog->askAndValidate($o
10060 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 6f 6e 28 27 45 6e 74 utput,.$dialog->getQuestion('Ent
10080 65 72 20 70 61 63 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 er.package.#.to.add,.or.a."[pack
100a0 61 67 65 5d 20 5b 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 age].[version]".couple.if.it.is.
100c0 6e 6f 74 20 6c 69 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 not.listed',.false,.':'),.$valid
100e0 61 74 6f 72 2c 20 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 ator,.3);..if.(false.!==.$packag
10100 65 29 20 7b 0a 24 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 e).{.$requires[].=.$package;.}.}
10120 0a 7d 0a 0a 72 65 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 .}..return.$requires;.}..protect
10140 65 64 20 66 75 6e 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 ed.function.formatAuthors($autho
10160 72 29 0a 7b 0a 72 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 r).{.return.array($this->parseAu
10180 74 68 6f 72 53 74 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 thorString($author));.}..protect
101a0 65 64 20 66 75 6e 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 ed.function.formatRequirements(a
101c0 72 72 61 79 20 24 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 rray.$requirements).{.$requires.
101e0 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 72 65 6d 65 6e 74 =.array();.foreach.($requirement
10200 73 20 61 73 20 24 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 s.as.$requirement).{.$requiremen
10220 74 20 3d 20 24 74 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 t.=.$this->normalizeRequirement(
10240 24 72 65 71 75 69 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 $requirement);.list($packageName
10260 2c 20 24 70 61 63 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 ,.$packageVersion).=.explode("."
10280 2c 20 24 72 65 71 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 ,.$requirement,.2);..$requires[$
102a0 70 61 63 6b 61 67 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 packageName].=.$packageVersion;.
102c0 7d 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 72 65 71 75 69 72 65 73 29 20 3f 20 6e 65 77 }..return.empty($requires).?.new
102e0 20 5c 73 74 64 43 6c 61 73 73 20 3a 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 .\stdClass.:.$requires;.}..prote
10300 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 cted.function.normalizeRequireme
10320 6e 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 nt($requirement).{.return.preg_r
10340 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 3d 3a 20 5d 2b 29 5b 3d 3a 20 5d 28 2e 2a 29 24 7d 27 2c eplace('{^([^=:.]+)[=:.](.*)$}',
10360 20 27 24 31 20 24 32 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 .'$1.$2',.$requirement);.}..prot
10380 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 0a 7b 0a ected.function.getGitConfig().{.
103a0 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 29 20 7b if.(null.!==.$this->gitConfig).{
103c0 0a 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 24 66 69 .return.$this->gitConfig;.}..$fi
103e0 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 nder.=.new.ExecutableFinder();.$
10400 67 69 74 42 69 6e 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 67 69 74 27 29 3b 0a 0a gitBin.=.$finder->find('git');..
10420 24 63 6d 64 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 73 70 72 69 6e 74 66 28 27 25 73 20 63 $cmd.=.new.Process(sprintf('%s.c
10440 6f 6e 66 69 67 20 2d 6c 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 42 69 onfig.-l',.escapeshellarg($gitBi
10460 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 6e 28 29 3b 0a 0a 69 66 20 28 24 63 6d 64 2d 3e 69 73 n)));.$cmd->run();..if.($cmd->is
10480 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 Successful()).{.$this->gitConfig
104a0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 5e 28 5b .=.array();.preg_match_all('{^([
104c0 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 2d 3e 67 65 74 4f 75 74 70 75 74 28 ^=]+)=(.*)$}m',.$cmd->getOutput(
104e0 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 3b 0a 66 6f ),.$matches,.PREG_SET_ORDER);.fo
10500 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 24 74 68 reach.($matches.as.$match).{.$th
10520 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 is->gitConfig[$match[1]].=.$matc
10540 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 h[2];.}..return.$this->gitConfig
10560 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 ;.}..return.$this->gitConfig.=.a
10580 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 rray();.}..................prote
105a0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 cted.function.hasVendorIgnore($i
105c0 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b gnoreFile,.$vendor.=.'vendor').{
105e0 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 .if.(!file_exists($ignoreFile)).
10600 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 70 {.return.false;.}..$pattern.=.sp
10620 72 69 6e 74 66 28 0a 27 7e 5e 2f 3f 25 73 28 2f 7c 2f 5c 2a 29 3f 24 7e 27 2c 0a 70 72 65 67 5f rintf(.'~^/?%s(/|/\*)?$~',.preg_
10640 71 75 6f 74 65 28 24 76 65 6e 64 6f 72 2c 20 27 7e 27 29 0a 29 3b 0a 0a 24 6c 69 6e 65 73 20 3d quote($vendor,.'~').);..$lines.=
10660 20 66 69 6c 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 46 49 4c 45 5f 49 47 4e 4f 52 45 5f 4e .file($ignoreFile,.FILE_IGNORE_N
10680 45 57 5f 4c 49 4e 45 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c EW_LINES);.foreach.($lines.as.$l
106a0 69 6e 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 ine).{.if.(preg_match($pattern,.
106c0 24 6c 69 6e 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 74 75 $line)).{.return.true;.}.}..retu
106e0 72 6e 20 66 61 6c 73 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 rn.false;.}..protected.function.
10700 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 addVendorIgnore($ignoreFile,.$ve
10720 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 ndor.=.'vendor').{.$contents.=."
10740 22 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 ";.if.(file_exists($ignoreFile))
10760 20 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 6e 74 73 .{.$contents.=.file_get_contents
10780 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 3b 0a 0a 69 66 20 28 22 5c 6e 22 20 21 3d 3d 20 73 75 62 ($ignoreFile);..if.("\n".!==.sub
107a0 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 2d 31 29 29 20 7b 0a 24 63 6f 6e 74 65 6e str($contents,.0,.-1)).{.$conten
107c0 74 73 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e ts..=."\n";.}.}..file_put_conten
107e0 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 20 2e 20 24 76 65 6e ts($ignoreFile,.$contents...$ven
10800 64 6f 72 2e 20 22 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 dor.."\n");.}.}.<?php...........
10820 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 0a .namespace.Composer\Downloader;.
10840 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
10860 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 5c 50 72 6f 63 65 73 erface;.use.Composer\Util\Proces
10880 73 45 78 65 63 75 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 sExecutor;.use.Composer\IO\IOInt
108a0 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 5c 46 69 6c 65 73 79 erface;.use.Composer\Util\Filesy
108c0 73 74 65 6d 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 6f 77 6e stem;.....abstract.class.VcsDown
108e0 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 49 6e 74 65 loader.implements.DownloaderInte
10900 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 63 74 65 64 rface.{.protected.$io;.protected
10920 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d .$process;.protected.$filesystem
10940 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 49 ;..public.function.__construct(I
10960 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 74 6f 72 20 OInterface.$io,.ProcessExecutor.
10980 24 70 72 6f 63 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 $process.=.null,.Filesystem.$fs.
109a0 3d 20 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 =.null).{.$this->io.=.$io;.$this
109c0 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 63 ->process.=.$process.?:.new.Proc
109e0 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d essExecutor;.$this->filesystem.=
10a00 20 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 .$fs.?:.new.Filesystem;.}.....pu
10a20 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
10a40 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 rce().{.return.'source';.}.....p
10a60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 ublic.function.download(PackageI
10a80 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 69 66 20 28 nterface.$package,.$path).{.if.(
10aa0 21 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 29 29 !$package->getSourceReference())
10ac0 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
10ae0 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 2d 3e 67 65 74 50 eption('Package.'.$package->getP
10b00 72 65 74 74 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 rettyName().'.is.missing.referen
10b20 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e ce.information');.}..$this->io->
10b40 77 72 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 write("..-.Installing.<info>"...
10b60 24 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 $package->getName()..."</info>.(
10b80 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 <comment>"...$package->getPretty
10ba0 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 Version()..."</comment>)");.$thi
10bc0 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 74 6f 72 79 28 24 s->filesystem->removeDirectory($
10be0 70 61 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 path);.$this->doDownload($packag
10c00 65 2c 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 e,.$path);.$this->io->write('');
10c20 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 50 61 .}.....public.function.update(Pa
10c40 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
10c60 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 0a 69 66 20 28 Interface.$target,.$path).{.if.(
10c80 21 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 20 !$target->getSourceReference()).
10ca0 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
10cc0 70 74 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 ption('Package.'.$target->getPre
10ce0 74 74 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 ttyName().'.is.missing.reference
10d00 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 .information');.}..$this->io->wr
10d20 69 74 65 28 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 74 61 72 ite("..-.Updating.<info>"...$tar
10d40 67 65 74 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 6f 6d 6d get->getName()..."</info>.(<comm
10d60 65 6e 74 3e 22 20 2e 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f ent>"...$target->getPrettyVersio
10d80 6e 28 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 3e 65 6e 66 n()..."</comment>)");.$this->enf
10da0 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 orceCleanDirectory($path);.$this
10dc0 2d 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 ->doUpdate($initial,.$target,.$p
10de0 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 0a 0a 0a ath);.$this->io->write('');.}...
10e00 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 50 61 63 6b 61 67 65 ..public.function.remove(Package
10e20 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 24 74 68 Interface.$package,.$path).{.$th
10e40 69 73 2d 3e 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 is->enforceCleanDirectory($path)
10e60 3b 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 6e 67 ;.$this->io->write("..-.Removing
10e80 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 20 2e .<info>"...$package->getName()..
10ea0 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 67 65 ."</info>.(<comment>"...$package
10ec0 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 65 6e ->getPrettyVersion()..."</commen
10ee0 74 3e 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 t>)");.if.(!$this->filesystem->r
10f00 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 72 6f 77 20 6e emoveDirectory($path)).{.throw.n
10f20 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 20 6e 6f 74 20 ew.\RuntimeException('Could.not.
10f40 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 2c 20 61 62 6f completely.delete.'.$path.',.abo
10f60 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 rting.');.}.}........abstract.pr
10f80 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
10fa0 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);..
10fc0 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
10fe0 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
11000 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,
11020 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 .$path);.......abstract.protecte
11040 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 d.function.enforceCleanDirectory
11060 28 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
11080 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.
110a0 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
110c0 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 0a poser\Package\PackageInterface;.
110e0 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 75 73 use.Composer\Util\Filesystem;.us
11100 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 6d e.Composer\Util\RemoteFilesystem
11120 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 20 69 ;.........class.FileDownloader.i
11140 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.{.
11160 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 72 66 73 3b 0a 70 protected.$io;.protected.$rfs;.p
11180 72 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 70 75 62 6c rotected.$filesystem;.......publ
111a0 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
111c0 61 63 65 20 24 69 6f 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d ace.$io,.RemoteFilesystem.$rfs.=
111e0 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 .null,.Filesystem.$filesystem.=.
11200 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->
11220 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 rfs.=.$rfs.?:.new.RemoteFilesyst
11240 65 6d 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 em($io);.$this->filesystem.=.$fi
11260 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 7d 0a lesystem.?:.new.Filesystem();.}.
11280 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 61 74 ....public.function.getInstallat
112a0 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 69 73 74 27 3b 0a 7d 0a 0a ionSource().{.return.'dist';.}..
112c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b ...public.function.download(Pack
112e0 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).{.
11300 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 69 $url.=.$package->getDistUrl();.i
11320 66 20 28 21 24 75 72 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 f.(!$url).{.throw.new.\InvalidAr
11340 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 gumentException('The.given.packa
11360 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 75 72 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b ge.is.missing.url.information');
11380 0a 7d 0a 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 69 72 .}..$this->filesystem->ensureDir
113a0 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 70 61 74 68 29 3b 0a 0a 24 66 69 6c 65 4e 61 6d 65 20 ectoryExists($path);..$fileName.
113c0 3d 20 24 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 =.$this->getFileName($package,.$
113e0 70 61 74 68 29 3b 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 6e path);..$this->io->write("..-.In
11400 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 74 stalling.<info>"...$package->get
11420 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 20 Name()..."</info>.(<comment>"...
11440 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 22 $package->getPrettyVersion()..."
11460 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 70 72 6f 63 65 73 73 55 72 6c 20 3d 20 24 74 </comment>)");..$processUrl.=.$t
11480 68 69 73 2d 3e 70 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 3b 0a 0a 74 72 79 20 7b 0a 24 74 his->processUrl($url);..try.{.$t
114a0 68 69 73 2d 3e 72 66 73 2d 3e 63 6f 70 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 his->rfs->copy($package->getSour
114c0 63 65 55 72 6c 28 29 2c 20 24 70 72 6f 63 65 73 73 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 29 ceUrl(),.$processUrl,.$fileName)
114e0 3b 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 6d 65 29 29 20 ;..if.(!file_exists($fileName)).
11500 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 78 63 65 {.throw.new.\UnexpectedValueExce
11520 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 61 76 65 64 20 ption($url.'.could.not.be.saved.
11540 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 20 74 68 65 27 to.'.$fileName.',.make.sure.the'
11560 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 6e 64 20 79 6f ..'.directory.is.writable.and.yo
11580 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 79 27 29 3b 0a u.have.internet.connectivity');.
115a0 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 74 44 69 73 74 }..$checksum.=.$package->getDist
115c0 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 75 6d 20 26 26 Sha1Checksum();.if.($checksum.&&
115e0 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 65 29 20 21 3d .hash_file('sha1',.$fileName).!=
11600 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 6e 65 78 70 65 =.$checksum).{.throw.new.\Unexpe
11620 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 63 6b 73 75 6d ctedValueException('The.checksum
11640 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 61 69 6c 65 64 .verification.of.the.file.failed
11660 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 27 29 3b 0a 7d .(downloaded.from.'.$url.')');.}
11680 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 20 24 74 68 .}.catch.(\Exception.$e).{...$th
116a0 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 74 6f 72 79 28 is->filesystem->removeDirectory(
116c0 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 75 62 6c 69 63 $path);.throw.$e;.}.}.....public
116e0 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
11700 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
11720 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 65 28 24 69 6e rget,.$path).{.$this->remove($in
11740 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 6f 61 64 28 24 itial,.$path);.$this->download($
11760 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 63 20 66 75 6e target,.$path);.}.....public.fun
11780 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 63 65 20 24 70 ction.remove(PackageInterface.$p
117a0 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 3e 77 72 69 74 ackage,.$path).{.$this->io->writ
117c0 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 70 61 63 6b 61 e("..-.Removing.<info>"...$packa
117e0 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 6f 6d 6d 65 ge->getName()..."</info>.(<comme
11800 6e 74 3e 22 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 nt>"...$package->getPrettyVersio
11820 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 69 66 20 28 21 24 74 68 69 73 n()..."</comment>)");.if.(!$this
11840 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 74 6f 72 79 28 24 70 ->filesystem->removeDirectory($p
11860 61 74 68 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 ath)).{.throw.new.\RuntimeExcept
11880 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 ion('Could.not.completely.delete
118a0 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a .'.$path.',.aborting.');.}.}....
118c0 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 46 69 6c 65 4e .....protected.function.getFileN
118e0 61 6d 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 20 24 ame(PackageInterface.$package,.$
11900 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 path).{.return.$path.'/'.pathinf
11920 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 48 49 4e o($package->getDistUrl(),.PATHIN
11940 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 FO_BASENAME);.}..........protect
11960 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 ed.function.processUrl($url).{.i
11980 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 6c 27 29 20 f.(!extension_loaded('openssl').
119a0 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 3a 27 29 29 &&.0.===.strpos($url,.'https:'))
119c0 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('
119e0 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 65 78 74 65 You.must.enable.the.openssl.exte
11a00 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 68 74 74 70 nsion.to.download.files.via.http
11a20 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 68 70 0a 0a s');.}..return.$url;.}.}.<?php..
11a40 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 6f 77 ..........namespace.Composer\Dow
11a60 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 67 65 5c 50 nloader;..use.Composer\Package\P
11a80 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 55 74 ackageInterface;.use.Composer\Ut
11aa0 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 73 20 53 76 il\Svn.as.SvnUtil;......class.Sv
11ac0 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 6f 61 64 65 nDownloader.extends.VcsDownloade
11ae0 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 6e 6c 6f 61 r.{....public.function.doDownloa
11b00 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 24 70 61 d(PackageInterface.$package,.$pa
11b20 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 75 72 63 65 th).{.$url.=.$package->getSource
11b40 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 6f 75 72 63 Url();.$ref.=.$package->getSourc
11b60 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 69 74 65 28 eReference();..$this->io->write(
11b80 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 2d 3e 67 65 "....Checking.out.".$package->ge
11ba0 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 65 78 65 63 tSourceReference());.$this->exec
11bc0 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 22 25 73 2f ute($url,."svn.co",.sprintf("%s/
11be0 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 68 29 3b 0a %s",.$url,.$ref),.null,.$path);.
11c00 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 74 65 28 50 }.....public.function.doUpdate(P
11c20 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
11c40 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 0a 24 75 72 eInterface.$target,.$path).{.$ur
11c60 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 0a 24 72 65 l.=.$target->getSourceUrl();.$re
11c80 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 6e 63 65 28 f.=.$target->getSourceReference(
11ca0 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 65 63 6b 69 );..$this->io->write("....Checki
11cc0 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 63 75 74 65 ng.out."...$ref);.$this->execute
11ce0 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 28 22 25 73 ($url,."svn.switch",.sprintf("%s
11d00 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 0a 0a 0a 0a /%s",.$url,.$ref),.$path);.}....
11d20 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e .protected.function.enforceClean
11d40 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 Directory($path).{.$this->proces
11d60 73 2d 3e 65 78 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 s->execute('svn.status.--ignore-
11d80 65 78 74 65 72 6e 61 6c 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 externals',.$output,.$path);.if.
11da0 28 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 (preg_match('{^.*[^X.].+}m',.$ou
11dc0 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 70 tput)).{.throw.new.\RuntimeExcep
11de0 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 68 tion('Source.directory.'...$path
11e00 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 3a 27 2e 22 ...'.has.uncommitted.changes:'."
11e20 5c 6e 5c 6e 22 2e 72 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a \n\n".rtrim($output));.}.}......
11e40 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 78 65 63 75 ........protected.function.execu
11e60 74 65 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 te($baseUrl,.$command,.$url,.$cw
11e80 64 20 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 d.=.null,.$path.=.null).{.$util.
11ea0 3d 20 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 =.new.SvnUtil($baseUrl,.$this->i
11ec0 6f 29 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 o);.try.{.return.$util->execute(
11ee0 24 63 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 $command,.$url,.$cwd,.$path,.$th
11f00 69 73 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 is->io->isVerbose());.}.catch.(\
11f20 52 75 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 RuntimeException.$e).{.throw.new
11f40 20 5c 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 .\RuntimeException(.'Package.cou
11f60 6c 64 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 ld.not.be.downloaded,.'.$e->getM
11f80 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 0a 0a 0a 0a 0a 0a essage().);.}.}.}.<?php.........
11fa0 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 64 65 72 ...namespace.Composer\Downloader
11fc0 3b 0a 0a 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 ;..use.Composer\Util\Filesystem;
11fe0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 ...........class.PearPackageExtr
12000 61 63 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 72 6f 6c 65 73 57 69 74 actor.{.private.static.$rolesWit
12020 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 20 3d 20 61 72 72 61 79 28 27 70 houtPackageNamePrefix.=.array('p
12040 68 70 27 2c 20 27 73 63 72 69 70 74 27 2c 20 27 77 77 77 27 29 3b 0a 0a 70 72 69 76 61 74 65 20 hp',.'script',.'www');..private.
12060 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 70 75 62 $filesystem;.private.$file;..pub
12080 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 69 6c 65 29 0a lic.function.__construct($file).
120a0 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e {.if.(!is_file($file)).{.throw.n
120c0 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 50 45 ew.\UnexpectedValueException('PE
120e0 41 52 20 70 61 63 6b 61 67 65 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 61 74 20 AR.package.file.is.not.found.at.
12100 27 2e 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d '.$file);.}..$this->filesystem.=
12120 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d .new.Filesystem();.$this->file.=
12140 20 24 66 69 6c 65 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 .$file;.}............public.func
12160 74 69 6f 6e 20 65 78 74 72 61 63 74 54 6f 28 24 74 61 72 67 65 74 2c 20 61 72 72 61 79 20 24 72 tion.extractTo($target,.array.$r
12180 6f 6c 65 73 20 3d 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 69 oles.=.array('php'.=>.'/',.'scri
121a0 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 29 2c 20 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 29 pt'.=>.'/bin'),.$vars.=.array())
121c0 0a 7b 0a 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 2e 27 2f 74 .{.$extractionPath.=.$target.'/t
121e0 61 72 62 61 6c 6c 27 3b 0a 0a 74 72 79 20 7b 0a 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c arball';..try.{.$archive.=.new.\
12200 50 68 61 72 44 61 74 61 28 24 74 68 69 73 2d 3e 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d PharData($this->file);.$archive-
12220 3e 65 78 74 72 61 63 74 54 6f 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 6e 75 6c 6c >extractTo($extractionPath,.null
12240 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f ,.true);..if.(!is_file($this->co
12260 6d 62 69 6e 65 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 27 2f 70 61 63 6b 61 67 65 mbine($extractionPath,.'/package
12280 2e 78 6d 6c 27 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 78 63 .xml'))).{.throw.new.\RuntimeExc
122a0 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 49 74 eption('Invalid.PEAR.package..It
122c0 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 66 69 6c 65 2e 27 .must.contain.package.xml.file.'
122e0 29 3b 0a 7d 0a 0a 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e );.}..$fileCopyActions.=.$this->
12300 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 buildCopyActions($extractionPath
12320 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c ,.$roles,.$vars);.$this->copyFil
12340 65 73 28 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e 73 2c 20 24 65 78 74 72 61 63 74 69 6f 6e es($fileCopyActions,.$extraction
12360 50 61 74 68 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 3b 0a 24 Path,.$target,.$roles,.$vars);.$
12380 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 74 6f 72 this->filesystem->removeDirector
123a0 79 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 y($extractionPath);.}.catch.(\Ex
123c0 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ception.$exception).{.throw.new.
123e0 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
12400 66 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 74 72 61 63 74 20 50 45 41 52 20 70 61 63 6b 61 67 f('Failed.to.extract.PEAR.packag
12420 65 20 25 73 20 74 6f 20 25 73 2e 20 52 65 61 73 6f 6e 3a 20 25 73 27 2c 20 24 74 68 69 73 2d 3e e.%s.to.%s..Reason:.%s',.$this->
12440 66 69 6c 65 2c 20 24 74 61 72 67 65 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 file,.$target,.$exception->getMe
12460 73 73 61 67 65 28 29 29 2c 20 30 2c 20 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a ssage()),.0,.$exception);.}.}...
12480 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 63 6f 70 79 46 69 6c ........private.function.copyFil
124a0 65 73 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f es($files,.$source,.$target,.$ro
124c0 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 les,.$vars).{.foreach.($files.as
124e0 20 24 66 69 6c 65 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 .$file).{.$from.=.$this->combine
12500 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 5b 27 66 72 6f 6d 27 5d 29 3b 0a 24 74 6f 20 3d 20 ($source,.$file['from']);.$to.=.
12520 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 5b 24 $this->combine($target,.$roles[$
12540 66 69 6c 65 5b 27 72 6f 6c 65 27 5d 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d file['role']]);.$to.=.$this->com
12560 62 69 6e 65 28 24 74 6f 2c 20 24 66 69 6c 65 5b 27 74 6f 27 5d 29 3b 0a 24 74 61 73 6b 73 20 3d bine($to,.$file['to']);.$tasks.=
12580 20 24 66 69 6c 65 5b 27 74 61 73 6b 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 .$file['tasks'];.$this->copyFile
125a0 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 61 72 73 29 3b 0a 7d 0a 7d ($from,.$to,.$tasks,.$vars);.}.}
125c0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 28 24 66 72 6f ..private.function.copyFile($fro
125e0 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 61 72 73 29 0a 7b 0a 69 66 20 28 21 69 73 m,.$to,.$tasks,.$vars).{.if.(!is
12600 5f 66 69 6c 65 28 24 66 72 6f 6d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 _file($from)).{.throw.new.\Runti
12620 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 meException('Invalid.PEAR.packag
12640 65 2e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 64 65 66 69 6e 65 73 20 66 69 6c 65 20 74 68 61 74 e..package.xml.defines.file.that
12660 20 69 73 20 6e 6f 74 20 6c 6f 63 61 74 65 64 20 69 6e 73 69 64 65 20 74 61 72 62 61 6c 6c 2e 27 .is.not.located.inside.tarball.'
12680 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 65 6e 73 75 72 65 44 );.}..$this->filesystem->ensureD
126a0 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 3b 0a 0a 69 irectoryExists(dirname($to));..i
126c0 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 74 61 73 6b 73 29 29 20 7b 0a 24 63 6f 70 69 65 64 f.(0.==.count($tasks)).{.$copied
126e0 20 3d 20 63 6f 70 79 28 24 66 72 6f 6d 2c 20 24 74 6f 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 .=.copy($from,.$to);.}.else.{.$c
12700 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 72 6f 6d ontent.=.file_get_contents($from
12720 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 );.$replacements.=.array();.fore
12740 61 63 68 20 28 24 74 61 73 6b 73 20 61 73 20 24 74 61 73 6b 29 20 7b 0a 24 70 61 74 74 65 72 6e ach.($tasks.as.$task).{.$pattern
12760 20 3d 20 24 74 61 73 6b 5b 27 66 72 6f 6d 27 5d 3b 0a 24 76 61 72 4e 61 6d 65 20 3d 20 24 74 61 .=.$task['from'];.$varName.=.$ta
12780 73 6b 5b 27 74 6f 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 72 73 5b 24 76 61 72 4e 61 sk['to'];.if.(isset($vars[$varNa
127a0 6d 65 5d 29 29 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 5d 20 me])).{.$replacements[$pattern].
127c0 3d 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 3b 0a 7d 0a 7d 0a 24 63 6f 6e 74 65 6e 74 20 =.$vars[$varName];.}.}.$content.
127e0 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 6e 74 73 29 =.strtr($content,.$replacements)
12800 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 74 73 28 24 ;..$copied.=.file_put_contents($
12820 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 3d 3d 3d 20 to,.$content);.}..if.(false.===.
12840 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 65 45 78 63 $copied).{.throw.new.\RuntimeExc
12860 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 70 79 20 25 eption(sprintf('Failed.to.copy.%
12880 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 0a 0a 0a 0a s.to.%s',.$from,.$to));.}.}.....
128a0 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 43 6f 70 79 ......private.function.buildCopy
128c0 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 65 73 2c 20 24 Actions($source,.array.$roles,.$
128e0 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 6d 6c 5f 6c 6f vars).{..$package.=.simplexml_lo
12900 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 72 63 65 2c 20 ad_file($this->combine($source,.
12920 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 3d 3d 20 24 70 'package.xml'));.if(false.===.$p
12940 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 78 63 65 70 74 ackage).throw.new.\RuntimeExcept
12960 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 65 20 69 73 20 ion('Package.definition.file.is.
12980 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 6d 61 56 65 72 not.valid.');..$packageSchemaVer
129a0 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 0a 69 66 20 28 sion.=.$package['version'];.if.(
129c0 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 69 6f 6e 29 20 '1.0'.==.$packageSchemaVersion).
129e0 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 65 61 73 65 2d {.$children.=.$package->release-
12a00 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 6b 61 67 65 4e >filelist->children();.$packageN
12a20 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 6d 65 3b 0a 24 ame.=.(string).$package->name;.$
12a40 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 70 61 63 6b 61 packageVersion.=.(string).$packa
12a60 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 63 65 44 69 72 ge->release->version;.$sourceDir
12a80 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 63 6b 61 67 65 .=.$packageName...'-'...$package
12aa0 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 75 69 6c 64 53 Version;.$result.=.$this->buildS
12ac0 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 65 73 2c 20 24 ourceList10($children,.$roles,.$
12ae0 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 67 65 4e 61 6d sourceDir,.'',.null,.$packageNam
12b00 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 6b 61 67 65 53 e);.}.elseif.('2.0'.==.$packageS
12b20 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 61 63 6b 61 67 chemaVersion.||.'2.1'.==.$packag
12b40 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 20 3d 20 24 70 eSchemaVersion).{.$children.=.$p
12b60 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 29 3b 0a 24 70 ackage->contents->children();.$p
12b80 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 61 67 65 2d 3e ackageName.=.(string).$package->
12ba0 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 72 69 6e 67 29 name;.$packageVersion.=.(string)
12bc0 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 3b 0a 24 73 6f .$package->version->release;.$so
12be0 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 27 20 2e 20 24 urceDir.=.$packageName...'-'...$
12c00 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 74 68 69 73 2d packageVersion;.$result.=.$this-
12c20 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 6e 2c 20 24 72 >buildSourceList20($children,.$r
12c40 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 20 24 70 61 63 oles,.$sourceDir,.'',.null,.$pac
12c60 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 70 61 63 6b 61 kageName);..$namespaces.=.$packa
12c80 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 67 65 2d 3e 72 ge->getNamespaces();.$package->r
12ca0 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 24 6e 61 6d egisterXPathNamespace('ns',.$nam
12cc0 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 20 3d 20 24 70 espaces['']);.$releaseNodes.=.$p
12ce0 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 65 27 29 3b 0a ackage->xpath('ns:phprelease');.
12d00 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 2c 20 24 72 65 $this->applyRelease($result,.$re
12d20 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 7b 0a 74 68 72 leaseNodes,.$vars);.}.else.{.thr
12d40 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 73 75 70 70 ow.new.\RuntimeException('Unsupp
12d60 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 6b 61 67 65 20 orted.schema.version.of.package.
12d80 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 72 6e 20 24 72 definition.file.');.}..return.$r
12da0 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 61 70 70 6c 79 esult;.}..private.function.apply
12dc0 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 4e 6f 64 65 73 Release(&$actions,.$releaseNodes
12de0 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 65 4e 6f 64 65 ,.$vars).{.foreach.($releaseNode
12e00 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 72 65 64 4f 73 s.as.$releaseNode).{.$requiredOs
12e20 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 64 69 74 69 6f .=.$releaseNode->installconditio
12e40 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 63 6f 6e 64 69 ns.&&.$releaseNode->installcondi
12e60 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 69 6e 73 74 61 tions->os.&&.$releaseNode->insta
12e80 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 74 72 69 6e 67 llconditions->os->name.?.(string
12ea0 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 69 74 69 6f 6e ).$releaseNode->installcondition
12ec0 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 69 72 65 64 4f s->os->name.:.'';.if.($requiredO
12ee0 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 65 64 4f 73 29 s.&&.$vars['os'].!=.$requiredOs)
12f00 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 65 4e 6f 64 65 .{.continue;.}..if.($releaseNode
12f20 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 65 61 73 65 4e ->filelist).{.foreach.($releaseN
12f40 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 73 20 24 61 63 ode->filelist->children().as.$ac
12f60 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 63 74 69 6f 6e tion).{.if.('install'.==.$action
12f80 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 69 6e 67 29 20 ->getName()).{.$name.=.(string).
12fa0 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 69 6e 67 29 20 $action['name'];.$as.=.(string).
12fc0 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 63 74 69 6f 6e $action['as'];.if.(isset($action
12fe0 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 5d 5b 27 74 6f s[$name])).{.$actions[$name]['to
13000 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 72 65 27 20 3d '].=.$as;.}.}.elseif.('ignore'.=
13020 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 6d 65 20 3d 20 =.$action->getName()).{.$name.=.
13040 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 6e 73 65 74 28 (string).$action['name'];.unset(
13060 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 0a 20 7d 0a 7d $actions[$name]);.}.else.{...}.}
13080 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 74 69 6f 6e 20 .}.break;.}.}..private.function.
130a0 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 2c 20 24 74 61 buildSourceList10($children,.$ta
130c0 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 61 72 67 65 74 rgetRoles,.$source.=.'',.$target
130e0 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 67 65 4e 61 6d .=.'',.$role.=.null,.$packageNam
13100 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 66 6f 72 65 61 e).{.$result.=.array();....forea
13120 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 0a 69 66 20 28 ch.($children.as.$child).{..if.(
13140 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 20 7b 0a 24 64 $child->getName().==.'dir').{.$d
13160 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 73 6f 75 72 63 irSource.=.$this->combine($sourc
13180 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 3b 0a 24 64 69 e,.(string).$child['name']);.$di
131a0 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 6c 6c 64 69 72 rTarget.=.$child['baseinstalldir
131c0 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 24 63 68 69 6c '].?.:.$target;.$dirRole.=.$chil
131e0 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 6c 65 73 20 3d d['role'].?.:.$role;.$dirFiles.=
13200 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 63 68 69 6c 64 .$this->buildSourceList10($child
13220 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 20 24 64 69 72 ->children(),.$targetRoles,.$dir
13240 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 65 2c 20 24 70 Source,.$dirTarget,.$dirRole,.$p
13260 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 79 5f 6d 65 72 ackageName);.$result.=.array_mer
13280 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 6c 73 65 69 66 ge($result,.$dirFiles);.}.elseif
132a0 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 65 27 29 20 7b .($child->getName().==.'file').{
132c0 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 64 5b 27 72 6f .$fileRole.=.(string).$child['ro
132e0 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 74 61 72 67 65 le'].?.:.$role;.if.(isset($targe
13300 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 4e 61 6d 65 20 tRoles[$fileRole])).{.$fileName.
13320 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 3f 20 3a 20 24 =.(string).($child['name'].?.:.$
13340 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 24 74 68 69 73 child[0]);...$fileSource.=.$this
13360 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 65 29 3b 0a 24 ->combine($source,.$fileName);.$
13380 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 28 28 73 74 72 fileTarget.=.$this->combine((str
133a0 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 27 5d 20 3f 20 ing).$child['baseinstalldir'].?.
133c0 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 21 69 6e 5f 61 :.$target,.$fileName);.if.(!in_a
133e0 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
13400 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
13420 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
13440 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
13460 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
13480 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,.
134a0 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'.=>.
134c0 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 73 75 6c 74 3b array());.}.}.}..return.$result;
134e0 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 6f 75 72 63 65 .}..private.function.buildSource
13500 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 6c 65 73 2c 20 List20($children,.$targetRoles,.
13520 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 20 24 72 6f 6c $source.=.'',.$target.=.'',.$rol
13540 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 72 65 73 75 6c e.=.null,.$packageName).{.$resul
13560 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 68 69 6c 64 72 t.=.array();....foreach.($childr
13580 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 3d 3d 20 24 63 en.as.$child).{..if.('dir'.==.$c
135a0 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 63 65 20 3d 20 hild->getName()).{.$dirSource.=.
135c0 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 69 6c 64 5b 27 $this->combine($source,.$child['
135e0 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 64 5b 27 62 61 name']);.$dirTarget.=.$child['ba
13600 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 0a 24 64 69 72 seinstalldir'].?.:.$target;.$dir
13620 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 72 6f 6c 65 3b Role.=.$child['role'].?.:.$role;
13640 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 75 72 63 65 4c .$dirFiles.=.$this->buildSourceL
13660 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 74 61 72 67 65 ist20($child->children(),.$targe
13680 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 67 65 74 2c 20 tRoles,.$dirSource,.$dirTarget,.
136a0 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 65 73 75 6c 74 $dirRole,.$packageName);.$result
136c0 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 72 46 69 6c 65 .=.array_merge($result,.$dirFile
136e0 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 69 6c 64 2d 3e s);.}.elseif.('file'.==.$child->
13700 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 74 72 69 6e 67 getName()).{.$fileRole.=.(string
13720 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 0a 69 66 20 28 ).$child['role'].?.:.$role;.if.(
13740 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 65 5d 29 29 20 isset($targetRoles[$fileRole])).
13760 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 69 6e 65 28 24 {.$fileSource.=.$this->combine($
13780 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'])
137a0 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 28 28 ;.$fileTarget.=.$this->combine((
137c0 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 6c 64 69 72 27 string).($child['baseinstalldir'
137e0 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 68 69 6c 64 5b ].?.:.$target),.(string).$child[
13800 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 79 28 29 3b 0a 'name']);.$fileTasks.=.array();.
13820 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 68 74 74 70 3a foreach.($child->children('http:
13840 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 30 27 29 20 61 //pear.php.net/dtd/tasks-1.0').a
13860 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 27 20 3d 3d 20 s.$taskNode).{.if.('replace'.==.
13880 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 6c 65 54 61 73 $taskNode->getName()).{.$fileTas
138a0 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 69 6e 67 29 20 ks[].=.array('from'.=>.(string).
138c0 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 6f 6d 2c 20 27 $taskNode->attributes()->from,.'
138e0 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 61 74 74 72 69 to'.=>.(string).$taskNode->attri
13900 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 72 72 61 79 28 butes()->to);.}.}.if.(!in_array(
13920 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 6f 75 74 50 61 $fileRole,.self::$rolesWithoutPa
13940 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 72 67 65 74 20 ckageNamePrefix)).{.$fileTarget.
13960 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 65 54 61 72 67 =.$packageName...'/'...$fileTarg
13980 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 6c 64 5b 27 6e et;.}.$result[(string).$child['n
139a0 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 69 6c 65 53 6f ame']].=.array('from'.=>.$fileSo
139c0 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 27 72 6f 6c 65 urce,.'to'.=>.$fileTarget,.'role
139e0 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 24 66 69 6c 65 '.=>.$fileRole,.'tasks'.=>.$file
13a00 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 6c 74 3b 0a 7d Tasks);.}.}.}..return.$result;.}
13a20 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 24 6c 65 66 74 ..private.function.combine($left
13a40 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 65 66 74 2c 20 ,.$right).{.return.rtrim($left,.
13a60 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 27 2f 27 29 3b '/')...'/'...ltrim($right,.'/');
13a80 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.
13aa0 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
13ac0 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
13ae0 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 61 64 65 72 49 .Composer\Downloader\DownloaderI
13b00 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 5c 46 69 6c 65 nterface;.use.Composer\Util\File
13b20 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 64 4d 61 6e 61 system;.......class.DownloadMana
13b40 67 65 72 0a 7b 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 66 61 ger.{.private.$preferSource.=.fa
13b60 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 61 74 lse;.private.$filesystem;.privat
13b80 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 0a 0a e.$downloaders.=.array();.......
13ba0 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 70 72 .public.function.__construct($pr
13bc0 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 20 24 eferSource.=.false,.Filesystem.$
13be0 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 65 66 filesystem.=.null).{.$this->pref
13c00 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 73 2d erSource.=.$preferSource;.$this-
13c20 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 65 77 >filesystem.=.$filesystem.?:.new
13c40 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 66 75 .Filesystem();.}.......public.fu
13c60 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 53 6f nction.setPreferSource($preferSo
13c80 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 24 70 urce).{.$this->preferSource.=.$p
13ca0 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 0a 0a referSource;..return.$this;.}...
13cc0 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 6f 77 6e 6c 6f 61 64 .....public.function.setDownload
13ce0 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 66 61 63 65 20 24 64 er($type,.DownloaderInterface.$d
13d00 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 6f 6c 6f 77 65 72 28 ownloader).{.$type.=.strtolower(
13d20 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 73 5b 24 74 79 70 65 $type);.$this->downloaders[$type
13d40 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 24 74 68 69 73 3b 0a ].=.$downloader;..return.$this;.
13d60 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 44 }...........public.function.getD
13d80 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 3d 20 73 74 72 74 6f ownloader($type).{.$type.=.strto
13da0 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 24 74 68 69 73 2d 3e lower($type);.if.(!isset($this->
13dc0 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 72 6f 77 20 6e 65 77 downloaders[$type])).{.throw.new
13de0 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 55 6e 6b 6e .\InvalidArgumentException('Unkn
13e00 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 79 70 65 29 3b 0a 7d own.downloader.type:.'.$type);.}
13e20 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 72 73 5b 24 74 79 70 ..return.$this->downloaders[$typ
13e40 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 66 75 6e 63 74 69 6f e];.}.............public.functio
13e60 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 65 64 50 61 63 6b 61 n.getDownloaderForInstalledPacka
13e80 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 0a ge(PackageInterface.$package).{.
13ea0 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 63 6b 61 67 65 2d 3e $installationSource.=.$package->
13ec0 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 69 66 20 28 27 64 getInstallationSource();..if.('d
13ee0 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 0a ist'.===.$installationSource).{.
13f00 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 6c 6f 61 64 $downloader.=.$this->getDownload
13f20 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 29 29 3b 0a 7d 20 65 er($package->getDistType());.}.e
13f40 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 61 6c 6c 61 74 69 6f lseif.('source'.===.$installatio
13f60 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 24 74 68 69 73 2d 3e nSource).{.$downloader.=.$this->
13f80 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 65 74 53 6f 75 72 63 getDownloader($package->getSourc
13fa0 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 6e 65 77 20 5c 49 6e eType());.}.else.{.throw.new.\In
13fc0 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 50 61 63 6b 61 67 65 validArgumentException(.'Package
13fe0 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 65 65 6e 20 69 6e 73 .'.$package.'.seems.not.been.ins
14000 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 20 28 24 69 6e 73 74 talled.properly'.);.}..if.($inst
14020 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 6f 61 64 65 72 2d 3e allationSource.!==.$downloader->
14040 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 7b 0a 74 68 72 6f 77 getInstallationSource()).{.throw
14060 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 27 44 .new.\LogicException(sprintf(.'D
14080 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 70 65 20 64 6f 77 6e ownloader."%s".is.a.%s.type.down
140a0 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 64 20 74 6f 20 64 6f loader.and.can.not.be.used.to.do
140c0 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 77 6e 6c 6f 61 64 65 wnload.%s',.get_class($downloade
140e0 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 6c 6c 61 74 69 6f 6e r),.$downloader->getInstallation
14100 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 75 72 63 65 0a 29 29 Source(),.$installationSource.))
14120 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 7d 0a 0a 0a 0a 0a 0a ;.}..return.$downloader;.}......
14140 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 6c 6f 61 64 28 50 61 .....public.function.download(Pa
14160 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 74 61 72 67 65 74 ckageInterface.$package,.$target
14180 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 29 0a 7b 0a 24 70 72 Dir,.$preferSource.=.null).{.$pr
141a0 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 65 66 65 72 53 6f 75 eferSource.=.null.!==.$preferSou
141c0 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 69 73 2d 3e 70 72 65 rce.?.$preferSource.:.$this->pre
141e0 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 24 70 61 63 6b 61 67 ferSource;.$sourceType.=.$packag
14200 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 54 79 70 65 20 3d 20 e->getSourceType();.$distType.=.
14220 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 0a 69 66 20 28 21 24 $package->getDistType();..if.(!$
14240 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 21 28 24 70 72 65 66 65 72 53 6f 75 package->isDev().&&.!($preferSou
14260 72 63 65 20 26 26 20 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 26 20 24 64 69 73 74 54 79 70 65 rce.&&.$sourceType).&&.$distType
14280 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 53 6f 75 ).{.$package->setInstallationSou
142a0 72 63 65 28 27 64 69 73 74 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 73 6f 75 72 63 65 54 79 rce('dist');.}.elseif.($sourceTy
142c0 70 65 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 53 pe).{.$package->setInstallationS
142e0 6f 75 72 63 65 28 27 73 6f 75 72 63 65 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b ource('source');.}.elseif.($pack
14300 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c age->isDev()).{.throw.new.\Inval
14320 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 44 65 76 20 70 61 63 6b 61 67 65 idArgumentException('Dev.package
14340 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 72 63 65 .'.$package.'.must.have.a.source
14360 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 .specified');.}.else.{.throw.new
14380 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
143a0 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 20 68 61 76 65 20 61 20 73 6f 75 age.'.$package.'.must.have.a.sou
143c0 72 63 65 20 6f 72 20 64 69 73 74 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 rce.or.dist.specified');.}..$thi
143e0 73 2d 3e 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 72 79 45 78 s->filesystem->ensureDirectoryEx
14400 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d ists($targetDir);..$downloader.=
14420 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 74 61 6c 6c 65 .$this->getDownloaderForInstalle
14440 64 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 dPackage($package);.$downloader-
14460 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b >download($package,.$targetDir);
14480 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 75 70 64 .}...........public.function.upd
144a0 61 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 ate(PackageInterface.$initial,.P
144c0 61 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 74 61 72 67 65 74 ackageInterface.$target,.$target
144e0 44 69 72 29 0a 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 Dir).{.$downloader.=.$this->getD
14500 6f 77 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 69 6e ownloaderForInstalledPackage($in
14520 69 74 69 61 6c 29 3b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 69 itial);.$installationSource.=.$i
14540 6e 69 74 69 61 6c 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 nitial->getInstallationSource();
14560 0a 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 ..if.('dist'.===.$installationSo
14580 75 72 63 65 29 20 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d urce).{.$initialType.=.$initial-
145a0 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 >getDistType();.$targetType.=.$t
145c0 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 arget->getDistType();.}.else.{.$
145e0 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 initialType.=.$initial->getSourc
14600 65 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e eType();.$targetType.=.$target->
14620 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 61 72 67 65 getSourceType();.}....if.($targe
14640 74 2d 3e 69 73 44 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c t->isDev().&&.'dist'.===.$instal
14660 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 2d 3e 72 65 6d lationSource).{.$downloader->rem
14680 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 74 68 69 73 ove($initial,.$targetDir);.$this
146a0 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 69 72 29 3b ->download($target,.$targetDir);
146c0 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d ..return;.}..if.($initialType.==
146e0 3d 20 24 74 61 72 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 49 6e 73 =.$targetType).{.$target->setIns
14700 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 tallationSource($installationSou
14720 72 63 65 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 rce);.$downloader->update($initi
14740 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 6c 73 65 al,.$target,.$targetDir);.}.else
14760 20 7b 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 .{.$downloader->remove($initial,
14780 20 24 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 .$targetDir);.$this->download($t
147a0 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 arget,.$targetDir,.'source'.===.
147c0 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a $installationSource);.}.}.......
147e0 0a 70 75 62 6c 69 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 .public.function.remove(PackageI
14800 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b nterface.$package,.$targetDir).{
14820 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 6c 6f 61 .$downloader.=.$this->getDownloa
14840 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 67 65 29 derForInstalledPackage($package)
14860 3b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 ;.$downloader->remove($package,.
14880 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $targetDir);.}.}.<?php..........
148a0 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;
148c0 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
148e0 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 6f 77 6e 6c 6f terface;........interface.Downlo
14900 61 64 65 72 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 aderInterface.{......public.func
14920 74 69 6f 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 3b 0a 0a 0a tion.getInstallationSource();...
14940 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 6c 6f 61 64 28 50 61 .....public.function.download(Pa
14960 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 29 3b ckageInterface.$package,.$path);
14980 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 75 70 64 61 74 65 28 .........public.function.update(
149a0 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 6b 61 PackageInterface.$initial,.Packa
149c0 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 3b 0a 0a 0a 0a geInterface.$target,.$path);....
149e0 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 50 61 63 6b 61 ....public.function.remove(Packa
14a00 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 7d 0a geInterface.$package,.$path);.}.
14a20 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
14a40 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 70 ser\Downloader;.....class.Transp
14a60 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a ortException.extends.\Exception.
14a80 7b 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
14aa0 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 73 73 20 omposer\Downloader;.......class.
14ac0 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 65 44 6f PharDownloader.extends.ArchiveDo
14ae0 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 69 6f 6e wnloader.{....protected.function
14b00 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 72 63 68 .extract($file,.$path).{...$arch
14b20 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 69 76 65 ive.=.new.\Phar($file);.$archive
14b40 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 29 3b 0a ->extractTo($path,.null,.true);.
14b60 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 65 73 70 .....}.}.<?php............namesp
14b80 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 0a 0a 63 ace.Composer\Downloader;.......c
14ba0 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 63 68 69 lass.TarDownloader.extends.Archi
14bc0 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 75 6e 63 veDownloader.{....protected.func
14be0 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 0a 20 24 tion.extract($file,.$path).{...$
14c00 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 29 3b 0a archive.=.new.\PharData($file);.
14c20 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 6c 6c 2c $archive->extractTo($path,.null,
14c40 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 6e 61 6d .true);.}.}.<?php............nam
14c60 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 75 73 65 espace.Composer\Downloader;..use
14c80 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 66 61 .Composer\Package\PackageInterfa
14ca0 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 74 65 6e ce;.....class.HgDownloader.exten
14cc0 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 66 75 6e ds.VcsDownloader.{....public.fun
14ce0 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 66 61 63 ction.doDownload(PackageInterfac
14d00 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 73 63 61 e.$package,.$path).{.$url.=.esca
14d20 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 65 55 72 peshellarg($package->getSourceUr
14d40 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 70 61 63 l());.$ref.=.escapeshellarg($pac
14d60 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 24 70 61 kage->getSourceReference());.$pa
14d80 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 69 th.=.escapeshellarg($path);.$thi
14da0 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 70 61 63 s->io->write("....Cloning.".$pac
14dc0 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 24 63 6f kage->getSourceReference());.$co
14de0 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 25 73 20 mmand.=.sprintf('hg.clone.%s.%s.
14e00 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 2c 20 24 &&.cd.%2$s.&&.hg.up.%s',.$url,.$
14e20 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 3e 70 72 path,.$ref);.if.(0.!==.$this->pr
14e40 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 6f 72 65 ocess->execute($command,.$ignore
14e60 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 65 45 78 dOutput)).{.throw.new.\RuntimeEx
14e80 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.'...$
14ea0 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
14ec0 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 0a 70 75 s->getErrorOutput());.}.}.....pu
14ee0 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 65 49 6e blic.function.doUpdate(PackageIn
14f00 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 66 61 terface.$initial,.PackageInterfa
14f20 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 73 63 61 ce.$target,.$path).{.$url.=.esca
14f40 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 55 72 6c peshellarg($target->getSourceUrl
14f60 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 61 72 67 ());.$ref.=.escapeshellarg($targ
14f80 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 61 74 68 et->getSourceReference());.$path
14fa0 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 69 73 2d .=.escapeshellarg($path);.$this-
14fc0 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 2e 24 74 >io->write("....Updating.to.".$t
14fe0 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 63 arget->getSourceReference());.$c
15000 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 20 70 75 ommand.=.sprintf('cd.%s.&&.hg.pu
15020 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 72 6c 2c ll.%s.&&.hg.up.%s',.$path,.$url,
15040 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 65 73 73 .$ref);.if.(0.!==.$this->process
15060 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 75 74 70 ->execute($command,.$ignoredOutp
15080 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 70 74 69 ut)).{.throw.new.\RuntimeExcepti
150a0 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 6d 6d 61 on('Failed.to.execute.'...$comma
150c0 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 3e 67 65 nd..."\n\n"...$this->process->ge
150e0 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 72 6f 74 65 63 74 tErrorOutput());.}.}.....protect
15100 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 ed.function.enforceCleanDirector
15120 79 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 65 63 75 y($path).{.$this->process->execu
15140 74 65 28 73 70 72 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 te(sprintf('cd.%s.&&.hg.st',.esc
15160 61 70 65 73 68 65 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 69 apeshellarg($path)),.$output);.i
15180 66 20 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 f.(trim($output)).{.throw.new.\R
151a0 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 untimeException('Source.director
151c0 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 y.'...$path...'.has.uncommitted.
151e0 63 68 61 6e 67 65 73 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 changes');.}.}.}.<?php..........
15200 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;
15220 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
15240 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 61 73 73 20 terface;.........abstract.class.
15260 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 6c 65 44 6f ArchiveDownloader.extends.FileDo
15280 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 6e 20 64 6f wnloader.{....public.function.do
152a0 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
152c0 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 24 70 61 63 ,.$path).{.parent::download($pac
152e0 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 74 68 69 73 kage,.$path);..$fileName.=.$this
15300 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 68 29 3b 0a ->getFileName($package,.$path);.
15320 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 7b 0a 24 74 if.($this->io->isVerbose()).{.$t
15340 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 67 20 61 72 his->io->write('....Unpacking.ar
15360 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 61 63 74 28 chive');.}.try.{.$this->extract(
15380 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 73 2d 3e 69 $fileName,.$path);..if.($this->i
153a0 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 72 69 o->isVerbose()).{.$this->io->wri
153c0 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 69 6e 6b 28 te('....Cleaning.up');.}.unlink(
153e0 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 20 67 6c 6f $fileName);....$contentDir.=.glo
15400 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 6f 75 6e 74 b($path...'/*');.if.(1.===.count
15420 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 20 3d 20 24 ($contentDir)).{.$contentDir.=.$
15440 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 3b 0a 0a 0a 20 0a 20 24 74 65 6d 70 6f 72 61 72 79 4e 61 contentDir[0];......$temporaryNa
15460 6d 65 20 3d 20 6d 64 35 28 74 69 6d 65 28 29 2e 72 61 6e 64 28 29 29 3b 0a 72 65 6e 61 6d 65 28 me.=.md5(time().rand());.rename(
15480 24 63 6f 6e 74 65 6e 74 44 69 72 2c 20 24 74 65 6d 70 6f 72 61 72 79 4e 61 6d 65 29 3b 0a 24 63 $contentDir,.$temporaryName);.$c
154a0 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 65 6d 70 6f 72 61 72 79 4e 61 6d 65 3b 0a 0a 66 6f 72 ontentDir.=.$temporaryName;..for
154c0 65 61 63 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 each.(array_merge(glob($contentD
154e0 69 72 20 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 ir...'/.*'),.glob($contentDir...
15500 27 2f 2a 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 '/*')).as.$file).{.if.(trim(base
15520 6e 61 6d 65 28 24 66 69 6c 65 29 2c 20 27 2e 27 29 29 20 7b 0a 72 65 6e 61 6d 65 28 24 66 69 6c name($file),.'.')).{.rename($fil
15540 65 2c 20 24 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 e,.$path...'/'...basename($file)
15560 29 3b 0a 7d 0a 7d 0a 72 6d 64 69 72 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 3b 0a 7d 0a 7d 20 63 );.}.}.rmdir($contentDir);.}.}.c
15580 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e atch.(\Exception.$e).{...$this->
155a0 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 74 filesystem->removeDirectory($pat
155c0 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 h);.throw.$e;.}..$this->io->writ
155e0 65 28 27 27 29 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 e('');.}.....protected.function.
15600 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 61 63 65 20 24 70 61 getFileName(PackageInterface.$pa
15620 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 ckage,.$path).{.return.rtrim($pa
15640 74 68 2e 27 2f 27 2e 6d 64 35 28 24 70 61 74 68 2e 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 th.'/'.md5($path.spl_object_hash
15660 28 24 70 61 63 6b 61 67 65 29 29 2e 27 2e 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 63 6b 61 67 ($package)).'.'.pathinfo($packag
15680 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 e->getDistUrl(),.PATHINFO_EXTENS
156a0 49 4f 4e 29 2c 20 27 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ION),.'.');.}.....protected.func
156c0 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 65 78 74 tion.processUrl($url).{.if.(!ext
156e0 65 6e 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 ension_loaded('openssl').&&.(0.=
15700 3d 3d 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 ==.strpos($url,.'https:').||.0.=
15720 3d 3d 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 ==.strpos($url,.'http://github.c
15740 6f 6d 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 om'))).{...if.(preg_match('{^htt
15760 70 73 3f 3a 2f 2f 28 67 69 74 68 75 62 2e 63 6f 6d 2f 5b 5e 2f 5d 2b 2f 5b 5e 2f 5d 2b 2f 28 7a ps?://(github.com/[^/]+/[^/]+/(z
15780 69 70 7c 74 61 72 29 62 61 6c 6c 2f 5b 5e 2f 5d 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d ip|tar)ball/[^/]+)$}i',.$url,.$m
157a0 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
157c0 2e 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 .'.$match[1];.}.else.{.throw.new
157e0 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 6e 61 .\RuntimeException('You.must.ena
15800 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 6f 77 ble.the.openssl.extension.to.dow
15820 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 72 65 nload.files.via.https');.}.}..re
15840 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 turn.$url;.}..........abstract.p
15860 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,
15880 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
158a0 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.
158c0 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
158e0 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.
15900 5a 69 70 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 5a 69 70 44 6f 77 6e 6c 6f 61 ZipArchive;.....class.ZipDownloa
15920 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a der.extends.ArchiveDownloader.{.
15940 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 protected.$process;..public.func
15960 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 6f tion.__construct(IOInterface.$io
15980 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 6e 75 6c ,.ProcessExecutor.$process.=.nul
159a0 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 65 73 73 20 3f l).{.$this->process.=.$process.?
159c0 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 6e 74 3a 3a 5f :.new.ProcessExecutor;.parent::_
159e0 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 _construct($io);.}..protected.fu
15a00 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 69 nction.extract($file,.$path).{.i
15a20 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a 69 70 41 72 63 68 69 76 65 27 29 29 20 f.(!class_exists('ZipArchive')).
15a40 7b 0a 24 65 72 72 6f 72 20 3d 20 27 59 6f 75 20 6e 65 65 64 20 74 68 65 20 7a 69 70 20 65 78 74 {.$error.=.'You.need.the.zip.ext
15a60 65 6e 73 69 6f 6e 20 65 6e 61 62 6c 65 64 20 74 6f 20 75 73 65 20 74 68 65 20 5a 69 70 44 6f 77 ension.enabled.to.use.the.ZipDow
15a80 6e 6c 6f 61 64 65 72 27 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 nloader';....if.(!defined('PHP_W
15aa0 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 63 6f 6d 6d 61 INDOWS_VERSION_BUILD')).{.$comma
15ac0 6e 64 20 3d 20 27 75 6e 7a 69 70 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 66 69 nd.=.'unzip.'.escapeshellarg($fi
15ae0 6c 65 29 2e 27 20 2d 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 le).'.-d.'.escapeshellarg($path)
15b00 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 78 65 63 ;.if.(0.===.$this->process->exec
15b20 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b ute($command,.$ignoredOutput)).{
15b40 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 .return;.}..$error.=."Could.not.
15b60 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 decompress.the.archive,.enable.t
15b80 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 he.PHP.zip.extension.or.install.
15ba0 75 6e 7a 69 70 2e 5c 6e 22 2e 0a 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 unzip.\n"..'Failed.to.execute.'.
15bc0 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
15be0 63 65 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 74 68 72 6f 77 cess->getErrorOutput();.}..throw
15c00 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 72 72 6f 72 29 3b 0a .new.\RuntimeException($error);.
15c20 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5a 69 70 41 72 63 68 69 76 65 28 }..$zipArchive.=.new.ZipArchive(
15c40 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 70 );..if.(true.!==.($retval.=.$zip
15c60 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e Archive->open($file))).{.throw.n
15c80 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 24 74 68 ew.\UnexpectedValueException($th
15ca0 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 69 is->getErrorMessage($retval,.$fi
15cc0 6c 65 29 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 le));.}..$zipArchive->extractTo(
15ce0 24 70 61 74 68 29 3b 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 $path);.$zipArchive->close();.}.
15d00 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 67 65 74 45 72 ........protected.function.getEr
15d20 72 6f 72 4d 65 73 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 rorMessage($retval,.$file).{.swi
15d40 74 63 68 20 28 24 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 tch.($retval).{.case.ZipArchive:
15d60 3a 45 52 5f 45 58 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 :ER_EXISTS:.return.sprintf("File
15d80 20 27 25 73 27 20 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 .'%s'.already.exists.",.$file);.
15da0 63 61 73 65 20 5a 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 case.ZipArchive::ER_INCONS:.retu
15dc0 72 6e 20 73 70 72 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 rn.sprintf("Zip.archive.'%s'.is.
15de0 69 6e 63 6f 6e 73 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 inconsistent.",.$file);.case.Zip
15e00 41 72 63 68 69 76 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 Archive::ER_INVAL:.return.sprint
15e20 66 28 22 49 6e 76 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 f("Invalid.argument.(%s)",.$file
15e40 29 3b 0a 63 61 73 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 );.case.ZipArchive::ER_MEMORY:.r
15e60 65 74 75 72 6e 20 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 eturn.sprintf("Malloc.failure.(%
15e80 73 29 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 45 52 s)",.$file);.case.ZipArchive::ER
15ea0 5f 4e 4f 45 4e 54 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 _NOENT:.return.sprintf("No.such.
15ec0 7a 69 70 20 66 69 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 zip.file:.'%s'",.$file);.case.Zi
15ee0 70 41 72 63 68 69 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 pArchive::ER_NOZIP:.return.sprin
15f00 74 66 28 22 27 25 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 tf("'%s'.is.not.a.zip.archive.",
15f20 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 45 52 5f 4f 50 45 .$file);.case.ZipArchive::ER_OPE
15f40 4e 3a 0a 72 65 74 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 N:.return.sprintf("Can't.open.zi
15f60 70 20 66 69 6c 65 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 p.file:.%s",.$file);.case.ZipArc
15f80 68 69 76 65 3a 3a 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 hive::ER_READ:.return.sprintf("Z
15fa0 69 70 20 72 65 61 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 ip.read.error.(%s)",.$file);.cas
15fc0 65 20 5a 69 70 41 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 e.ZipArchive::ER_SEEK:.return.sp
15fe0 72 69 6e 74 66 28 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 rintf("Zip.seek.error.(%s)",.$fi
16000 6c 65 29 3b 0a 64 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 le);.default:.return.sprintf("'%
16020 73 27 20 69 73 20 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 s'.is.not.a.valid.zip.archive,.g
16040 6f 74 20 65 72 72 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 ot.error.code:.%s",.$file,.$retv
16060 61 6c 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 al);.}.}.}.<?php............name
16080 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.
160a0 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
160c0 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e e;.....class.GitDownloader.exten
160e0 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 66 75 6e ds.VcsDownloader.{....public.fun
16100 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 66 61 63 ction.doDownload(PackageInterfac
16120 65 20 24 70 61 63 6b 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 e.$package,.$path).{.$ref.=.$pac
16140 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 3b 0a 24 63 6f 6d kage->getSourceReference();.$com
16160 6d 61 6e 64 20 3d 20 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 mand.=.'git.clone.%s.%s.&&.cd.%2
16180 24 73 20 26 26 20 67 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 $s.&&.git.remote.add.composer.%1
161a0 24 73 20 26 26 20 67 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 $s.&&.git.fetch.composer';.$this
161c0 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 72 65 66 29 ->io->write("....Cloning.".$ref)
161e0 3b 0a 0a 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 ;....putenv('GIT_ASKPASS=echo');
16200 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 6f 6e 28 24 75 72 .$commandCallable.=.function($ur
16220 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 61 6e 64 29 20 7b l).use.($ref,.$path,.$command).{
16240 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 65 73 63 61 70 65 .return.sprintf($command,.escape
16260 73 68 65 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 shellarg($url),.escapeshellarg($
16280 70 61 74 68 29 2c 20 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 path),.escapeshellarg($ref));.};
162a0 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 6e 64 43 61 6c 6c ..$this->runCommand($commandCall
162c0 61 62 6c 65 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 29 2c 20 able,.$package->getSourceUrl(),.
162e0 24 70 61 74 68 29 3b 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 $path);.$this->setPushUrl($packa
16300 67 65 2c 20 24 70 61 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 ge,.$path);..$this->updateToComm
16320 69 74 28 24 70 61 74 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 it($path,.$ref,.$package->getPre
16340 74 74 79 56 65 72 73 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 ttyVersion(),.$package->getRelea
16360 73 65 44 61 74 65 28 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 seDate());.}.....public.function
16380 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 69 74 .doUpdate(PackageInterface.$init
163a0 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 20 24 ial,.PackageInterface.$target,.$
163c0 70 61 74 68 29 0a 7b 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 path).{.$ref.=.$target->getSourc
163e0 65 52 65 66 65 72 65 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 eReference();.$this->io->write("
16400 20 20 20 20 43 68 65 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 ....Checking.out.".$ref);.$comma
16420 6e 64 20 3d 20 27 63 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 nd.=.'cd.%s.&&.git.remote.set-ur
16440 6c 20 63 6f 6d 70 6f 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 l.composer.%s.&&.git.fetch.compo
16460 73 65 72 20 26 26 20 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 ser.&&.git.fetch.--tags.composer
16480 27 3b 0a 0a 0a 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 ';....$this->process->execute(sp
164a0 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 2d 76 27 2c 20 rintf('cd.%s.&&.git.remote.-v',.
164c0 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 2c 20 24 6f 75 74 70 75 74 29 escapeshellarg($path)),.$output)
164e0 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6d 70 6f 73 65 72 5c 73 2b 68 ;.if.(preg_match('{^composer\s+h
16500 74 74 70 73 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 67 69 74 68 75 62 2e 63 6f 6d 2f 7d 69 6d 27 ttps://(.+):(.+)@github.com/}im'
16520 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d ,.$output,.$match)).{.$this->io-
16540 3e 73 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 >setAuthorization('github.com',.
16560 24 6d 61 74 63 68 5b 31 5d 2c 20 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 $match[1],.$match[2]);.}..$comma
16580 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.
165a0 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
165c0 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
165e0 67 28 24 70 61 74 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 2c 20 g($path),.escapeshellarg($url),.
16600 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
16620 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,.$
16640 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 24 74 68 69 73 2d 3e target->getSourceUrl());.$this->
16660 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 74 61 72 updateToCommit($path,.$ref,.$tar
16680 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 74 61 72 67 65 74 get->getPrettyVersion(),.$target
166a0 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ->getReleaseDate());.}..protecte
166c0 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c d.function.updateToCommit($path,
166e0 20 24 72 65 66 65 72 65 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 .$reference,.$branch,.$date).{.$
16700 74 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 20 26 26 20 67 template.=.'git.checkout.%s.&&.g
16720 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 31 24 73 27 3b 0a 0a 0a 20 24 67 69 74 52 65 it.reset.--hard.%1$s';....$gitRe
16740 66 20 3d 20 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 f.=.$reference;.if.(!preg_match(
16760 27 7b 5e 5b 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 '{^[a-f0-9]{40}$}',.$reference).
16780 26 26 20 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 &&.0.===.$this->process->execute
167a0 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 ('git.branch.-r',.$output,.$path
167c0 29 0a 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 27 ).&&.preg_match('{^\s+composer/'
167e0 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 24 7d 6d 27 2c 20 24 .preg_quote($reference).'$}m',.$
16800 6f 75 74 70 75 74 29 0a 29 20 7b 0a 24 67 69 74 52 65 66 20 3d 20 27 63 6f 6d 70 6f 73 65 72 2f output).).{.$gitRef.=.'composer/
16820 27 2e 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 '.$reference;.}..$command.=.spri
16840 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 24 67 ntf($template,.escapeshellarg($g
16860 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 65 73 itRef));.if.(0.===.$this->proces
16880 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 24 70 s->execute($command,.$output,.$p
168a0 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 20 26 ath)).{.return;.}....if.($date.&
168c0 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 65 73 &.false.!==.strpos($this->proces
168e0 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 65 29 s->getErrorOutput(),.$reference)
16900 29 20 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 28 3f 3a ).{.$branch.=.preg_replace('{(?:
16920 5e 64 65 76 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 ^dev-|(?:\.x)?-dev$)}i',.'',.$br
16940 61 6e 63 68 29 3b 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 anch);.$date.=.$date->format('U'
16960 29 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 );....$command.=.'git.branch.-r'
16980 3b 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 ;.if.(0.!==.$this->process->exec
169a0 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 29 20 7b ute($command,.$output,.$path)).{
169c0 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 61 .throw.new.\RuntimeException('Fa
169e0 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 22 iled.to.execute.'...$command..."
16a00 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 72 \n\n"...$this->process->getError
16a20 4f 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 Output());.}..$guessTemplate.=.'
16a40 67 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 git.log.--until=%s.--date=raw.-n
16a60 31 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 1.--pretty=%%H.%s';.foreach.($th
16a80 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 75 74 70 75 74 29 is->process->splitLines($output)
16aa0 20 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 .as.$line).{.if.(preg_match('{^c
16ac0 6f 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 omposer/'.preg_quote($branch).'(
16ae0 3f 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 ?:\.x)?$}i',.trim($line))).{...i
16b00 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 78 65 63 75 74 65 f.(0.===.$this->process->execute
16b20 28 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 (sprintf($guessTemplate,.$date,.
16b40 65 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 escapeshellarg(trim($line))),.$o
16b60 75 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 utput,.$path)).{.$newReference.=
16b80 20 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 .trim($output);.}..break;.}.}..i
16ba0 66 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 f.(empty($newReference)).{...if.
16bc0 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 73 (0.!==.$this->process->execute(s
16be0 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 27 2d printf($guessTemplate,.$date,.'-
16c00 2d 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 -all'),.$output,.$path)).{.throw
16c20 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 64 20 74 .new.\RuntimeException('Failed.t
16c40 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 22 20 o.execute.'...$command..."\n\n".
16c60 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
16c80 28 29 29 3b 0a 7d 0a 24 6e 65 77 52 65 66 65 72 65 6e 63 65 20 3d 20 74 72 69 6d 28 24 6f 75 74 ());.}.$newReference.=.trim($out
16ca0 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 put);.}....$command.=.sprintf($t
16cc0 65 6d 70 6c 61 74 65 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 emplate,.escapeshellarg($referen
16ce0 63 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 ce));.if.(0.===.$this->process->
16d00 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 24 70 61 74 68 execute($command,.$output,.$path
16d20 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 20 27 2e 24 72 65 )).{.$this->io->write('....'.$re
16d40 66 65 72 65 6e 63 65 2e 27 20 69 73 20 67 6f 6e 65 20 28 68 69 73 74 6f 72 79 20 77 61 73 20 72 ference.'.is.gone.(history.was.r
16d60 65 77 72 69 74 74 65 6e 3f 29 2c 20 72 65 63 6f 76 65 72 65 64 20 62 79 20 63 68 65 63 6b 69 6e ewritten?),.recovered.by.checkin
16d80 67 20 6f 75 74 20 27 2e 24 6e 65 77 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b g.out.'.$newReference);..return;
16da0 0a 7d 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 .}.}..throw.new.\RuntimeExceptio
16dc0 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 6d 6d 61 6e n('Failed.to.execute.'...$comman
16de0 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 3e 67 65 74 d..."\n\n"...$this->process->get
16e00 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ErrorOutput());.}.....protected.
16e20 66 75 6e 63 74 69 6f 6e 20 65 6e 66 6f 72 63 65 43 6c 65 61 6e 44 69 72 65 63 74 6f 72 79 28 24 function.enforceCleanDirectory($
16e40 70 61 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 path).{.$command.=.sprintf('cd.%
16e60 73 20 26 26 20 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 69 6e 20 2d 2d 75 6e s.&&.git.status.--porcelain.--un
16e80 74 72 61 63 6b 65 64 2d 66 69 6c 65 73 3d 6e 6f 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 tracked-files=no',.escapeshellar
16ea0 67 28 24 70 61 74 68 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 g($path));.if.(0.!==.$this->proc
16ec0 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 29 29 ess->execute($command,.$output))
16ee0 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('
16f00 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 20 2e Failed.to.execute.'...$command..
16f20 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
16f40 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 69 6d 28 24 6f 75 74 70 75 74 orOutput());.}..if.(trim($output
16f60 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
16f80 28 27 53 6f 75 72 63 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 ('Source.directory.'...$path...'
16fa0 20 68 61 73 20 75 6e 63 6f 6d 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 27 29 3b 0a 7d 0a 7d 0a .has.uncommitted.changes');.}.}.
16fc0 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 72 75 6e 43 .........protected.function.runC
16fe0 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 75 72 6c 2c 20 24 ommand($commandCallable,.$url,.$
17000 70 61 74 68 20 3d 20 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 path.=.null).{.$handler.=.array(
17020 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 0a 0a 20 69 66 20 28 $this,.'outputHandler');....if.(
17040 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 28 3a 2f 2f preg_match('{^(?:https?|git)(://
17060 67 69 74 68 75 62 2e 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 github.com/.*)}',.$url,.$match))
17080 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 .{.$protocols.=.array('git',.'ht
170a0 74 70 73 27 2c 20 27 68 74 74 70 27 29 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 tps',.'http');.$messages.=.array
170c0 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 74 6f 63 6f 6c 73 20 61 73 20 24 70 72 6f 74 ();.foreach.($protocols.as.$prot
170e0 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 24 6d 61 74 63 ocol).{.$url.=.$protocol...$matc
17100 68 5b 31 5d 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 h[1];.if.(0.===.$this->process->
17120 65 78 65 63 75 74 65 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 execute(call_user_func($commandC
17140 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a 72 65 74 allable,.$url),.$handler)).{.ret
17160 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 2d 20 27 20 2e 20 24 75 72 6c urn;.}.$messages[].=.'-.'...$url
17180 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 23 6d 27 2c 20 27 ..."\n"...preg_replace('#^#m',.'
171a0 20 20 27 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 ..',.$this->process->getErrorOut
171c0 70 75 74 28 29 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 68 29 20 7b 0a 24 74 put());.if.(null.!==.$path).{.$t
171e0 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 74 6f 72 79 his->filesystem->removeDirectory
17200 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 ($path);.}.}....$this->throwExce
17220 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 20 2e 20 24 75 72 6c 20 ption('Failed.to.clone.'...$url.
17240 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
17260 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
17280 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);.}..
172a0 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
172c0 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
172e0 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,.$
17300 68 61 6e 64 6c 65 72 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 67 69 handler)).{.if.(preg_match('{^gi
17320 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d 69 27 2c 20 24 75 72 t@github.com:(.+?)\.git$}i',.$ur
17340 6c 2c 20 24 6d 61 74 63 68 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 l,.$match).&&.$this->io->isInter
17360 61 63 74 69 76 65 28 29 29 20 7b 0a 0a 20 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 24 72 65 74 active()).{...$retries.=.3;.$ret
17380 72 79 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 64 6f 20 7b 0a 69 66 20 28 24 72 65 74 72 79 69 6e rying.=.false;.do.{.if.($retryin
173a0 67 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 63 g).{.$this->io->write('Invalid.c
173c0 72 65 64 65 6e 74 69 61 6c 73 27 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e redentials');.}.if.(!$this->io->
173e0 68 61 73 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 20 7c hasAuthorization('github.com').|
17400 7c 20 24 72 65 74 72 79 69 6e 67 29 20 7b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 |.$retrying).{.$username.=.$this
17420 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f ->io->ask('Username:.');.$passwo
17440 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 rd.=.$this->io->askAndHideAnswer
17460 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 ('Password:.');.$this->io->setAu
17480 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 73 65 72 6e thorization('github.com',.$usern
174a0 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a 24 61 75 74 68 20 3d 20 24 74 68 69 ame,.$password);.}..$auth.=.$thi
174c0 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 27 67 69 74 68 75 62 2e s->io->getAuthorization('github.
174e0 63 6f 6d 27 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 61 75 74 68 5b 27 com');.$url.=.'https://'.$auth['
17500 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 70 61 73 73 77 6f username']...':'...$auth['passwo
17520 72 64 27 5d 20 2e 20 27 40 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 6d 61 74 63 68 5b 31 5d 2e rd']...'@github.com/'.$match[1].
17540 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 '.git';..$command.=.call_user_fu
17560 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 3b 0a 69 66 20 28 nc($commandCallable,.$url);.if.(
17580 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 24 63 0.===.$this->process->execute($c
175a0 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 ommand,.$handler)).{.return;.}.i
175c0 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 f.(null.!==.$path).{.$this->file
175e0 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 74 68 29 3b 0a system->removeDirectory($path);.
17600 7d 0a 24 72 65 74 72 79 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 20 77 68 69 6c 65 20 28 2d 2d 24 }.$retrying.=.true;.}.while.(--$
17620 72 65 74 72 69 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 74 68 29 retries);.}..if.(null.!==.$path)
17640 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
17660 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
17680 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
176a0 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-
176c0 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 >getErrorOutput(),.$url);.}.}..p
176e0 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 74 79 ublic.function.outputHandler($ty
17700 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 6f 75 pe,.$buffer).{.if.($type.!==.'ou
17720 74 27 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 t').{.return;.}.if.($this->io->i
17740 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 72 69 74 65 28 24 sVerbose()).{.$this->io->write($
17760 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 buffer,.false);.}.}..protected.f
17780 75 6e 63 74 69 6f 6e 20 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c unction.throwException($message,
177a0 20 24 75 72 6c 29 0a 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 .$url).{.if.(0.!==.$this->proces
177c0 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 2c 20 24 69 67 6e s->execute('git.--version',.$ign
177e0 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
17800 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 75 eException('Failed.to.clone.'.$u
17820 72 6c 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 rl.',.git.was.not.found,.check.t
17840 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 hat.it.is.installed.and.in.your.
17860 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f PATH.env.'..."\n\n"...$this->pro
17880 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 0a 74 68 72 6f cess->getErrorOutput());.}..thro
178a0 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 6d 65 73 73 61 67 65 w.new.\RuntimeException($message
178c0 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 73 65 74 50 75 73 68 );.}..protected.function.setPush
178e0 55 72 6c 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 24 Url(PackageInterface.$package,.$
17900 70 61 74 68 29 0a 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 path).{...if.(preg_match('{^(?:h
17920 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f ttps?|git)://github.com/([^/]+)/
17940 28 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d ([^/]+?)(?:\.git)?$}',.$package-
17960 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 75 73 >getSourceUrl(),.$match)).{.$pus
17980 68 55 72 6c 20 3d 20 27 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 6d 61 74 63 68 5b hUrl.=.'git@github.com:'.$match[
179a0 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 24 63 6d 64 20 3d 20 1].'/'.$match[2].'.git';.$cmd.=.
179c0 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 2d 2d 70 75 sprintf('git.remote.set-url.--pu
179e0 73 68 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 sh.origin.%s',.escapeshellarg($p
17a00 75 73 68 55 72 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 ushUrl));.$this->process->execut
17a20 65 28 24 63 6d 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a e($cmd,.$ignoredOutput,.$path);.
17a40 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 65 }.}.}.<?php............namespace
17a60 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
17a80 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
17aa0 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;
17ac0 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
17ae0 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
17b00 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
17b20 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;..
17b40 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
17b60 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
17b80 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
17ba0 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);.}.}.....
17bc0 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
17be0 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.
17c00 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.
17c20 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
17c40 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)
17c60 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()
17c80 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
17ca0 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.==
17cc0 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
17ce0 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
17d00 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
17d20 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
17d40 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
17d60 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
17d80 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
17da0 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);.}..
17dc0 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.($
17de0 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)
17e00 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().===.$
17e20 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
17e40 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(
17e60 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;.}.
17e80 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
17ea0 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
17ec0 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.=.
17ee0 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
17f00 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
17f20 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.===.
17f40 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()).{
17f60 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;
17f80 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
17fa0 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).{
17fc0 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).{
17fe0 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
18000 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
18020 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
18040 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
18060 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
18080 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
180a0 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);.
180c0 7d 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 63 72 65 61 74 65 }.}.}..protected.function.create
180e0 41 6c 69 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 24 70 AliasPackage(PackageInterface.$p
18100 61 63 6b 61 67 65 2c 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 ackage,.$alias.=.null,.$prettyAl
18120 69 61 73 20 3d 20 6e 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 ias.=.null).{.return.new.AliasPa
18140 63 6b 61 67 65 28 24 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 ckage($package,.$alias.?:.$packa
18160 67 65 2d 3e 67 65 74 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 ge->getAlias(),.$prettyAlias.?:.
18180 24 70 61 63 6b 61 67 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 $package->getPrettyAlias());.}..
181a0 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 50 61 63 6b 61 .....public.function.removePacka
181c0 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 0a ge(PackageInterface.$package).{.
181e0 24 70 61 63 6b 61 67 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 $packageId.=.$package->getUnique
18200 4e 61 6d 65 28 29 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 Name();..foreach.($this->getPack
18220 61 67 65 73 28 29 20 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 ages().as.$key.=>.$repoPackage).
18240 7b 0a 69 66 20 28 24 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 {.if.($packageId.===.$repoPackag
18260 65 2d 3e 67 65 74 55 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 e->getUniqueName()).{.array_spli
18280 63 65 28 24 74 68 69 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 ce($this->packages,.$key,.1);..r
182a0 65 74 75 72 6e 3b 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 eturn;.}.}.}.....public.function
182c0 20 67 65 74 50 61 63 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 .getPackages().{.if.(null.===.$t
182e0 68 69 73 2d 3e 70 61 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 his->packages).{.$this->initiali
18300 7a 65 28 29 3b 0a 7d 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 ze();.}..return.$this->packages;
18320 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 6f 75 6e 74 28 29 .}.......public.function.count()
18340 0a 7b 0a 72 65 74 75 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 .{.return.count($this->packages)
18360 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 69 6e 69 74 69 ;.}.....protected.function.initi
18380 61 6c 69 7a 65 28 29 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 alize().{.$this->packages.=.arra
183a0 79 28 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 y();.}.}.<?php............namesp
183c0 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
183e0 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
18400 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 6d er\Package\AliasPackage;.use.Com
18420 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 4c 6f 61 64 65 72 poser\Package\Loader\ArrayLoader
18440 3b 0a 75 73 65 20 43 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 ;.use.Composer\Package\Dumper\Ar
18460 72 61 79 44 75 6d 70 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 rayDumper;........class.Filesyst
18480 65 6d 52 65 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 emRepository.extends.ArrayReposi
184a0 74 6f 72 79 20 69 6d 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 tory.implements.WritableReposito
184c0 72 79 49 6e 74 65 72 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 ryInterface.{.private.$file;....
184e0 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 4a ...public.function.__construct(J
18500 73 6f 6e 46 69 6c 65 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 sonFile.$repositoryFile).{.$this
18520 2d 3e 66 69 6c 65 20 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 ->file.=.$repositoryFile;.}.....
18540 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 0a protected.function.initialize().
18560 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 69 66 20 28 21 24 74 {.parent::initialize();..if.(!$t
18580 68 69 73 2d 3e 66 69 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 his->file->exists()).{.return;.}
185a0 0a 0a 24 70 61 63 6b 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 ..$packages.=.$this->file->read(
185c0 29 3b 0a 0a 69 66 20 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 );..if.(!is_array($packages)).{.
185e0 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 78 63 65 70 74 throw.new.\UnexpectedValueExcept
18600 69 6f 6e 28 27 43 6f 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 ion('Could.not.parse.package.lis
18620 74 20 66 72 6f 6d 20 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 t.from.the.'.$this->file->getPat
18640 68 28 29 2e 27 20 72 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 h().'.repository');.}..$loader.=
18660 20 6e 65 77 20 41 72 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 .new.ArrayLoader();.foreach.($pa
18680 63 6b 61 67 65 73 20 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 ckages.as.$packageData).{.$packa
186a0 67 65 20 3d 20 24 6c 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 ge.=.$loader->load($packageData)
186c0 3b 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 67 65 29 3b 0a 7d ;.$this->addPackage($package);.}
186e0 0a 7d 0a 0a 70 75 62 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 .}..public.function.reload().{.$
18700 74 68 69 73 2d 3e 70 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 this->packages.=.null;.$this->in
18720 69 74 69 61 6c 69 7a 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 itialize();.}.....public.functio
18740 6e 20 77 72 69 74 65 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 n.write().{.$packages.=.array();
18760 0a 24 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 0a 66 6f .$dumper.=.new.ArrayDumper();.fo
18780 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 61 73 20 24 reach.($this->getPackages().as.$
187a0 70 61 63 6b 61 67 65 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 package).{.if.(!$package.instanc
187c0 65 6f 66 20 41 6c 69 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 eof.AliasPackage).{.$data.=.$dum
187e0 70 65 72 2d 3e 64 75 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 per->dump($package);.$packages[]
18800 20 3d 20 24 64 61 74 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 .=.$data;.}.}..$this->file->writ
18820 65 28 24 70 61 63 6b 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 e($packages);.}.}.<?php.........
18840 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 6f 72 79 ...namespace.Composer\Repository
18860 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
18880 6e 74 65 72 66 61 63 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 nterface;.......interface.Writab
188a0 6c 65 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 52 65 leRepositoryInterface.extends.Re
188c0 70 6f 73 69 74 6f 72 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 positoryInterface.{....public.fu
188e0 6e 63 74 69 6f 6e 20 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 nction.write();.......public.fun
18900 63 74 69 6f 6e 20 61 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 ction.addPackage(PackageInterfac
18920 65 20 24 70 61 63 6b 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 e.$package);.......public.functi
18940 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 63 on.removePackage(PackageInterfac
18960 65 20 24 70 61 63 6b 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 e.$package);.....public.function
18980 20 72 65 6c 6f 61 64 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 .reload();.}.<?php............na
189a0 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 73 mespace.Composer\Repository;..us
189c0 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 43 e.Composer\IO\IOInterface;.use.C
189e0 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
18a00 61 72 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 50 arser;.use.Composer\Repository\P
18a20 65 61 72 5c 43 68 61 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 ear\ChannelReader;.use.Composer\
18a40 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f Package\MemoryPackage;.use.Compo
18a60 73 65 72 5c 52 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 ser\Repository\Pear\ChannelInfo;
18a80 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.
18aa0 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\
18ac0 56 65 72 73 69 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 VersionConstraint;.use.Composer\
18ae0 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 6f 6d 70 6f Util\RemoteFilesystem;.use.Compo
18b00 73 65 72 5c 43 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 ser\Config;...........class.Pear
18b20 52 65 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 Repository.extends.ArrayReposito
18b40 72 79 0a 7b 0a 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 ry.{.private.$url;.private.$io;.
18b60 70 72 69 76 61 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 private.$rfs;.private.$versionPa
18b80 72 73 65 72 3b 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 rser;.....private.$vendorAlias;.
18ba0 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
18bc0 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 2c ay.$repoConfig,.IOInterface.$io,
18be0 20 43 6f 6e 66 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 .Config.$config,.RemoteFilesyste
18c00 6d 20 24 72 66 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 m.$rfs.=.null).{.if.(!preg_match
18c20 28 27 7b 5e 68 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 ('{^https?://}',.$repoConfig['ur
18c40 6c 27 5d 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 27 68 74 l'])).{.$repoConfig['url'].=.'ht
18c60 74 70 3a 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 0a 69 66 tp://'.$repoConfig['url'];.}..if
18c80 20 28 66 75 6e 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 .(function_exists('filter_var').
18ca0 26 26 20 76 65 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 &&.version_compare(PHP_VERSION,.
18cc0 27 35 2e 33 2e 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 '5.3.3',.'>=').&&.!filter_var($r
18ce0 65 70 6f 43 6f 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 epoConfig['url'],.FILTER_VALIDAT
18d00 45 5f 55 52 4c 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 E_URL)).{.throw.new.\UnexpectedV
18d20 61 6c 75 65 45 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 alueException('Invalid.url.given
18d40 20 66 6f 72 20 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 .for.PEAR.repository:.'.$repoCon
18d60 66 69 67 5b 27 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 fig['url']);.}..$this->url.=.rtr
18d80 69 6d 28 24 72 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 im($repoConfig['url'],.'/');.$th
18da0 69 73 2d 3e 69 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 is->io.=.$io;.$this->rfs.=.$rfs.
18dc0 3f 3a 20 6e 65 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 ?:.new.RemoteFilesystem($this->i
18de0 6f 29 3b 0a 24 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 o);.$this->vendorAlias.=.isset($
18e00 72 65 70 6f 43 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 repoConfig['vendor-alias']).?.$r
18e20 65 70 6f 43 6f 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 epoConfig['vendor-alias'].:.null
18e40 3b 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 65 72 ;.$this->versionParser.=.new.Ver
18e60 73 69 6f 6e 50 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 sionParser();.}..protected.funct
18e80 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 3a 69 6e 69 74 69 ion.initialize().{.parent::initi
18ea0 61 6c 69 7a 65 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 alize();..$this->io->write('Init
18ec0 69 61 6c 69 7a 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 ializing.PEAR.repository.'.$this
18ee0 2d 3e 75 72 6c 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 ->url);..$reader.=.new.ChannelRe
18f00 61 64 65 72 28 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 ader($this->rfs);.try.{.$channel
18f20 49 6e 66 6f 20 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 Info.=.$reader->read($this->url)
18f40 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 74 68 69 ;.}.catch.(\Exception.$e).{.$thi
18f60 73 2d 3e 69 6f 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 s->io->write('<warning>PEAR.repo
18f80 73 69 74 6f 72 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 sitory.from.'.$this->url.'.could
18fa0 20 6e 6f 74 20 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 .not.be.loaded..'.$e->getMessage
18fc0 28 29 2e 27 3c 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 ().'</warning>');..return;.}.$pa
18fe0 63 6b 61 67 65 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 ckages.=.$this->buildComposerPac
19000 6b 61 67 65 73 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 kages($channelInfo,.$this->versi
19020 6f 6e 50 61 72 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 onParser);.foreach.($packages.as
19040 20 24 70 61 63 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 .$package).{.$this->addPackage($
19060 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e package);.}.}........private.fun
19080 63 74 69 6f 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 ction.buildComposerPackages(Chan
190a0 6e 65 6c 49 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 nelInfo.$channelInfo,.VersionPar
190c0 73 65 72 20 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 ser.$versionParser).{.$result.=.
190e0 61 72 72 61 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 array();.foreach.($channelInfo->
19100 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 44 65 66 69 6e 69 74 getPackages().as.$packageDefinit
19120 69 6f 6e 29 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 ion).{.foreach.($packageDefiniti
19140 6f 6e 2d 3e 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 on->getReleases().as.$version.=>
19160 20 24 72 65 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 .$releaseInfo).{.try.{.$normaliz
19180 65 64 56 65 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 edVersion.=.$versionParser->norm
191a0 61 6c 69 7a 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 alize($version);.}.catch.(\Unexp
191c0 65 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 69 66 20 28 24 74 ectedValueException.$e).{.if.($t
191e0 68 69 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 his->io->isVerbose()).{.$this->i
19200 6f 2d 3e 77 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 o->write('Could.not.load.'.$pack
19220 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 4e 61 6d 65 28 29 2e ageDefinition->getPackageName().
19240 27 20 27 2e 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 '.'.$version.':.'.$e->getMessage
19260 28 29 29 3b 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 ());.}.continue;.}..$composerPac
19280 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 70 6f 73 65 72 50 kageName.=.$this->buildComposerP
192a0 61 63 6b 61 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 ackageName($packageDefinition->g
192c0 65 74 43 68 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 etChannelName(),.$packageDefinit
192e0 69 6f 6e 2d 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 ion->getPackageName());......$di
19300 73 74 55 72 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 stUrl.=."http://{$packageDefinit
19320 69 6f 6e 2d 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 ion->getChannelName()}/get/{$pac
19340 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 4e 61 6d 65 28 29 kageDefinition->getPackageName()
19360 7d 2d 7b 24 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 }-{$version}.tgz";..$requires.=.
19380 61 72 72 61 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 array();.$suggests.=.array();.$c
193a0 6f 6e 66 6c 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 onflicts.=.array();.$replaces.=.
193c0 61 72 72 61 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 array();......if.($channelInfo->
193e0 67 65 74 4e 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 getName().==.$packageDefinition-
19400 3e 67 65 74 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 >getChannelName()).{.$composerPa
19420 63 6b 61 67 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 ckageAlias.=.$this->buildCompose
19440 72 50 61 63 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 rPackageName($channelInfo->getAl
19460 69 61 73 28 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 ias(),.$packageDefinition->getPa
19480 63 6b 61 67 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 ckageName());.$aliasConstraint.=
194a0 20 6e 65 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 6e 6f .new.VersionConstraint('==',.$no
194c0 72 6d 61 6c 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 rmalizedVersion);.$replaces[].=.
194e0 6e 65 77 20 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 new.Link($composerPackageName,.$
19500 63 6f 6d 70 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 composerPackageAlias,.$aliasCons
19520 74 72 61 69 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 traint,.'replaces',.(string).$al
19540 69 61 73 43 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 iasConstraint);.}....if.(!empty(
19560 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 $this->vendorAlias)).{.$composer
19580 50 61 63 6b 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 PackageAlias.=."{$this->vendorAl
195a0 69 61 73 7d 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 ias}/{$packageDefinition->getPac
195c0 6b 61 67 65 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 kageName()}";.$aliasConstraint.=
195e0 20 6e 65 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 6e 6f .new.VersionConstraint('==',.$no
19600 72 6d 61 6c 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 rmalizedVersion);.$replaces[].=.
19620 6e 65 77 20 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 new.Link($composerPackageName,.$
19640 63 6f 6d 70 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 composerPackageAlias,.$aliasCons
19660 74 72 61 69 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 traint,.'replaces',.(string).$al
19680 69 61 73 43 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 iasConstraint);.}..foreach.($rel
196a0 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 66 6f 28 29 2d 3e 67 easeInfo->getDependencyInfo()->g
196c0 65 74 52 65 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 etRequires().as.$dependencyConst
196e0 72 61 69 6e 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 raint).{.$dependencyPackageName.
19700 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 4e 61 6d =.$this->buildComposerPackageNam
19720 65 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 65 74 43 68 61 6e e($dependencyConstraint->getChan
19740 6e 65 6c 4e 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 nelName(),.$dependencyConstraint
19760 2d 3e 67 65 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 ->getPackageName());.$constraint
19780 20 3d 20 24 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 .=.$versionParser->parseConstrai
197a0 6e 74 73 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 65 74 43 6f nts($dependencyConstraint->getCo
197c0 6e 73 74 72 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 nstraint());.$link.=.new.Link($c
197e0 6f 6d 70 6f 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 omposerPackageName,.$dependencyP
19800 61 63 6b 61 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 ackageName,.$constraint,.$depend
19820 65 6e 63 79 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 encyConstraint->getType(),.$depe
19840 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 61 69 6e 74 28 ndencyConstraint->getConstraint(
19860 29 29 3b 0a 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 ));.switch.($dependencyConstrain
19880 74 2d 3e 67 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 t->getType()).{.case.'required':
198a0 0a 24 72 65 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 .$requires[].=.$link;.break;.cas
198c0 65 20 27 63 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 e.'conflicts':.$conflicts[].=.$l
198e0 69 6e 6b 3b 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 ink;.break;.case.'replaces':.$re
19900 70 6c 61 63 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 places[].=.$link;.break;.}.}..fo
19920 72 65 61 63 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 reach.($releaseInfo->getDependen
19940 63 79 49 6e 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 cyInfo()->getOptionals().as.$gro
19960 75 70 20 3d 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 up.=>.$dependencyConstraints).{.
19980 66 6f 72 65 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 foreach.($dependencyConstraints.
199a0 61 73 20 24 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 as.$dependencyConstraint).{.$dep
199c0 65 6e 64 65 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 endencyPackageName.=.$this->buil
199e0 64 43 6f 6d 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 dComposerPackageName($dependency
19a00 43 6f 6e 73 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 Constraint->getChannelName(),.$d
19a20 65 70 65 6e 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 ependencyConstraint->getPackageN
19a40 61 6d 65 28 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 ame());.$suggests[$group.'-'.$de
19a60 70 65 6e 64 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 pendencyPackageName].=.$dependen
19a80 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 3b 0a 7d cyConstraint->getConstraint();.}
19aa0 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 .}..$package.=.new.MemoryPackage
19ac0 28 24 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 ($composerPackageName,.$normaliz
19ae0 65 64 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 edVersion,.$version);.$package->
19b00 73 65 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 setType('pear-library');.$packag
19b20 65 2d 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 e->setDescription($packageDefini
19b40 74 69 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 tion->getDescription());.$packag
19b60 65 2d 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 e->setDistType('file');.$package
19b80 2d 3e 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 ->setDistUrl($distUrl);.$package
19ba0 2d 3e 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 ->setAutoload(array('classmap'.=
19bc0 3e 20 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 >.array('')));.$package->setIncl
19be0 75 64 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 udePaths(array('/'));.$package->
19c00 73 65 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 setRequires($requires);.$package
19c20 2d 3e 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 ->setConflicts($conflicts);.$pac
19c40 6b 61 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 kage->setSuggests($suggests);.$p
19c60 61 63 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 ackage->setReplaces($replaces);.
19c80 24 72 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 $result[].=.$package;.}.}..retur
19ca0 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 62 n.$result;.}..private.function.b
19cc0 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 63 68 61 6e 6e 65 6c uildComposerPackageName($channel
19ce0 4e 61 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 Name,.$packageName).{.if.('php'.
19d00 3d 3d 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 ===.$channelName).{.return."php"
19d20 3b 0a 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 ;.}.if.('ext'.===.$channelName).
19d40 7b 0a 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 {.return."ext-{$packageName}";.}
19d60 0a 0a 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 ..return."pear-{$channelName}/{$
19d80 70 61 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 packageName}";.}.}.<?php........
19da0 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 6f 72 ....namespace.Composer\Repositor
19dc0 79 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 65 3b y;..use.Composer\IO\IOInterface;
19de0 0a 75 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 .use.Composer\Config;.........cl
19e00 61 73 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 ass.RepositoryManager.{.private.
19e20 24 6c 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 $localRepository;.private.$local
19e40 44 65 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 DevRepository;.private.$reposito
19e60 72 69 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 ries.=.array();.private.$reposit
19e80 6f 72 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 oryClasses.=.array();.private.$i
19ea0 6f 3b 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 o;.private.$config;..public.func
19ec0 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 6f tion.__construct(IOInterface.$io
19ee0 2c 20 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 ,.Config.$config).{.$this->io.=.
19f00 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 7d 0a $io;.$this->config.=.$config;.}.
19f20 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 61 63 .........public.function.findPac
19f40 6b 61 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 kage($name,.$version).{.foreach.
19f60 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 69 74 ($this->repositories.as.$reposit
19f80 6f 72 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 ory).{.if.($package.=.$repositor
19fa0 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 73 69 6f 6e 29 29 y->findPackage($name,.$version))
19fc0 20 7b 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 .{.return.$package;.}.}.}.......
19fe0 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 67 65 73 28 ...public.function.findPackages(
1a000 24 6e 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 $name,.$version).{.$packages.=.a
1a020 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 72 65 70 6f 73 69 74 rray();..foreach.($this->reposit
1a040 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 61 63 6b 61 67 65 ories.as.$repository).{.$package
1a060 73 20 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 s.=.array_merge($packages,.$repo
1a080 73 69 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 sitory->findPackages($name,.$ver
1a0a0 73 69 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 sion));.}..return.$packages;.}..
1a0c0 0a 0a 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 .....public.function.addReposito
1a0e0 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 6f ry(RepositoryInterface.$reposito
1a100 72 79 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 ry).{.$this->repositories[].=.$r
1a120 65 70 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 epository;.}..........public.fun
1a140 63 74 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 ction.createRepository($type,.$c
1a160 6f 6e 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 onfig).{.if.(!isset($this->repos
1a180 69 74 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 itoryClasses[$type])).{.throw.ne
1a1a0 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 52 65 70 w.\InvalidArgumentException('Rep
1a1c0 6f 73 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 ository.type.is.not.registered:.
1a1e0 27 2e 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 '.$type);.}..$class.=.$this->rep
1a200 6f 73 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 ositoryClasses[$type];..return.n
1a220 65 77 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 ew.$class($config,.$this->io,.$t
1a240 68 69 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 his->config);.}........public.fu
1a260 6e 63 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 nction.setRepositoryClass($type,
1a280 20 24 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 .$class).{.$this->repositoryClas
1a2a0 73 65 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 ses[$type].=.$class;.}.......pub
1a2c0 6c 69 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 lic.function.getRepositories().{
1a2e0 0a 72 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 .return.$this->repositories;.}..
1a300 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 52 65 70 .....public.function.setLocalRep
1a320 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 72 65 70 ository(RepositoryInterface.$rep
1a340 6f 73 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 ository).{.$this->localRepositor
1a360 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 75 62 6c 69 63 20 y.=.$repository;.}.......public.
1a380 66 75 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 function.getLocalRepository().{.
1a3a0 72 65 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 return.$this->localRepository;.}
1a3c0 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 61 6c 44 .......public.function.setLocalD
1a3e0 65 76 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 evRepository(RepositoryInterface
1a400 20 24 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 .$repository).{.$this->localDevR
1a420 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;.}......
1a440 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 44 65 76 52 65 70 6f .public.function.getLocalDevRepo
1a460 73 69 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 sitory().{.return.$this->localDe
1a480 76 52 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 vRepository;.}.......public.func
1a4a0 74 69 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 tion.getLocalRepositories().{.re
1a4c0 74 75 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 turn.array($this->localRepositor
1a4e0 79 2c 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 y,.$this->localDevRepository);.}
1a500 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
1a520 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 6f 6d 70 mposer\Repository\Vcs;..use.Comp
1a540 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 69 oser\Downloader\TransportExcepti
1a560 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 46 69 6c 65 3b 0a on;.use.Composer\Json\JsonFile;.
1a580 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
1a5a0 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 55 74 \IO\IOInterface;.use.Composer\Ut
1a5c0 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 63 6c 61 73 73 20 47 il\RemoteFilesystem;.....class.G
1a5e0 69 74 48 75 62 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 itHubDriver.extends.VcsDriver.{.
1a600 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 6f 77 6e protected.$cache;.protected.$own
1a620 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 70 72 6f 74 65 er;.protected.$repository;.prote
1a640 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 73 3b cted.$tags;.protected.$branches;
1a660 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 6f 74 .protected.$rootIdentifier;.prot
1a680 65 63 74 65 64 20 24 68 61 73 49 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 ected.$hasIssues;.protected.$inf
1a6a0 6f 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 73 50 oCache.=.array();.protected.$isP
1a6c0 72 69 76 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 rivate.=.false;.......protected.
1a6e0 24 67 69 74 44 72 69 76 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $gitDriver;.....public.function.
1a700 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 5e 28 3f 3a initialize().{.preg_match('#^(?:
1a720 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 6f 6d 2f 7c 67 69 (?:https?|git)://github\.com/|gi
1a740 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 3f 29 28 3f 3a 5c t@github\.com:)([^/]+)/(.+?)(?:\
1a760 2e 67 69 74 29 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a .git)?$#',.$this->url,.$match);.
1a780 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 68 69 73 2d $this->owner.=.$match[1];.$this-
1a7a0 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 69 73 2d 3e >repository.=.$match[2];.$this->
1a7c0 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 24 74 68 69 73 2d originUrl.=.'github.com';.$this-
1a7e0 3e 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 >cache.=.new.Cache($this->io,.$t
1a800 68 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 his->config->get('home').'/cache
1a820 2e 67 69 74 68 75 62 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 .github/'.$this->owner.'/'.$this
1a840 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 52 6f 6f 74 ->repository);..$this->fetchRoot
1a860 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Identifier();.}.....public.funct
1a880 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 28 24 74 ion.getRootIdentifier().{.if.($t
1a8a0 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->
1a8c0 67 69 74 44 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 3b 0a gitDriver->getRootIdentifier();.
1a8e0 7d 0a 0a 72 65 74 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 }..return.$this->rootIdentifier;
1a900 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 0a .}.....public.function.getUrl().
1a920 7b 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 {.if.($this->gitDriver).{.return
1a940 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a .$this->gitDriver->getUrl();.}..
1a960 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 69 63 20 return.$this->url;.}.....public.
1a980 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 72 29 0a function.getSource($identifier).
1a9a0 7b 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 {.if.($this->gitDriver).{.return
1a9c0 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 69 64 .$this->gitDriver->getSource($id
1a9e0 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 entifier);.}.$label.=.array_sear
1aa00 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 73 28 29 ch($identifier,.$this->getTags()
1aa20 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 ).?:.$identifier;.if.($this->isP
1aa40 72 69 76 61 74 65 29 20 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 rivate).{.....$url.=.$this->gene
1aa60 72 61 74 65 53 73 68 55 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 74 rateSshUrl();.}.else.{.$url.=.$t
1aa80 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 his->getUrl();.}..return.array('
1aaa0 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 75 72 6c 2c 20 27 type'.=>.'git',.'url'.=>.$url,.'
1aac0 72 65 66 65 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 reference'.=>.$label);.}.....pub
1aae0 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 65 72 lic.function.getDist($identifier
1ab00 29 0a 7b 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 ).{.if.($this->gitDriver).{.retu
1ab20 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 rn.$this->gitDriver->getDist($id
1ab40 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 entifier);.}.$label.=.array_sear
1ab60 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 73 28 29 ch($identifier,.$this->getTags()
1ab80 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 27 68 74 74 70 73 3a ).?:.$identifier;.$url.=.'https:
1aba0 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e //github.com/'.$this->owner.'/'.
1abc0 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 7a 69 70 62 61 6c 6c 2f 27 2e 24 6c $this->repository.'/zipball/'.$l
1abe0 61 62 65 6c 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 abel;..return.array('type'.=>.'z
1ac00 69 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 ip',.'url'.=>.$url,.'reference'.
1ac20 3d 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 =>.$label,.'shasum'.=>.'');.}...
1ac40 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 49 6e 66 ..public.function.getComposerInf
1ac60 6f 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 ormation($identifier).{.if.($thi
1ac80 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 67 69 s->gitDriver).{.return.$this->gi
1aca0 74 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 tDriver->getComposerInformation(
1acc0 24 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 $identifier);.}..if.(preg_match(
1ace0 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 69 66 69 65 72 29 20 '{[a-f0-9]{40}}i',.$identifier).
1ad00 26 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 &&.$res.=.$this->cache->read($id
1ad20 65 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 entifier)).{.$this->infoCache[$i
1ad40 64 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 dentifier].=.JsonFile::parseJson
1ad60 28 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 ($res);.}..if.(!isset($this->inf
1ad80 6f 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 oCache[$identifier])).{.try.{.$r
1ada0 65 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 esource.=.'https://raw.github.co
1adc0 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 65 70 6f m/'.$this->owner.'/'.$this->repo
1ade0 73 69 74 6f 72 79 2e 27 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 sitory.'/'.$identifier.'/compose
1ae00 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 65 74 43 r.json';.$composer.=.$this->getC
1ae20 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 ontents($resource);.}.catch.(Tra
1ae40 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 34 30 34 20 21 3d nsportException.$e).{.if.(404.!=
1ae60 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a =.$e->getCode()).{.throw.$e;.}..
1ae80 24 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f $composer.=.false;.}..if.($compo
1aea0 73 65 72 29 20 7b 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 ser).{.$composer.=.JsonFile::par
1aec0 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
1aee0 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'])).{.
1af00 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 75 62 2e $resource.=.'https://api.github.
1af20 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 74 68 com/repos/'.$this->owner.'/'.$th
1af40 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d 69 74 73 2f 27 2e 24 69 64 65 6e is->repository.'/commits/'.$iden
1af60 74 69 66 69 65 72 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 tifier;.$commit.=.JsonFile::pars
1af80 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 72 eJson($this->getContents($resour
1afa0 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 74 69 6d 65 ce),.$resource);.$composer['time
1afc0 27 5d 20 3d 20 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 63 6f 6d 6d 69 74 74 65 '].=.$commit['commit']['committe
1afe0 72 27 5d 5b 27 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f r']['date'];.}.if.(!isset($compo
1b000 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 6c 61 ser['support']['source'])).{.$la
1b020 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 20 bel.=.array_search($identifier,.
1b040 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 61 72 72 61 79 5f 73 65 61 72 63 $this->getTags()).?:.array_searc
1b060 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 42 72 61 6e 63 68 65 h($identifier,.$this->getBranche
1b080 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 s()).?:.$identifier;.$composer['
1b0a0 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 support']['source'].=.sprintf('h
1b0c0 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 73 27 ttps://github.com/%s/%s/tree/%s'
1b0e0 2c 20 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 ,.$this->owner,.$this->repositor
1b100 79 2c 20 24 6c 61 62 65 6c 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 y,.$label);.}.if.(!isset($compos
1b120 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 er['support']['issues']).&&.$thi
1b140 73 2d 3e 68 61 73 49 73 73 75 65 73 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f s->hasIssues).{.$composer['suppo
1b160 72 74 27 5d 5b 27 69 73 73 75 65 73 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a rt']['issues'].=.sprintf('https:
1b180 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 25 73 2f 25 73 2f 69 73 73 75 65 73 27 2c 20 24 74 68 69 //github.com/%s/%s/issues',.$thi
1b1a0 73 2d 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a s->owner,.$this->repository);.}.
1b1c0 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d }..if.(preg_match('{[a-f0-9]{40}
1b1e0 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 }i',.$identifier)).{.$this->cach
1b200 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 e->write($identifier,.json_encod
1b220 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 e($composer));.}..$this->infoCac
1b240 68 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 he[$identifier].=.$composer;.}..
1b260 72 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 return.$this->infoCache[$identif
1b280 69 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 ier];.}.....public.function.getT
1b2a0 61 67 73 28 29 0a 7b 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 ags().{.if.($this->gitDriver).{.
1b2c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 return.$this->gitDriver->getTags
1b2e0 28 29 3b 0a 7d 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 20 ();.}.if.(null.===.$this->tags).
1b300 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 75 {.$resource.=.'https://api.githu
1b320 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.'/'.$
1b340 74 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 this->repository.'/tags';.$tagsD
1b360 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 24 74 68 69 73 2d ata.=.JsonFile::parseJson($this-
1b380 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 72 >getContents($resource),.$resour
1b3a0 63 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 ce);.$this->tags.=.array();.fore
1b3c0 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 2d ach.($tagsData.as.$tag).{.$this-
1b3e0 3e 74 61 67 73 5b 24 74 61 67 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d 6d >tags[$tag['name']].=.$tag['comm
1b400 69 74 27 5d 5b 27 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 it']['sha'];.}.}..return.$this->
1b420 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 42 tags;.}.....public.function.getB
1b440 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 ranches().{.if.($this->gitDriver
1b460 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 72 2d 3e 67 65 74 ).{.return.$this->gitDriver->get
1b480 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 Branches();.}.if.(null.===.$this
1b4a0 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 27 68 74 74 70 73 ->branches).{.$resource.=.'https
1b4c0 3a 2f 2f 61 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 ://api.github.com/repos/'.$this-
1b4e0 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 2e 27 2f 67 >owner.'/'.$this->repository.'/g
1b500 69 74 2f 72 65 66 73 2f 68 65 61 64 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 it/refs/heads';.$branchData.=.Js
1b520 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 74 onFile::parseJson($this->getCont
1b540 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 3b 0a 24 74 68 ents($resource),.$resource);.$th
1b560 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 65 61 63 68 20 is->branches.=.array();.foreach.
1b580 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 6e 61 6d 65 ($branchData.as.$branch).{.$name
1b5a0 20 3d 20 73 75 62 73 74 72 28 24 62 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 29 3b 0a 24 .=.substr($branch['ref'],.11);.$
1b5c0 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 62 72 61 6e 63 68 5b this->branches[$name].=.$branch[
1b5e0 27 6f 62 6a 65 63 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 'object']['sha'];.}.}..return.$t
1b600 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 74 his->branches;.}.....public.stat
1b620 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 65 ic.function.supports(IOInterface
1b640 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 20 .$io,.$url,.$deep.=.false).{.if.
1b660 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a (!preg_match('#^((?:https?|git):
1b680 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 5c 2e 63 6f 6d 3a 29 //github\.com/|git@github\.com:)
1b6a0 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 27 2c 20 24 75 72 6c ([^/]+)/(.+?)(?:\.git)?$#',.$url
1b6c0 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 65 78 74 65 6e )).{.return.false;.}..if.(!exten
1b6e0 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 0a 69 66 20 28 24 69 sion_loaded('openssl')).{.if.($i
1b700 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 69 74 65 28 27 53 6b o->isVerbose()).{.$io->write('Sk
1b720 69 70 70 69 6e 67 20 47 69 74 48 75 62 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e ipping.GitHub.driver.for.'.$url.
1b740 27 20 62 65 63 61 75 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 '.because.the.OpenSSL.PHP.extens
1b760 69 6f 6e 20 69 73 20 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 ion.is.missing.');.}..return.fal
1b780 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 se;.}..return.true;.}.......prot
1b7a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 0a ected.function.generateSshUrl().
1b7c0 7b 0a 72 65 74 75 72 6e 20 27 67 69 74 40 67 69 74 68 75 62 2e 63 6f 6d 3a 27 2e 24 74 68 69 73 {.return.'git@github.com:'.$this
1b7e0 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 2e 27 2e ->owner.'/'.$this->repository.'.
1b800 67 69 74 27 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 git';.}.......protected.function
1b820 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 72 65 70 6f 44 61 .fetchRootIdentifier().{.$repoDa
1b840 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 62 2e 63 6f 6d 2f taUrl.=.'https://api.github.com/
1b860 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 74 68 69 73 2d 3e repos/'.$this->owner.'/'.$this->
1b880 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b repository;.$attemptCounter.=.0;
1b8a0 0a 77 68 69 6c 65 20 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 .while.(null.===.$this->rootIden
1b8c0 74 69 66 69 65 72 29 20 7b 0a 69 66 20 28 35 20 3d 3d 20 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 tifier).{.if.(5.==.$attemptCount
1b8e0 65 72 2b 2b 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 er++).{.throw.new.\RuntimeExcept
1b900 69 6f 6e 28 22 45 69 74 68 65 72 20 79 6f 75 20 68 61 76 65 20 65 6e 74 65 72 65 64 20 69 6e 76 ion("Either.you.have.entered.inv
1b920 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 20 6f 72 20 74 68 69 73 20 47 69 74 48 75 62 20 alid.credentials.or.this.GitHub.
1b940 72 65 70 6f 73 69 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 73 20 28 34 30 34 29 repository.does.not.exists.(404)
1b960 22 29 3b 0a 7d 0a 74 72 79 20 7b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 ");.}.try.{.$repoData.=.JsonFile
1b980 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($
1b9a0 72 65 70 6f 44 61 74 61 55 72 6c 29 2c 20 24 72 65 70 6f 44 61 74 61 55 72 6c 29 3b 0a 69 66 20 repoDataUrl),.$repoDataUrl);.if.
1b9c0 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
1b9e0 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.=.$
1ba00 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
1ba20 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
1ba40 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
1ba60 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'];.}
1ba80 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.=.
1baa0 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.=.!
1bac0 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']);.
1bae0 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 65 29 20 }.catch.(TransportException.$e).
1bb00 7b 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 63 61 73 65 20 {.switch.($e->getCode()).{.case.
1bb20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 401:.case.404:.$this->isPrivate.
1bb40 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
1bb60 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 24 74 68 69 73 2d 3e tDriver.=.new.GitDriver(.$this->
1bb80 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2c 0a 24 74 68 69 73 2d 3e 69 6f 2c 0a 24 74 68 generateSshUrl(),.$this->io,.$th
1bba0 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 0a 24 74 68 69 is->config,.$this->process,.$thi
1bbc0 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 3b 0a 24 74 68 69 73 2d 3e 67 69 s->remoteFilesystem.);.$this->gi
1bbe0 74 44 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 3b 0a tDriver->initialize();..return;.
1bc00 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b }.catch.(\RuntimeException.$e).{
1bc20 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 21 24 .$this->gitDriver.=.null;.if.(!$
1bc40 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
1bc60 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 65 64 20 74 6f 20 is->io->write('<error>Failed.to.
1bc80 63 6c 6f 6e 65 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 clone.the.'.$this->generateSshUr
1bca0 6c 28 29 2e 27 20 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 l().'.repository,.try.running.in
1bcc0 20 69 6e 74 65 72 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 .interactive.mode.so.that.you.ca
1bce0 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 75 73 65 72 6e 61 6d 65 20 61 6e 64 20 70 61 73 73 77 6f n.enter.your.username.and.passwo
1bd00 72 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 24 74 68 69 rd</error>');.throw.$e;.}.}.$thi
1bd20 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 s->io->write('Authentication.req
1bd40 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 uired.(<info>'.$this->url.'</inf
1bd60 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 o>):');.$username.=.$this->io->a
1bd80 73 6b 28 27 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 sk('Username:.');.$password.=.$t
1bda0 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 his->io->askAndHideAnswer('Passw
1bdc0 6f 72 64 3a 20 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 ord:.');.$this->io->setAuthoriza
1bde0 74 69 6f 6e 28 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 tion($this->originUrl,.$username
1be00 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 ,.$password);.break;..default:.t
1be20 68 72 6f 77 20 24 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a hrow.$e;.break;.}.}.}.}.}.<?php.
1be40 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
1be60 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 6e pository\Vcs;..use.Composer\Json
1be80 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 4f 5c 49 4f 49 6e 74 \JsonFile;.use.Composer\IO\IOInt
1bea0 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 erface;.....class.GitBitbucketDr
1bec0 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 iver.extends.VcsDriver.implement
1bee0 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 s.VcsDriverInterface.{.protected
1bf00 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;.
1bf20 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
1bf40 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;
1bf60 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();
1bf80 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(
1bfa0 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
1bfc0 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 27 2c 20 ket\.org/([^/]+)/(.+?)\.git$#',.
1bfe0 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 77 6e 65 $this->url,.$match);.$this->owne
1c000 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 6f 72 79 r.=.$match[1];.$this->repository
1c020 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 6c 20 3d .=.$match[2];.$this->originUrl.=
1c040 20 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 .'bitbucket.org';.}.....public.f
1c060 75 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 unction.getRootIdentifier().{.if
1c080 20 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 .(null.===.$this->rootIdentifier
1c0a0 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 68 65 6d 65 ).{.$resource.=.$this->getScheme
1c0c0 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 2e 30 2f 72 ()...'://api.bitbucket.org/1.0/r
1c0e0 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 2f 27 2e 24 epositories/'.$this->owner.'/'.$
1c100 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 this->repository;.$repoData.=.Js
1c120 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 74 onFile::parseJson($this->getCont
1c140 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 3b 0a 24 74 68 ents($resource),.$resource);.$th
1c160 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 is->rootIdentifier.=.!empty($rep
1c180 6f 44 61 74 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 29 20 3f 20 24 72 65 70 6f 44 61 74 oData['main_branch']).?.$repoDat
1c1a0 61 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 20 3a 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a a['main_branch'].:.'master';.}..
1c1c0 72 65 74 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 return.$this->rootIdentifier;.}.
1c1e0 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 0a 7b 0a 72 ....public.function.getUrl().{.r
1c200 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 69 63 20 66 eturn.$this->url;.}.....public.f
1c220 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 72 29 0a 7b unction.getSource($identifier).{
1c240 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 74 69 66 69 .$label.=.array_search($identifi
1c260 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 65 6e 74 69 er,.$this->getTags()).?:.$identi
1c280 66 69 65 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 67 fier;..return.array('type'.=>.'g
1c2a0 69 74 27 2c 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 it',.'url'.=>.$this->getUrl(),.'
1c2c0 72 65 66 65 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 reference'.=>.$label);.}.....pub
1c2e0 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 65 72 lic.function.getDist($identifier
1c300 29 0a 7b 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 74 ).{.$label.=.array_search($ident
1c320 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 65 ifier,.$this->getTags()).?:.$ide
1c340 6e 74 69 66 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 ntifier;.$url.=.$this->getScheme
1c360 28 29 20 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 ()...'://bitbucket.org/'.$this->
1c380 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 2e 27 2f 67 65 owner.'/'.$this->repository.'/ge
1c3a0 74 2f 27 2e 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 t/'.$label.'.zip';..return.array
1c3c0 28 27 74 79 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 ('type'.=>.'zip',.'url'.=>.$url,
1c3e0 20 27 72 65 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 .'reference'.=>.$label,.'shasum'
1c400 20 3d 3e 20 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 .=>.'');.}.....public.function.g
1c420 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
1c440 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 65 r).{.if.(!isset($this->infoCache
1c460 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 24 74 [$identifier])).{.$resource.=.$t
1c480 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 74 his->getScheme()...'://bitbucket
1c4a0 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 72 .org/'.$this->owner.'/'.$this->r
1c4c0 65 70 6f 73 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 epository.'/raw/'.$identifier.'/
1c4e0 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 74 68 69 composer.json';.$composer.=.$thi
1c500 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 69 66 20 28 21 s->getContents($resource);.if.(!
1c520 24 63 6f 6d 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 $composer).{.return;.}..$compose
1c540 72 20 3d 20 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 r.=.JsonFile::parseJson($compose
1c560 72 2c 20 24 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 r,.$resource);..if.(!isset($comp
1c580 6f 73 65 72 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 oser['time'])).{.$resource.=.$th
1c5a0 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 75 63 is->getScheme()...'://api.bitbuc
1c5c0 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 69 73 ket.org/1.0/repositories/'.$this
1c5e0 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 2e 27 2f ->owner.'/'.$this->repository.'/
1c600 63 68 61 6e 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 changesets/'.$identifier;.$chang
1c620 65 73 65 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 eset.=.JsonFile::parseJson($this
1c640 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
1c660 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 68 61 6e 67 rce);.$composer['time'].=.$chang
1c680 65 73 65 74 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 eset['timestamp'];.}.$this->info
1c6a0 43 61 63 68 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 Cache[$identifier].=.$composer;.
1c6c0 7d 0a 0a 72 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 }..return.$this->infoCache[$iden
1c6e0 74 69 66 69 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 tifier];.}.....public.function.g
1c700 65 74 54 61 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 etTags().{.if.(null.===.$this->t
1c720 61 67 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 68 ags).{.$resource.=.$this->getSch
1c740 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 2e eme()...'://api.bitbucket.org/1.
1c760 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 2f 0/repositories/'.$this->owner.'/
1c780 27 2e 24 74 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 '.$this->repository.'/tags';.$ta
1c7a0 67 73 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 28 24 74 68 gsData.=.JsonFile::parseJson($th
1c7c0 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 24 72 65 73 is->getContents($resource),.$res
1c7e0 6f 75 72 63 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 ource);.$this->tags.=.array();.f
1c800 6f 72 65 61 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 oreach.($tagsData.as.$tag.=>.$da
1c820 74 61 29 20 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 ta).{.$this->tags[$tag].=.$data[
1c840 27 72 61 77 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 'raw_node'];.}.}..return.$this->
1c860 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 42 tags;.}.....public.function.getB
1c880 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 3e ranches().{.if.(null.===.$this->
1c8a0 62 72 61 6e 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 branches).{.$resource.=.$this->g
1c8c0 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 6f etScheme()...'://api.bitbucket.o
1c8e0 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 6e rg/1.0/repositories/'.$this->own
1c900 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 62 72 61 6e 63 er.'/'.$this->repository.'/branc
1c920 68 65 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 hes';.$branchData.=.JsonFile::pa
1c940 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 73 6f rseJson($this->getContents($reso
1c960 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 62 72 61 6e 63 68 urce),.$resource);.$this->branch
1c980 65 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 es.=.array();.foreach.($branchDa
1c9a0 74 61 20 61 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 ta.as.$branch.=>.$data).{.$this-
1c9c0 3e 62 72 61 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 >branches[$branch].=.$data['raw_
1c9e0 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 62 72 61 6e 63 node'];.}.}..return.$this->branc
1ca00 68 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 hes;.}.....public.static.functio
1ca20 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 6f 2c 20 24 75 72 6c n.supports(IOInterface.$io,.$url
1ca40 2c 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 ,.$deep.=.false).{.if.(!preg_mat
1ca60 63 68 28 27 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 ch('#^https://bitbucket\.org/([^
1ca80 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 /]+)/(.+?)\.git$#',.$url)).{.ret
1caa0 75 72 6e 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 urn.false;.}..if.(!extension_loa
1cac0 64 65 64 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 ded('openssl')).{.if.($io->isVer
1cae0 62 6f 73 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 42 bose()).{.$io->write('Skipping.B
1cb00 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 itbucket.git.driver.for.'.$url.'
1cb20 20 62 65 63 61 75 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 .because.the.OpenSSL.PHP.extensi
1cb40 6f 6e 20 69 73 20 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 on.is.missing.');.}..return.fals
1cb60 65 3b 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 70 0a 0a 0a 0a e;.}..return.true;.}.}.<?php....
1cb80 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 73 ........namespace.Composer\Repos
1cba0 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 4a 73 itory\Vcs;..use.Composer\Json\Js
1cbc0 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 6f 63 65 73 onFile;.use.Composer\Util\Proces
1cbe0 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 5c 46 69 6c sExecutor;.use.Composer\Util\Fil
1cc00 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 6e 74 65 72 esystem;.use.Composer\IO\IOInter
1cc20 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 face;.....class.GitDriver.extend
1cc40 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 3b 0a 70 s.VcsDriver.{.protected.$tags;.p
1cc60 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 72 rotected.$branches;.protected.$r
1cc80 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 6f 44 69 ootIdentifier;.protected.$repoDi
1cca0 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 61 79 28 r;.protected.$infoCache.=.array(
1ccc0 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 6c 69 7a );.....public.function.initializ
1cce0 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 24 74 68 e().{.if.(static::isLocalUrl($th
1cd00 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 73 74 72 is->url)).{.$this->repoDir.=.str
1cd20 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 2d 3e 75 _replace('file://',.'',.$this->u
1cd40 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 rl);.}.else.{.$this->repoDir.=.$
1cd60 74 68 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 this->config->get('home')...'/ca
1cd80 63 68 65 2e 67 69 74 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 che.git/'...preg_replace('{[^a-z
1cda0 30 2d 39 2e 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 0-9.]}i',.'-',.$this->url)...'/'
1cdc0 3b 0a 0a 0a 20 69 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 ;....if.(is_dir($this->repoDir).
1cde0 26 26 20 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 &&.0.===.$this->process->execute
1ce00 28 27 67 69 74 20 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 ('git.remote',.$output,.$this->r
1ce20 65 70 6f 44 69 72 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 epoDir)).{.if.(0.!==.$this->proc
1ce40 65 73 73 2d 3e 65 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 ess->execute('git.remote.update.
1ce60 2d 2d 70 72 75 6e 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 --prune.origin',.$output,.$this-
1ce80 3e 72 65 70 6f 44 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 >repoDir)).{.$this->io->write('<
1cea0 65 72 72 6f 72 3e 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 error>Failed.to.update.'.$this->
1cec0 75 72 6c 2e 27 2c 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 url.',.package.information.from.
1cee0 74 68 69 73 20 72 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 this.repository.may.be.outdated.
1cf00 28 27 2e 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 ('.$this->process->getErrorOutpu
1cf20 74 28 29 2e 27 29 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 t().')</error>');.}.}.else.{...$
1cf40 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 72 65 6d 6f fs.=.new.Filesystem();.$fs->remo
1cf60 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 0a 20 veDirectory($this->repoDir);....
1cf80 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 6f 6d putenv('GIT_ASKPASS=echo');.$com
1cfa0 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 72 72 mand.=.sprintf('git.clone.--mirr
1cfc0 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 73 2d or.%s.%s',.escapeshellarg($this-
1cfe0 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 65 70 >url),.escapeshellarg($this->rep
1d000 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 73 73 oDir));.if.(0.!==.$this->process
1d020 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 7b 0a ->execute($command,.$output)).{.
1d040 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 72 72 $output.=.$this->process->getErr
1d060 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 70 72 orOutput();..if.(0.!==.$this->pr
1d080 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 2c 20 ocess->execute('git.--version',.
1d0a0 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 52 75 $ignoredOutput)).{.throw.new.\Ru
1d0c0 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 65 20 ntimeException('Failed.to.clone.
1d0e0 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 75 6e '.$this->url.',.git.was.not.foun
1d100 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 61 6e d,.check.that.it.is.installed.an
1d120 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 2e 20 d.in.your.PATH.env.'..."\n\n"...
1d140 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 28 29 $this->process->getErrorOutput()
1d160 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 69 6f );.}..throw.new.\RuntimeExceptio
1d180 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 6c 2e n('Failed.to.clone.'.$this->url.
1d1a0 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 6d 20 ',.could.not.read.packages.from.
1d1c0 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 0a 24 it'..."\n\n"..$output);.}.}.}..$
1d1e0 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 6e 63 this->getTags();.$this->getBranc
1d200 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 65 74 hes();.}.....public.function.get
1d220 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 3d 20 RootIdentifier().{.if.(null.===.
1d240 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 2d 3e $this->rootIdentifier).{.$this->
1d260 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 24 74 rootIdentifier.=.'master';....$t
1d280 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 6e 63 his->process->execute('git.branc
1d2a0 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 3e 72 h.--no-color',.$output,.$this->r
1d2c0 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 6f 63 epoDir);.$branches.=.$this->proc
1d2e0 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 21 69 ess->splitLines($output);.if.(!i
1d300 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 29 20 n_array('*.master',.$branches)).
1d320 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 68 29 {.foreach.($branches.as.$branch)
1d340 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 7b 5e .{.if.($branch.&&.preg_match('{^
1d360 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 20 7b \*.+(\S+)}',.$branch,.$match)).{
1d380 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 68 5b .$this->rootIdentifier.=.$match[
1d3a0 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 69 73 1];.break;.}.}.}.}..return.$this
1d3c0 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 20 66 ->rootIdentifier;.}.....public.f
1d3e0 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 73 2d unction.getUrl().{.return.$this-
1d400 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 74 53 >url;.}.....public.function.getS
1d420 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 61 72 ource($identifier).{.$label.=.ar
1d440 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 29 20 ray_search($identifier,.(array).
1d460 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 72 65 $this->tags).?:.$identifier;..re
1d480 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 72 6c turn.array('type'.=>.'git',.'url
1d4a0 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 63 65 '.=>.$this->getUrl(),.'reference
1d4c0 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 74 '.=>.$label);.}.....public.funct
1d4e0 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 75 72 ion.getDist($identifier).{.retur
1d500 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 67 65 n.null;.}.....public.function.ge
1d520 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 72 tComposerInformation($identifier
1d540 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 65 5b ).{.if.(!isset($this->infoCache[
1d560 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 70 72 $identifier])).{.$resource.=.spr
1d580 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 65 73 intf('%s:composer.json',.escapes
1d5a0 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 70 72 hellarg($identifier));.$this->pr
1d5c0 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 6f 77 ocess->execute(sprintf('git.show
1d5e0 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 74 68 .%s',.$resource),.$composer,.$th
1d600 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 6f 73 is->repoDir);..if.(!trim($compos
1d620 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 4a 73 er)).{.return;.}..$composer.=.Js
1d640 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 72 65 onFile::parseJson($composer,.$re
1d660 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 5b 27 source);..if.(!isset($composer['
1d680 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 63 75 time'])).{.$this->process->execu
1d6a0 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 74 3d te(sprintf('git.log.-1.--format=
1d6c0 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 74 69 %%at.%s',.escapeshellarg($identi
1d6e0 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 72 29 fier)),.$output,.$this->repoDir)
1d700 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 69 6d ;.$date.=.new.\DateTime('@'.trim
1d720 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 3d 20 ($output));.$composer['time'].=.
1d740 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 7d 0a $date->format('Y-m-d.H:i:s');.}.
1d760 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 3d 20 $this->infoCache[$identifier].=.
1d780 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 66 6f $composer;.}..return.$this->info
1d7a0 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 69 63 Cache[$identifier];.}.....public
1d7c0 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 20 3d .function.getTags().{.if.(null.=
1d7e0 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 73 73 ==.$this->tags).{.$this->process
1d800 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 24 74 ->execute('git.tag',.$output,.$t
1d820 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 2d 3e his->repoDir);.$output.=.$this->
1d840 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 24 74 process->splitLines($output);.$t
1d860 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 6d 62 his->tags.=.$output.?.array_comb
1d880 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 29 3b ine($output,.$output).:.array();
1d8a0 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 70 75 .}..return.$this->tags;.}.....pu
1d8c0 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 69 66 blic.function.getBranches().{.if
1d8e0 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 24 62 .(null.===.$this->branches).{.$b
1d900 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 63 65 ranches.=.array();..$this->proce
1d920 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
1d940 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 74 68 or.--no-abbrev.-v',.$output,.$th
1d960 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 70 72 is->repoDir);.foreach.($this->pr
1d980 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 24 62 ocess->splitLines($output).as.$b
1d9a0 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 6d 61 ranch).{.if.($branch.&&.!preg_ma
1d9c0 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 68 29 tch('{^.*[^/]+/HEAD.}',.$branch)
1d9e0 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 20 2a ).{.if.(preg_match('{^(?:\*.)?.*
1da00 28 3f 3a 5b 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 (?:[^/.]+?/)?(\S+).*([a-f0-9]+).
1da20 2e 2a 24 7d 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 .*$}',.$branch,.$match)).{.$bran
1da40 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 7d 0a 7d ches[$match[1]].=.$match[2];.}.}
1da60 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b .}..$this->branches.=.$branches;
1da80 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 0a 7d 0a 0a 0a .}..return.$this->branches;.}...
1daa0 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 70 70 6f 72 74 ..public.static.function.support
1dac0 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 65 65 70 20 3d s(IOInterface.$io,.$url,.$deep.=
1dae0 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 67 69 74 .false).{.if.(preg_match('#(^git
1db00 3a 2f 2f 7c 5c 2e 67 69 74 24 7c 67 69 74 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 74 68 75 62 ://|\.git$|git@|//git\.|//github
1db20 2e 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 .com/)#i',.$url)).{.return.true;
1db40 0a 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 .}....if.(static::isLocalUrl($ur
1db60 6c 29 29 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 l)).{.$process.=.new.ProcessExec
1db80 75 74 6f 72 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 utor();.$url.=.str_replace('file
1dba0 3a 2f 2f 27 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d ://',.'',.$url);...if.($process-
1dbc0 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 24 75 72 >execute('git.tag',.$output,.$ur
1dbe0 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 l).===.0).{.return.true;.}.}..if
1dc00 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 72 .(!$deep).{.return.false;.}....r
1dc20 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eturn.false;.}.}.<?php..........
1dc40 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 5c ..namespace.Composer\Repository\
1dc60 56 63 73 3b 0a 0a 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 Vcs;..use.Composer\Cache;.use.Co
1dc80 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
1dca0 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 6d er\Util\ProcessExecutor;.use.Com
1dcc0 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
1dce0 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d ser\Util\Svn.as.SvnUtil;.use.Com
1dd00 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 73 poser\IO\IOInterface;.use.Compos
1dd20 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
1dd40 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 ;......class.SvnDriver.extends.V
1dd60 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f csDriver.{.protected.$cache;.pro
1dd80 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 74 61 67 73 tected.$baseUrl;.protected.$tags
1dda0 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
1ddc0 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 .$infoCache.=.array();.....priva
1dde0 74 65 20 24 75 74 69 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e te.$util;.....public.function.in
1de00 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 74 68 69 73 2d itialize().{.$this->url.=.$this-
1de20 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 >baseUrl.=.rtrim(self::normalize
1de40 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 66 61 6c 73 Url($this->url),.'/');..if.(fals
1de60 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 74 68 69 73 2d 3e 75 72 6c e.!==.($pos.=.strrpos($this->url
1de80 2c 20 27 2f 74 72 75 6e 6b 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d ,.'/trunk'))).{.$this->baseUrl.=
1dea0 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a .substr($this->url,.0,.$pos);.}.
1dec0 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d .$this->cache.=.new.Cache($this-
1dee0 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e >io,.$this->config->get('home').
1df00 27 2f 63 61 63 68 65 2e 73 76 6e 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 '/cache.svn/'.preg_replace('{[^a
1df20 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 -z0-9.]}i',.'-',.$this->baseUrl)
1df40 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 24 74 68 69 73 2d );..$this->getBranches();.$this-
1df60 3e 67 65 74 54 61 67 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 >getTags();.}.....public.functio
1df80 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 n.getRootIdentifier().{.return.'
1dfa0 74 72 75 6e 6b 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 67 65 trunk';.}.....public.function.ge
1dfc0 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 0a 7d 0a 0a 0a tUrl().{.return.$this->url;.}...
1dfe0 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 28 24 69 64 65 ..public.function.getSource($ide
1e000 6e 74 69 66 69 65 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 ntifier).{.return.array('type'.=
1e020 3e 20 27 73 76 6e 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 >.'svn',.'url'.=>.$this->baseUrl
1e040 2c 20 27 72 65 66 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 ,.'reference'.=>.$identifier);.}
1e060 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 28 24 69 64 .....public.function.getDist($id
1e080 65 6e 74 69 66 69 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 entifier).{.return.null;.}.....p
1e0a0 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 72 6d ublic.function.getComposerInform
1e0c0 61 74 69 6f 6e 28 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 ation($identifier).{.$identifier
1e0e0 20 3d 20 27 2f 27 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 .=.'/'...trim($identifier,.'/').
1e100 2e 20 27 2f 27 3b 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 ..'/';..if.($res.=.$this->cache-
1e120 3e 72 65 61 64 28 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 >read($identifier.'.json')).{.$t
1e140 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 3d 20 4a 73 his->infoCache[$identifier].=.Js
1e160 6f 6e 46 69 6c 65 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 onFile::parseJson($res);.}..if.(
1e180 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 65 6e 74 69 66 !isset($this->infoCache[$identif
1e1a0 69 65 72 5d 29 29 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 ier])).{.preg_match('{^(.+?)(@\d
1e1c0 2b 29 3f 2f 24 7d 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 +)?/$}',.$identifier,.$match);.i
1e1e0 66 20 28 21 65 6d 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 f.(!empty($match[2])).{.$path.=.
1e200 24 6d 61 74 63 68 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 $match[1];.$rev.=.$match[2];.}.e
1e220 6c 73 65 20 7b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 lse.{.$rev.=.'';.}..try.{.$resou
1e240 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 rce.=.$path.'composer.json';.$ou
1e260 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 63 61 74 27 2c tput.=.$this->execute('svn.cat',
1e280 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 .$this->baseUrl...$resource...$r
1e2a0 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 ev);.if.(!trim($output)).{.retur
1e2c0 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 n;.}.}.catch.(\RuntimeException.
1e2e0 24 65 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 63 65 70 74 69 $e).{.throw.new.TransportExcepti
1e300 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 on($e->getMessage());.}..$compos
1e320 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 er.=.JsonFile::parseJson($output
1e340 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 ,.$this->baseUrl...$resource...$
1e360 72 65 76 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 rev);..if.(!isset($composer['tim
1e380 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 e'])).{.$output.=.$this->execute
1e3a0 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 70 ('svn.info',.$this->baseUrl...$p
1e3c0 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f ath...$rev);.foreach.($this->pro
1e3e0 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 24 6c 69 cess->splitLines($output).as.$li
1e400 6e 65 29 20 7b 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 ne).{.if.($line.&&.preg_match('{
1e420 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 65 3a 20 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 ^Last.Changed.Date:.([^(]+)}',.$
1e440 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 line,.$match)).{.$date.=.new.\Da
1e460 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 teTime($match[1]);.$composer['ti
1e480 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:
1e4a0 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d s');.break;.}.}.}..$this->cache-
1e4c0 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e >write($identifier.'.json',.json
1e4e0 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f _encode($composer));.$this->info
1e500 43 61 63 68 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 Cache[$identifier].=.$composer;.
1e520 7d 0a 0a 72 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 }..return.$this->infoCache[$iden
1e540 74 69 66 69 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 tifier];.}.....public.function.g
1e560 65 74 54 61 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 etTags().{.if.(null.===.$this->t
1e580 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 ags).{.$this->tags.=.array();..$
1e5a0 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 output.=.$this->execute('svn.ls.
1e5c0 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 74 --verbose',.$this->baseUrl...'/t
1e5e0 61 67 73 27 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 ags');.if.($output).{.foreach.($
1e600 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 75 74 70 75 this->process->splitLines($outpu
1e620 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 6d 28 24 6c 69 6e t).as.$line).{.$line.=.trim($lin
1e640 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 27 7b 5e 5c e);.if.($line.&&.preg_match('{^\
1e660 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 2c 20 24 6d s*(\S+).*?(\S+)\s*$}',.$line,.$m
1e680 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 29 20 26 26 atch)).{.if.(isset($match[1]).&&
1e6a0 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 32 5d 20 21 .isset($match[2]).&&.$match[2].!
1e6c0 3d 3d 20 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 ==.'./').{.$this->tags[rtrim($ma
1e6e0 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 27 2f 74 61 67 73 2f 27 2e 24 6d 61 74 63 68 5b tch[2],.'/')].=.'/tags/'.$match[
1e700 32 5d 2e 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 2].'@'.$match[1];.}.}.}.}.}..ret
1e720 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 63 20 66 75 urn.$this->tags;.}.....public.fu
1e740 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 75 6c 6c 20 nction.getBranches().{.if.(null.
1e760 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 ===.$this->branches).{.$this->br
1e780 61 6e 63 68 65 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 anches.=.array();..$output.=.$th
1e7a0 69 73 2d 3e 65 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 is->execute('svn.ls.--verbose',.
1e7c0 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 29 3b 0a 69 66 20 28 24 6f 75 74 70 $this->baseUrl...'/');.if.($outp
1e7e0 75 74 29 20 7b 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 73 ut).{.foreach.($this->process->s
1e800 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 plitLines($output).as.$line).{.$
1e820 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 line.=.trim($line);.if.($line.&&
1e840 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c .preg_match('{^\s*(\S+).*?(\S+)\
1e860 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 s*$}',.$line,.$match)).{.if.(iss
1e880 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d et($match[1]).&&.isset($match[2]
1e8a0 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 27 74 72 75 6e 6b 2f 27 29 20 7b 0a 24 ).&&.$match[2].===.'trunk/').{.$
1e8c0 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 20 3d 20 27 2f 74 72 75 6e this->branches['trunk'].=.'/trun
1e8e0 6b 2f 40 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 k/@'.$match[1];.break;.}.}.}.}.u
1e900 6e 73 65 74 28 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 nset($output);..$output.=.$this-
1e920 3e 65 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 >execute('svn.ls.--verbose',.$th
1e940 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 62 72 61 6e 63 68 65 73 27 29 3b 0a 69 66 20 28 is->baseUrl...'/branches');.if.(
1e960 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 $output).{.foreach.($this->proce
1e980 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 ss->splitLines(trim($output)).as
1e9a0 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 0a 69 .$line).{.$line.=.trim($line);.i
1e9c0 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 5c 53 f.($line.&&.preg_match('{^\s*(\S
1e9e0 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 68 29 +).*?(\S+)\s*$}',.$line,.$match)
1ea00 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 73 65 ).{.if.(isset($match[1]).&&.isse
1ea20 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 27 2e t($match[2]).&&.$match[2].!==.'.
1ea40 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 /').{.$this->branches[rtrim($mat
1ea60 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 27 2f 62 72 61 6e 63 68 65 73 2f 27 2e 24 6d 61 74 ch[2],.'/')].=.'/branches/'.$mat
1ea80 63 68 5b 32 5d 2e 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a ch[2].'@'.$match[1];.}.}.}.}.}..
1eaa0 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 70 75 return.$this->branches;.}.....pu
1eac0 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 49 4f blic.static.function.supports(IO
1eae0 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 61 6c Interface.$io,.$url,.$deep.=.fal
1eb00 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 6c 28 se).{.$url.=.self::normalizeUrl(
1eb20 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 2f 2f $url);.if.(preg_match('#(^svn://
1eb40 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 29 20 |^svn\+ssh://|svn\.)#i',.$url)).
1eb60 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 20 26 {.return.true;.}....if.(!$deep.&
1eb80 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 0a 72 &.!static::isLocalUrl($url)).{.r
1eba0 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 6f 72 eturn.false;.}..$processExecutor
1ebc0 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 69 74 .=.new.ProcessExecutor();..$exit
1ebe0 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 22 73 .=.$processExecutor->execute(."s
1ec00 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 6c 7d vn.info.--non-interactive.{$url}
1ec20 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 74 20 ",.$ignoredOutput.);..if.($exit.
1ec40 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 28 66 ===.0).{...return.true;.}..if.(f
1ec60 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 74 6f alse.!==.stripos($processExecuto
1ec80 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 61 74 r->getErrorOutput(),.'authorizat
1eca0 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 75 65 ion.failed:')).{.....return.true
1ecc0 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 72 6f ;.}..return.false;.}.........pro
1ece0 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 7a 65 tected.static.function.normalize
1ed00 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 65 6d Url($url).{.$fs.=.new.Filesystem
1ed20 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 72 6c ();.if.($fs->isAbsolutePath($url
1ed40 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 24 75 )).{.return.'file://'...strtr($u
1ed60 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 3b 0a rl,.'\\',.'/');.}..return.$url;.
1ed80 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 65 }...........protected.function.e
1eda0 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 75 6c xecute($command,.$url).{.if.(nul
1edc0 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 69 6c l.===.$this->util).{.$this->util
1ede0 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 20 24 .=.new.SvnUtil($this->baseUrl,.$
1ee00 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 74 72 this->io,.$this->process);.}..tr
1ee20 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 65 28 y.{.return.$this->util->execute(
1ee40 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 74 69 $command,.$url);.}.catch.(\Runti
1ee60 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 52 75 6e meException.$e).{.throw.new.\Run
1ee80 74 69 6d 65 45 78 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 timeException(.'Repository.'.$th
1eea0 69 73 2d 3e 75 72 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 is->url.'.could.not.be.processed
1eec0 2c 20 27 2e 24 65 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 ,.'.$e->getMessage().);.}.}.}.<?
1eee0 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
1ef00 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 65 72 5c r\Repository\Vcs;..use.Composer\
1ef20 49 4f 5c 49 4f 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 56 63 IO\IOInterface;.....interface.Vc
1ef40 73 44 72 69 76 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 sDriverInterface.{....public.fun
1ef60 63 74 69 6f 6e 20 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 ction.initialize();........publi
1ef80 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 74 69 6f c.function.getComposerInformatio
1efa0 6e 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 66 75 6e n($identifier);.......public.fun
1efc0 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 3b 0a 0a 0a 0a 0a 0a ction.getRootIdentifier();......
1efe0 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 3b 0a .public.function.getBranches();.
1f000 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 67 73 28 29 3b ......public.function.getTags();
1f020 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 69 73 74 28 24 69 ......public.function.getDist($i
1f040 64 65 6e 74 69 66 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 dentifier);......public.function
1f060 20 67 65 74 53 6f 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 .getSource($identifier);.......p
1f080 75 62 6c 69 63 20 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 ublic.function.getUrl();........
1f0a0 0a 70 75 62 6c 69 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 .public.function.hasComposerFile
1f0c0 28 24 69 64 65 6e 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 ($identifier);..........public.s
1f0e0 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 72 66 tatic.function.supports(IOInterf
1f100 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 3b 0a 7d ace.$io,.$url,.$deep.=.false);.}
1f120 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
1f140 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
1f160 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 65 72 5c 55 er\Json\JsonFile;.use.Composer\U
1f180 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 6d 70 6f 73 65 til\ProcessExecutor;.use.Compose
1f1a0 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 48 67 44 72 r\IO\IOInterface;.....class.HgDr
1f1c0 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 74 65 63 74 iver.extends.VcsDriver.{.protect
1f1e0 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 73 3b 0a 70 ed.$tags;.protected.$branches;.p
1f200 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 6f 74 65 63 rotected.$rootIdentifier;.protec
1f220 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 0a 0a 0a 0a 0a 70 75 ted.$infoCache.=.array();.....pu
1f240 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 29 0a 7b 0a 24 74 68 blic.function.initialize().{.$th
1f260 69 73 2d 3e 74 6d 70 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 is->tmpDir.=.$this->config->get(
1f280 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 61 63 68 65 2e 68 67 2f 27 20 2e 20 70 72 65 67 5f 72 65 'home')...'/cache.hg/'...preg_re
1f2a0 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 place('{[^a-z0-9]}i',.'-',.$this
1f2c0 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d ->url)...'/';..if.(is_dir($this-
1f2e0 3e 74 6d 70 44 69 72 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 >tmpDir)).{.$this->process->exec
1f300 75 74 65 28 73 70 72 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 70 75 6c 6c 20 2d 75 ute(sprintf('cd.%s.&&.hg.pull.-u
1f320 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 ',.escapeshellarg($this->tmpDir)
1f340 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 3d 20 64 69 72 ),.$output);.}.else.{.$dir.=.dir
1f360 6e 61 6d 65 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 name($this->tmpDir);.if.(!is_dir
1f380 28 24 64 69 72 29 29 20 7b 0a 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 65 ($dir)).{.mkdir($dir,.0777,.true
1f3a0 29 3b 0a 7d 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 );.}.$this->process->execute(spr
1f3c0 69 6e 74 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c 20 intf('cd.%s.&&.hg.clone.%s.%s',.
1f3e0 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 64 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c escapeshellarg($dir),.escapeshel
1f400 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 72 67 larg($this->url),.escapeshellarg
1f420 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 ($this->tmpDir)),.$output);.}..$
1f440 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 6e 63 this->getTags();.$this->getBranc
1f460 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 65 74 hes();.}.....public.function.get
1f480 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 24 74 6d 70 44 69 72 20 3d 20 65 73 63 RootIdentifier().{.$tmpDir.=.esc
1f4a0 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 3b 0a 69 66 20 28 apeshellarg($this->tmpDir);.if.(
1f4c0 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 20 null.===.$this->rootIdentifier).
1f4e0 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 74 {.$this->process->execute(sprint
1f500 66 28 27 63 64 20 25 73 20 26 26 20 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b f('cd.%s.&&.hg.tip.--template."{
1f520 6e 6f 64 65 7d 22 27 2c 20 24 74 6d 70 44 69 72 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 6f 75 node}"',.$tmpDir),.$output);.$ou
1f540 74 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 tput.=.$this->process->splitLine
1f560 73 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 s($output);.$this->rootIdentifie
1f580 72 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 r.=.$output[0];.}..return.$this-
1f5a0 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 20 66 75 >rootIdentifier;.}.....public.fu
1f5c0 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 73 2d 3e nction.getUrl().{.return.$this->
1f5e0 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 74 53 6f url;.}.....public.function.getSo
1f600 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 61 72 72 urce($identifier).{.$label.=.arr
1f620 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 29 20 24 ay_search($identifier,.(array).$
1f640 74 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 this->tags).?.:.$identifier;..re
1f660 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 20 27 75 72 6c 27 turn.array('type'.=>.'hg',.'url'
1f680 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 63 65 27 .=>.$this->getUrl(),.'reference'
1f6a0 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 74 69 .=>.$label);.}.....public.functi
1f6c0 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 75 72 6e on.getDist($identifier).{.return
1f6e0 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 67 65 74 .null;.}.....public.function.get
1f700 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 72 29 ComposerInformation($identifier)
1f720 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 65 5b 24 .{.if.(!isset($this->infoCache[$
1f740 69 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 identifier])).{.$this->process->
1f760 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 68 67 20 63 61 74 execute(sprintf('cd.%s.&&.hg.cat
1f780 20 2d 72 20 25 73 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 65 73 63 61 70 65 73 68 65 .-r.%s.composer.json',.escapeshe
1f7a0 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c llarg($this->tmpDir),.escapeshel
1f7c0 6c 61 72 67 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a larg($identifier)),.$composer);.
1f7e0 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 72 65 74 75 72 6e 3b .if.(!trim($composer)).{.return;
1f800 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 73 65 4a .}..$composer.=.JsonFile::parseJ
1f820 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 72 29 3b 0a 0a 69 66 son($composer,.$identifier);..if
1f840 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 24 .(!isset($composer['time'])).{.$
1f860 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 74 66 28 27 this->process->execute(sprintf('
1f880 63 64 20 25 73 20 26 26 20 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 cd.%s.&&.hg.log.--template."{dat
1f8a0 65 7c 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 e|rfc822date}".-r.%s',.escapeshe
1f8c0 6c 6c 61 72 67 28 24 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 2c 20 65 73 63 61 70 65 73 68 65 6c llarg($this->tmpDir),.escapeshel
1f8e0 6c 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 29 3b 0a 24 64 larg($identifier)),.$output);.$d
1f900 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 ate.=.new.\DateTime(trim($output
1f920 29 29 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 ));.$composer['time'].=.$date->f
1f940 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 ormat('Y-m-d.H:i:s');.}.$this->i
1f960 6e 66 6f 43 61 63 68 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 nfoCache[$identifier].=.$compose
1f980 72 3b 0a 7d 0a 0a 72 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 r;.}..return.$this->infoCache[$i
1f9a0 64 65 6e 74 69 66 69 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 dentifier];.}.....public.functio
1f9c0 6e 20 67 65 74 54 61 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 n.getTags().{.if.(null.===.$this
1f9e0 2d 3e 74 61 67 73 29 20 7b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 ->tags).{.$tags.=.array();..$thi
1fa00 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 74 66 28 27 63 64 20 s->process->execute(sprintf('cd.
1fa20 25 73 20 26 26 20 68 67 20 74 61 67 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 %s.&&.hg.tags',.escapeshellarg($
1fa40 74 68 69 73 2d 3e 74 6d 70 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 66 6f 72 65 61 63 this->tmpDir)),.$output);.foreac
1fa60 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
1fa80 75 74 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 utput).as.$tag).{.if.($tag.&&.pr
1faa0 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 3a 28 2e 2a 29 24 eg_match('(^([^\s]+)\s+\d+:(.*)$
1fac0 29 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 )',.$tag,.$match)).{.$tags[$matc
1fae0 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 h[1]].=.$match[2];.}.}.unset($ta
1fb00 67 73 5b 27 74 69 70 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 gs['tip']);..$this->tags.=.$tags
1fb20 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 70 ;.}..return.$this->tags;.}.....p
1fb40 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 69 ublic.function.getBranches().{.i
1fb60 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 24 f.(null.===.$this->branches).{.$
1fb80 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 63 branches.=.array();..$this->proc
1fba0 65 73 73 2d 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 68 ess->execute(sprintf('cd.%s.&&.h
1fbc0 67 20 62 72 61 6e 63 68 65 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 68 69 g.branches',.escapeshellarg($thi
1fbe0 73 2d 3e 74 6d 70 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 s->tmpDir)),.$output);.foreach.(
1fc00 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 75 74 70 $this->process->splitLines($outp
1fc20 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 20 26 26 ut).as.$branch).{.if.($branch.&&
1fc40 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 3a 28 2e .preg_match('(^([^\s]+)\s+\d+:(.
1fc60 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 72 61 6e *)$)',.$branch,.$match)).{.$bran
1fc80 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 7d 0a 7d ches[$match[1]].=.$match[2];.}.}
1fca0 0a 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d ..$this->branches.=.$branches;.}
1fcc0 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;.}.....
1fce0 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(
1fd00 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
1fd20 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 alse).{.if.(preg_match('#(^(?:ht
1fd40 74 70 73 3f 7c 73 73 68 29 3a 2f 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e tps?|ssh)://(?:[^@]@)?bitbucket.
1fd60 6f 72 67 7c 68 74 74 70 73 3a 2f 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 org|https://(?:.*?)\.kilnhg.com)
1fd80 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 7d 0a 0a 69 66 #i',.$url)).{.return.true;.}..if
1fda0 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 .(!$deep).{.return.false;.}..$pr
1fdc0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 ocessExecutor.=.new.ProcessExecu
1fde0 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d tor();.$exit.=.$processExecutor-
1fe00 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 68 67 20 69 64 >execute(sprintf('cd.%s.&&.hg.id
1fe20 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 73 79 73 5f 67 entify.%s',.escapeshellarg(sys_g
1fe40 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 et_temp_dir()),.escapeshellarg($
1fe60 75 72 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 url)),.$ignored);..return.$exit.
1fe80 3d 3d 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 ===.0;.}.}.<?php............name
1fea0 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 56 63 73 3b 0a 0a space.Composer\Repository\Vcs;..
1fec0 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 72 use.Composer\Downloader\Transpor
1fee0 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 43 6f 6e 66 69 67 3b tException;.use.Composer\Config;
1ff00 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 73 .use.Composer\IO\IOInterface;.us
1ff20 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 72 3b e.Composer\Util\ProcessExecutor;
1ff40 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 6c 65 73 79 73 .use.Composer\Util\RemoteFilesys
1ff60 74 65 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 tem;.......abstract.class.VcsDri
1ff80 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 61 63 ver.implements.VcsDriverInterfac
1ffa0 65 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 6f e.{.protected.$url;.protected.$o
1ffc0 72 69 67 69 6e 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 riginUrl;.protected.$io;.protect
1ffe0 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a ed.$config;.protected.$process;.
20000 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a protected.$remoteFilesystem;....
20020 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 .......final.public.function.__c
20040 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 65 20 24 69 6f 2c 20 onstruct($url,.IOInterface.$io,.
20060 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 72 20 Config.$config,.ProcessExecutor.
20080 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 $process.=.null,.$remoteFilesyst
200a0 65 6d 20 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 em.=.null).{.$this->url.=.$url;.
200c0 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 24 74 68 69 73 2d 3e $this->originUrl.=.$url;.$this->
200e0 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 69 io.=.$io;.$this->config.=.$confi
20100 67 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 3a 20 g;.$this->process.=.$process.?:.
20120 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f new.ProcessExecutor;.$this->remo
20140 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d teFilesystem.=.$remoteFilesystem
20160 20 3f 3a 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 3b 0a 7d .?:.new.RemoteFilesystem($io);.}
20180 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 .....public.function.hasComposer
201a0 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e File($identifier).{.try.{.return
201c0 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d .(bool).$this->getComposerInform
201e0 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 ation($identifier);.}.catch.(Tra
20200 6e 73 70 6f 72 74 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 nsportException.$e).{.}..return.
20220 66 61 6c 73 65 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 false;.}.........protected.funct
20240 69 6f 6e 20 67 65 74 53 63 68 65 6d 65 28 29 0a 7b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f ion.getScheme().{.if.(extension_
20260 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 loaded('openssl')).{.return.'htt
20280 70 73 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ps';.}..return.'http';.}........
202a0 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(
202c0 24 75 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 $url).{.return.$this->remoteFile
202e0 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 system->getContents($this->origi
20300 6e 55 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 nUrl,.$url,.false);.}..protected
20320 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c .static.function.isLocalUrl($url
20340 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e ).{.return.(bool).preg_match('{^
20360 28 66 69 6c 65 3a 2f 2f 7c 2f 7c 5b 61 2d 7a 5d 3a 5b 5c 5c 5c 5c 2f 5d 29 7d 69 27 2c 20 24 75 (file://|/|[a-z]:[\\\\/])}i',.$u
20380 72 6c 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 rl);.}.}.<?php............namesp
203a0 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
203c0 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
203e0 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
20400 20 48 67 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 72 .HgBitbucketDriver.extends.VcsDr
20420 69 76 65 72 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 iver.{.protected.$owner;.protect
20440 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 67 73 3b ed.$repository;.protected.$tags;
20460 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 20 .protected.$branches;.protected.
20480 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 69 6e 66 6f $rootIdentifier;.protected.$info
204a0 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 63 Cache.=.array();.....public.func
204c0 74 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 tion.initialize().{.preg_match('
204e0 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/([^/]+)
20500 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 /([^/]+)/?$#',.$this->url,.$matc
20520 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
20540 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
20560 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';
20580 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
205a0 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-
205c0 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.=.$
205e0 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
20600 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
20620 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 2e is->owner.'/'.$this->repository.
20640 27 2f 74 61 67 73 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 '/tags';.$repoData.=.JsonFile::p
20660 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 73 arseJson($this->getContents($res
20680 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 72 6f 6f 74 49 ource),.$resource);.$this->rootI
206a0 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 dentifier.=.$repoData['tip']['ra
206c0 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 w_node'];.}..return.$this->rootI
206e0 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 6f 6e dentifier;.}.....public.function
20700 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 0a 7d .getUrl().{.return.$this->url;.}
20720 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 28 24 .....public.function.getSource($
20740 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 65 61 identifier).{.$label.=.array_sea
20760 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 73 28 rch($identifier,.$this->getTags(
20780 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 61 79 )).?:.$identifier;..return.array
207a0 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d ('type'.=>.'hg',.'url'.=>.$this-
207c0 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 62 65 6c >getUrl(),.'reference'.=>.$label
207e0 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 69 73 74 );.}.....public.function.getDist
20800 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
20820 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
20840 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 74 68 69 s()).?:.$identifier;.$url.=.$thi
20860 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 74 2e 6f s->getScheme()...'://bitbucket.o
20880 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 72 65 70 rg/'.$this->owner.'/'.$this->rep
208a0 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 3b 0a 0a ository.'/get/'.$label.'.zip';..
208c0 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 20 27 75 return.array('type'.=>.'zip',.'u
208e0 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 6c 61 62 rl'.=>.$url,.'reference'.=>.$lab
20900 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 62 6c 69 el,.'shasum'.=>.'');.}.....publi
20920 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 74 69 6f c.function.getComposerInformatio
20940 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 74 68 69 n($identifier).{.if.(!isset($thi
20960 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 0a 24 72 s->infoCache[$identifier])).{.$r
20980 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 20 27 esource.=.$this->getScheme()...'
209a0 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 72 2e ://bitbucket.org/'.$this->owner.
209c0 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 2e 24 69 '/'.$this->repository.'/raw/'.$i
209e0 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 63 6f 6d dentifier.'/composer.json';.$com
20a00 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 65 73 6f poser.=.$this->getContents($reso
20a20 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 72 6e 3b urce);.if.(!$composer).{.return;
20a40 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 73 65 4a .}..$composer.=.JsonFile::parseJ
20a60 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 66 20 28 son($composer,.$resource);..if.(
20a80 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 24 72 65 !isset($composer['time'])).{.$re
20aa0 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 20 27 3a source.=.$this->getScheme()...':
20ac0 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 69 74 6f //api.bitbucket.org/1.0/reposito
20ae0 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 2d 3e 72 ries/'.$this->owner.'/'.$this->r
20b00 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 6e 74 69 epository.'/changesets/'.$identi
20b20 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 70 61 72 fier;.$changeset.=.JsonFile::par
20b40 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
20b60 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 74 69 6d rce),.$resource);.$composer['tim
20b80 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 3b 0a 7d e'].=.$changeset['timestamp'];.}
20ba0 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 3d .$this->infoCache[$identifier].=
20bc0 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 66 .$composer;.}..return.$this->inf
20be0 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 69 oCache[$identifier];.}.....publi
20c00 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 20 c.function.getTags().{.if.(null.
20c20 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 3d 20 24 ===.$this->tags).{.$resource.=.$
20c40 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
20c60 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
20c80 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 2e is->owner.'/'.$this->repository.
20ca0 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 3a 3a 70 '/tags';.$tagsData.=.JsonFile::p
20cc0 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 73 arseJson($this->getContents($res
20ce0 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 67 73 20 ource),.$resource);.$this->tags.
20d00 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 20 61 73 =.array();.foreach.($tagsData.as
20d20 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 5b 24 74 .$tag.=>.$data).{.$this->tags[$t
20d40 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 0a 72 65 ag].=.$data['raw_node'];.}.}..re
20d60 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 63 20 66 turn.$this->tags;.}.....public.f
20d80 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 75 6c 6c unction.getBranches().{.if.(null
20da0 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 75 72 63 .===.$this->branches).{.$resourc
20dc0 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 61 70 69 e.=.$this->getScheme()...'://api
20de0 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 65 73 2f .bitbucket.org/1.0/repositories/
20e00 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
20e20 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 20 3d 20 tory.'/branches';.$branchData.=.
20e40 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 74 43 6f JsonFile::parseJson($this->getCo
20e60 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 3b 0a 24 ntents($resource),.$resource);.$
20e80 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 65 61 63 this->branches.=.array();.foreac
20ea0 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 24 64 61 h.($branchData.as.$branch.=>.$da
20ec0 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 5d 20 3d ta).{.$this->branches[$branch].=
20ee0 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 72 6e 20 .$data['raw_node'];.}.}..return.
20f00 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
20f20 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
20f40 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
20f60 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 62 75 63 f.(!preg_match('#^https://bitbuc
20f80 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/([^/]+)/([^/]+)/?$#',.$
20fa0 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 28 21 65 78 url)).{.return.false;.}..if.(!ex
20fc0 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 0a 69 66 20 tension_loaded('openssl')).{.if.
20fe0 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 69 74 65 28 ($io->isVerbose()).{.$io->write(
21000 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 68 67 20 64 72 69 76 65 72 20 66 6f 'Skipping.Bitbucket.hg.driver.fo
21020 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 53 53 4c 20 50 r.'.$url.'.because.the.OpenSSL.P
21040 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 0a 7d 0a 0a 72 HP.extension.is.missing.');.}..r
21060 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 7d eturn.false;.}..return.true;.}.}
21080 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
210a0 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 63 6c 61 73 73 20 49 oser\Repository;.........class.I
210c0 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 nstalledArrayRepository.extends.
210e0 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 ArrayRepository.implements.Insta
21100 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 0a 0a 0a 70 75 62 lledRepositoryInterface.{....pub
21120 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 lic.function.write().{.}.....pub
21140 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 7d 0a 7d 0a 3c 3f 70 68 lic.function.reload().{.}.}.<?ph
21160 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\
21180 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 44 6f 77 6e 6c 6f Repository;..use.Composer\Downlo
211a0 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 75 73 65 20 43 6f 6d ader\TransportException;.use.Com
211c0 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 72 49 6e poser\Repository\Vcs\VcsDriverIn
211e0 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 56 65 terface;.use.Composer\Package\Ve
21200 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 70 6f 73 65 rsion\VersionParser;.use.Compose
21220 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 75 73 r\Package\Loader\ArrayLoader;.us
21240 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 43 e.Composer\IO\IOInterface;.use.C
21260 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 70 omposer\Config;.....class.VcsRep
21280 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 0a ository.extends.ArrayRepository.
212a0 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 63 {.protected.$url;.protected.$pac
212c0 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 72 kageName;.protected.$verbose;.pr
212e0 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 0a otected.$io;.protected.$config;.
21300 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 63 protected.$versionParser;.protec
21320 74 65 64 20 24 74 79 70 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ted.$type;..public.function.__co
21340 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 nstruct(array.$repoConfig,.IOInt
21360 65 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 61 72 72 61 erface.$io,.Config.$config,.arra
21380 79 20 24 64 72 69 76 65 72 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 y.$drivers.=.null).{.$this->driv
213a0 65 72 73 20 3d 20 24 64 72 69 76 65 72 73 20 3f 3a 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 ers.=.$drivers.?:.array(.'github
213c0 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 47 69 '.=>.'Composer\Repository\Vcs\Gi
213e0 74 48 75 62 44 72 69 76 65 72 27 2c 0a 27 67 69 74 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 tHubDriver',.'git-bitbucket'.=>.
21400 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 42 69 74 62 'Composer\Repository\Vcs\GitBitb
21420 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 67 69 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 ucketDriver',.'git'.=>.'Composer
21440 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 44 72 69 76 65 72 27 2c 0a 27 73 76 6e \Repository\Vcs\GitDriver',.'svn
21460 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 53 76 '.=>.'Composer\Repository\Vcs\Sv
21480 6e 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d nDriver',.'hg-bitbucket'.=>.'Com
214a0 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 42 69 74 62 75 63 6b 65 74 poser\Repository\Vcs\HgBitbucket
214c0 44 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 Driver',.'hg'.=>.'Composer\Repos
214e0 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 27 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e itory\Vcs\HgDriver',.);..$this->
21500 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 0a 24 74 68 69 73 2d url.=.$repoConfig['url'];.$this-
21520 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 69 73 73 65 74 28 24 >io.=.$io;.$this->type.=.isset($
21540 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 repoConfig['type']).?.$repoConfi
21560 67 5b 27 74 79 70 65 27 5d 20 3a 20 27 76 63 73 27 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 g['type'].:.'vcs';.$this->verbos
21580 65 20 3d 20 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e e.=.$io->isVerbose();.$this->con
215a0 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f fig.=.$config;.}..public.functio
215c0 6e 20 67 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 n.getDriver().{.if.(isset($this-
215e0 3e 64 72 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 >drivers[$this->type])).{.$class
21600 20 3d 20 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 .=.$this->drivers[$this->type];.
21620 24 64 72 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 75 72 6c 2c $driver.=.new.$class($this->url,
21640 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 24 64 72 69 .$this->io,.$this->config);.$dri
21660 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 64 72 69 76 ver->initialize();..return.$driv
21680 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 72 73 20 61 er;.}..foreach.($this->drivers.a
216a0 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 70 70 6f 72 s.$driver).{.if.($driver::suppor
216c0 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 0a 24 64 72 ts($this->io,.$this->url)).{.$dr
216e0 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 75 72 6c 2c 20 24 iver.=.new.$driver($this->url,.$
21700 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 24 64 72 69 76 65 this->io,.$this->config);.$drive
21720 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 64 72 69 76 65 72 r->initialize();..return.$driver
21740 3b 0a 7d 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 72 73 20 61 ;.}.}..foreach.($this->drivers.a
21760 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 70 70 6f 72 s.$driver).{.if.($driver::suppor
21780 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 74 72 75 65 29 29 ts($this->io,.$this->url,.true))
217a0 20 7b 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 .{.$driver.=.new.$driver($this->
217c0 75 72 6c 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 url,.$this->io,.$this->config);.
217e0 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.$
21800 64 72 69 76 65 72 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 6f driver;.}.}.}..protected.functio
21820 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 6c n.initialize().{.parent::initial
21840 69 7a 65 28 29 3b 0a 0a 24 76 65 72 62 6f 73 65 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 ize();..$verbose.=.$this->verbos
21860 65 3b 0a 0a 24 64 72 69 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 72 69 76 65 72 28 29 e;..$driver.=.$this->getDriver()
21880 3b 0a 69 66 20 28 21 24 64 72 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 ;.if.(!$driver).{.throw.new.\Inv
218a0 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 64 72 69 76 65 72 alidArgumentException('No.driver
218c0 20 66 6f 75 6e 64 20 74 6f 20 68 61 6e 64 6c 65 20 56 43 53 20 72 65 70 6f 73 69 74 6f 72 79 20 .found.to.handle.VCS.repository.
218e0 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e '.$this->url);.}..$this->version
21900 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 24 6c 6f 61 Parser.=.new.VersionParser;.$loa
21920 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 0a 74 72 79 20 7b 0a der.=.new.ArrayLoader();..try.{.
21940 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 28 24 64 72 if.($driver->hasComposerFile($dr
21960 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 7b 0a 24 64 iver->getRootIdentifier())).{.$d
21980 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 72 6d ata.=.$driver->getComposerInform
219a0 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 66 69 65 72 ation($driver->getRootIdentifier
219c0 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 6d 70 74 79 ());.$this->packageName.=.!empty
219e0 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 65 27 5d 20 ($data['name']).?.$data['name'].
21a00 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 6e 20 24 65 :.null;.}.}.catch.(\Exception.$e
21a20 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 6f 2d 3e 77 ).{.if.($verbose).{.$this->io->w
21a40 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 76 65 72 2d rite('Skipped.parsing.'.$driver-
21a60 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 2d 3e 67 65 >getRootIdentifier().',.'.$e->ge
21a80 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 64 72 69 76 tMessage());.}.}..foreach.($driv
21aa0 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 65 6e 74 69 er->getTags().as.$tag.=>.$identi
21ac0 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 65 72 fier).{.$msg.=.'Reading.composer
21ae0 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 6b 61 .json.of.<info>'...($this->packa
21b00 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 6f 3e geName.?:.$this->url)...'</info>
21b20 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 6d 65 6e 74 .(<comment>'...$tag...'</comment
21b40 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 69 6f 2d 3e >)';.if.($verbose).{.$this->io->
21b60 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 3e 69 6f 2d write($msg);.}.else.{.$this->io-
21b80 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 0a 20 24 74 >overwrite($msg,.false);.}....$t
21ba0 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 20 27 27 2c ag.=.str_replace('release-',.'',
21bc0 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 74 68 69 73 .$tag);..if.(!$parsedTag.=.$this
21be0 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 76 65 72 62 ->validateTag($tag)).{.if.($verb
21c00 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 64 ose).{.$this->io->write('Skipped
21c20 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 61 6d 65 27 .tag.'.$tag.',.invalid.tag.name'
21c40 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 24 64 61 );.}.continue;.}..try.{.if.(!$da
21c60 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 72 6d 61 ta.=.$driver->getComposerInforma
21c80 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 62 6f 73 tion($identifier)).{.if.($verbos
21ca0 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 74 e).{.$this->io->write('Skipped.t
21cc0 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 65 27 29 3b ag.'.$tag.',.no.composer.file');
21ce0 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 24 64 61 74 .}.continue;.}....if.(isset($dat
21d00 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 69 6f 6e 5f a['version'])).{.$data['version_
21d20 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 6e 50 61 72 normalized'].=.$this->versionPar
21d40 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 6e 27 5d 29 ser->normalize($data['version'])
21d60 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 5d 20 3d 20 ;.}.else.{...$data['version'].=.
21d80 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 7a 65 64 27 $tag;.$data['version_normalized'
21da0 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 76 65 72 73 ].=.$parsedTag;.}....$data['vers
21dc0 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 64 65 76 24 ion'].=.preg_replace('{[.-]?dev$
21de0 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 24 64 61 74 }i',.'',.$data['version']);.$dat
21e00 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 65 67 5f 72 a['version_normalized'].=.preg_r
21e20 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 27 2c 20 27 eplace('{(^dev-|[.-]?dev$)}i',.'
21e40 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 27 5d 29 3b ',.$data['version_normalized']);
21e60 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 6c 69 7a 65 ....if.($data['version_normalize
21e80 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 65 72 62 6f d'].!==.$parsedTag).{.if.($verbo
21ea0 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.
21ec0 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 54 61 67 2e tag.'.$tag.',.tag.('.$parsedTag.
21ee0 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 2e 24 64 61 ').does.not.match.version.('.$da
21f00 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 69 6e 20 63 ta['version_normalized'].').in.c
21f20 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 7d 0a 0a 69 omposer.json');.}.continue;.}..i
21f40 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 69 74 65 28 f.($verbose).{.$this->io->write(
21f60 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 64 61 74 61 'Importing.tag.'.$tag.'.('.$data
21f80 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 0a 7d 0a 0a ['version_normalized'].')');.}..
21fa0 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 $this->addPackage($loader->load(
21fc0 24 74 68 69 73 2d 3e 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 $this->preProcess($driver,.$data
21fe0 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 ,.$identifier)));.}.catch.(\Exce
22000 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 69 ption.$e).{.if.($verbose).{.$thi
22020 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 s->io->write('Skipped.tag.'.$tag
22040 2e 27 2c 20 27 2e 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 .',.'.($e.instanceof.TransportEx
22060 63 65 70 74 69 6f 6e 20 3f 20 27 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 ception.?.'no.composer.file.was.
22080 66 6f 75 6e 64 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 29 3b 0a 7d 0a 63 found'.:.$e->getMessage()));.}.c
220a0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 ontinue;.}.}..$this->io->overwri
220c0 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 te('',.false);..foreach.($driver
220e0 2d 3e 67 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 ->getBranches().as.$branch.=>.$i
22100 64 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 dentifier).{.$msg.=.'Reading.com
22120 70 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 poser.json.of.<info>'...($this->
22140 70 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 packageName.?:.$this->url)...'</
22160 69 6e 66 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 info>.(<comment>'...$branch...'<
22180 2f 63 6f 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 /comment>)';.if.($verbose).{.$th
221a0 69 73 2d 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 is->io->write($msg);.}.else.{.$t
221c0 68 69 73 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 his->io->overwrite($msg,.false);
221e0 0a 7d 0a 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 .}..if.(!$parsedBranch.=.$this->
22200 76 61 6c 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 validateBranch($branch)).{.if.($
22220 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
22240 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 69 6e 76 61 6c 69 64 pped.branch.'.$branch.',.invalid
22260 20 6e 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 .name');.}.continue;.}..try.{.if
22280 20 28 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 .(!$data.=.$driver->getComposerI
222a0 6e 66 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 nformation($identifier)).{.if.($
222c0 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
222e0 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 6e 6f 20 63 6f 6d 70 pped.branch.'.$branch.',.no.comp
22300 6f 73 65 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 oser.file');.}.continue;.}....$d
22320 61 74 61 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 ata['version'].=.$branch;.$data[
22340 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 72 73 65 64 42 'version_normalized'].=.$parsedB
22360 72 61 6e 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 ranch;....if.('dev-'.===.substr(
22380 24 70 61 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 $parsedBranch,.0,.4).||.'9999999
223a0 2d 64 65 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 -dev'.===.$parsedBranch).{.$data
223c0 5b 27 76 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 ['version'].=.'dev-'...$data['ve
223e0 72 73 69 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 rsion'];.}.else.{.$data['version
22400 27 5d 20 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 '].=.preg_replace('{(\.9{7})+}',
22420 20 27 2e 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 .'.x',.$parsedBranch);.}..if.($v
22440 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 49 6d 70 6f erbose).{.$this->io->write('Impo
22460 72 74 69 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 rting.branch.'.$branch.'.('.$dat
22480 61 5b 27 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 a['version'].')');.}..$this->add
224a0 50 61 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 70 72 65 Package($loader->load($this->pre
224c0 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 74 69 66 Process($driver,.$data,.$identif
224e0 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 65 70 74 ier)));.}.catch.(TransportExcept
22500 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 69 73 2d ion.$e).{.if.($verbose).{.$this-
22520 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 24 62 72 >io->write('Skipped.branch.'.$br
22540 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 66 6f 75 anch.',.no.composer.file.was.fou
22560 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 78 63 65 nd');.}.continue;.}.catch.(\Exce
22580 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 27 53 6b ption.$e).{.$this->io->write('Sk
225a0 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 65 2d 3e ipped.branch.'.$branch.',.'.$e->
225c0 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 0a 24 74 getMessage());.continue;.}.}..$t
225e0 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d his->io->overwrite('',.false);.}
22600 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 63 ..private.function.preProcess(Vc
22620 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 20 sDriverInterface.$driver,.array.
22640 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 6e $data,.$identifier).{...$data['n
22660 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 64 ame'].=.$this->packageName.?:.$d
22680 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 27 ata['name'];..if.(!isset($data['
226a0 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 76 dist'])).{.$data['dist'].=.$driv
226c0 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 28 er->getDist($identifier);.}.if.(
226e0 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 61 !isset($data['source'])).{.$data
22700 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 28 ['source'].=.$driver->getSource(
22720 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 7d $identifier);.}..return.$data;.}
22740 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 63 ..private.function.validateBranc
22760 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 2d h($branch).{.try.{.return.$this-
22780 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(
227a0 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 65 $branch);.}.catch.(\Exception.$e
227c0 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 20 ).{.}..return.false;.}..private.
227e0 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 7b function.validateTag($version).{
22800 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 73 .try.{.return.$this->versionPars
22820 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 68 er->normalize($version);.}.catch
22840 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 6c .(\Exception.$e).{.}..return.fal
22860 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
22880 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 6d ce.Composer\Repository;..use.Com
228a0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 3b 0a 75 73 65 poser\Package\MemoryPackage;.use
228c0 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
228e0 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 70 6f 73 nParser;.....class.PlatformRepos
22900 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.{.
22920 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 0a protected.function.initialize().
22940 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 73 69 6f {.parent::initialize();..$versio
22960 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 3b 0a 0a nParser.=.new.VersionParser();..
22980 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 52 53 49 try.{.$prettyVersion.=.PHP_VERSI
229a0 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 2d 3e 6e ON;.$version.=.$versionParser->n
229c0 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 61 74 63 ormalize($prettyVersion);.}.catc
229e0 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 24 65 29 h.(\UnexpectedValueException.$e)
22a00 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 61 63 65 .{.$prettyVersion.=.preg_replace
22a20 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 5f 56 45 ('#^(.+?)(-.+)?$#',.'$1',.PHP_VE
22a40 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 72 73 65 RSION);.$version.=.$versionParse
22a60 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 0a 7d 0a r->normalize($prettyVersion);.}.
22a80 0a 24 70 68 70 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 27 70 68 70 27 2c .$php.=.new.MemoryPackage('php',
22aa0 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 0a 24 70 68 70 .$version,.$prettyVersion);.$php
22ac0 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 6e 74 65 72 70 ->setDescription('The.PHP.interp
22ae0 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 28 24 70 68 70 reter');.parent::addPackage($php
22b00 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 5f 6c 6f 61 64 );..$loadedExtensions.=.get_load
22b20 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 20 28 24 6c 6f ed_extensions();....foreach.($lo
22b40 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 69 66 20 28 69 adedExtensions.as.$name).{.if.(i
22b60 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 61 72 64 27 2c n_array($name,.array('standard',
22b80 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 72 65 66 6c 45 .'Core'))).{.continue;.}..$reflE
22ba0 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 6f 6e 28 24 6e xt.=.new.\ReflectionExtension($n
22bc0 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 3d 20 24 72 65 ame);.try.{.$prettyVersion.=.$re
22be0 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 6f 6e 20 3d 20 flExt->getVersion();.$version.=.
22c00 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 70 72 65 74 74 $versionParser->normalize($prett
22c20 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 63 74 65 64 56 yVersion);.}.catch.(\UnexpectedV
22c40 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 56 65 72 73 69 alueException.$e).{.$prettyVersi
22c60 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 6f 6e 50 61 72 on.=.'0';.$version.=.$versionPar
22c80 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 0a ser->normalize($prettyVersion);.
22ca0 7d 0a 0a 24 65 78 74 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 27 65 78 74 }..$ext.=.new.MemoryPackage('ext
22cc0 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 56 65 72 73 69 -'.$name,.$version,.$prettyVersi
22ce0 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 28 27 54 68 65 20 27 on);.$ext->setDescription('The.'
22d00 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 0a 70 61 72 65 6e 74 .$name.'.PHP.extension');.parent
22d20 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 0a 20 0a 20 66 6f 72 ::addPackage($ext);.}........for
22d40 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 73 20 24 6e 61 6d 65 each.($loadedExtensions.as.$name
22d60 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 20 27 63 75 72 6c 27 ).{.switch.($name).{.case.'curl'
22d80 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 73 69 6f 6e 28 29 3b :.$curlVersion.=.curl_version();
22da0 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 72 73 69 6f 6e 5b 27 .$prettyVersion.=.$curlVersion['
22dc0 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 69 63 6f 6e 76 27 3a version'];.break;..case.'iconv':
22de0 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 45 52 53 49 4f 4e 3b .$prettyVersion.=.ICONV_VERSION;
22e00 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 70 72 65 74 74 79 56 .break;..case.'libxml':.$prettyV
22e20 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 52 53 49 4f 4e 3b 0a ersion.=.LIBXML_DOTTED_VERSION;.
22e40 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 70 72 65 74 74 79 56 break;..case.'openssl':.$prettyV
22e60 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 6c 62 61 63 6b 28 27 ersion.=.preg_replace_callback('
22e80 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 29 28 5b 61 2d 7a 5d {^(?:OpenSSL\s*)?([0-9.]+)([a-z]
22ea0 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 20 7b 0a 72 65 74 75 ?).*}',.function.($match).{.retu
22ec0 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 74 63 68 5b 32 5d 29 rn.$match[1]...(empty($match[2])
22ee0 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 5d 29 20 2d 20 39 36 .?.''.:.'.'.(ord($match[2]).-.96
22f00 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 58 54 29 3b 0a 62 72 ));.},.OPENSSL_VERSION_TEXT);.br
22f20 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 79 56 65 72 73 69 6f eak;..case.'pcre':.$prettyVersio
22f40 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 2e 2a 7d 27 2c 20 27 n.=.preg_replace('{^(\S+).*}',.'
22f60 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 3b 0a 0a 63 61 73 65 $1',.PCRE_VERSION);.break;..case
22f80 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 20 70 68 70 76 65 72 .'uuid':.$prettyVersion.=.phpver
22fa0 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 65 20 27 78 73 6c 27 sion('uuid');.break;..case.'xsl'
22fc0 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 54 5f 44 4f 54 54 45 :.$prettyVersion.=.LIBXSLT_DOTTE
22fe0 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 74 3a 0a 0a 20 63 6f D_VERSION;.break;..default:...co
23000 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 6f 6e 20 3d 20 24 76 ntinue.2;.}..try.{.$version.=.$v
23020 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 70 72 65 74 74 79 56 ersionParser->normalize($prettyV
23040 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 64 56 61 6c ersion);.}.catch.(\UnexpectedVal
23060 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 65 3b 0a 7d 0a 0a 24 ueException.$e).{.continue;.}..$
23080 6c 69 62 20 3d 20 6e 65 77 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 28 27 6c 69 62 2d 27 2e 24 lib.=.new.MemoryPackage('lib-'.$
230a0 6e 61 6d 65 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 name,.$version,.$prettyVersion);
230c0 0a 24 6c 69 62 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 .$lib->setDescription('The.'.$na
230e0 6d 65 2e 27 20 50 48 50 20 6c 69 62 72 61 72 79 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 me.'.PHP.library');.parent::addP
23100 61 63 6b 61 67 65 28 24 6c 69 62 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ackage($lib);.}.}.}.<?php.......
23120 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 6f .....namespace.Composer\Reposito
23140 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 ry;.......class.InstalledFilesys
23160 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 46 69 6c 65 73 79 73 74 65 6d temRepository.extends.Filesystem
23180 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 Repository.implements.InstalledR
231a0 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a epositoryInterface.{.}.<?php....
231c0 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 73 ........namespace.Composer\Repos
231e0 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 50 61 63 itory;..use.Composer\Package\Pac
23200 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 43 6f 6d 70 6f kageInterface;.......class.Compo
23220 73 69 74 65 52 65 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 siteRepository.implements.Reposi
23240 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 toryInterface.{.....private.$rep
23260 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ositories;......public.function.
23280 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 __construct(array.$repositories)
232a0 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 6f 73 69 .{.$this->repositories.=.$reposi
232c0 74 6f 72 69 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 6e 20 tories;.}.......public.function.
232e0 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 73 getRepositories().{.return.$this
23300 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 63 20 66 75 6e ->repositories;.}.....public.fun
23320 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 65 72 66 61 63 ction.hasPackage(PackageInterfac
23340 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 65 e.$package).{.foreach.($this->re
23360 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 69 66 positories.as.$repository).{..if
23380 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 70 61 63 6b 61 .($repository->hasPackage($packa
233a0 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 74 75 72 6e 20 ge)).{.return.true;.}.}..return.
233c0 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 66 69 6e false;.}.....public.function.fin
233e0 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 0a 66 6f 72 65 dPackage($name,.$version).{.fore
23400 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 20 24 72 65 70 ach.($this->repositories.as.$rep
23420 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 6f 73 69 74 6f ository).{..$package.=.$reposito
23440 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 73 69 6f 6e 29 ry->findPackage($name,.$version)
23460 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 72 65 74 75 72 ;.if.(null.!==.$package).{.retur
23480 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 6c 3b 0a 7d 0a n.$package;.}.}..return.null;.}.
234a0 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 67 65 73 ....public.function.findPackages
234c0 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 24 70 61 63 6b ($name,.$version.=.null).{.$pack
234e0 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 2d 3e ages.=.array();.foreach.($this->
23500 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 0a repositories.as.$repository).{..
23520 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 66 69 6e 64 50 $packages[].=.$repository->findP
23540 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 0a 0a 72 65 74 ackages($name,.$version);.}..ret
23560 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 72 72 61 79 5f urn.call_user_func_array('array_
23580 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 75 62 6c 69 63 merge',.$packages);.}.....public
235a0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 .function.getPackages().{.$packa
235c0 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 2d 3e 72 ges.=.array();.foreach.($this->r
235e0 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).{..$
23600 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 67 65 74 50 61 63 packages[].=.$repository->getPac
23620 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e kages();.}..return.call_user_fun
23640 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 c_array('array_merge',.$packages
23660 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 50 );.}.....public.function.removeP
23680 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 61 67 65 ackage(PackageInterface.$package
236a0 29 0a 7b 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 ).{.foreach.($this->repositories
236c0 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 72 65 70 6f 73 69 74 6f 72 79 2d .as.$repository).{..$repository-
236e0 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 7d 0a 0a 0a >removePackage($package);.}.}...
23700 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 24 74 6f 74 ..public.function.count().{.$tot
23720 61 6c 20 3d 20 30 3b 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 al.=.0;.foreach.($this->reposito
23740 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 74 6f 74 61 6c 20 2b ries.as.$repository).{..$total.+
23760 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 63 6f 75 6e 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 =.$repository->count();.}..retur
23780 6e 20 24 74 6f 74 61 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e n.$total;.}......public.function
237a0 20 61 64 64 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 .addRepository(RepositoryInterfa
237c0 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 ce.$repository).{.$this->reposit
237e0 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ories[].=.$repository;.}.}.<?php
23800 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
23820 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 73 epository;.........interface.Ins
23840 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 65 78 74 65 6e 64 talledRepositoryInterface.extend
23860 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 66 61 63 65 0a 7b 0a s.WritableRepositoryInterface.{.
23880 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
238a0 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\
238c0 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 20 Package\Loader\ArrayLoader;.use.
238e0 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
23900 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 65 3b 0a 75 e;.use.Composer\Json\JsonFile;.u
23920 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 5c se.Composer\Cache;.use.Composer\
23940 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 66 Config;.use.Composer\IO\IOInterf
23960 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 6c ace;.use.Composer\Util\RemoteFil
23980 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 73 esystem;.....class.ComposerRepos
239a0 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
239c0 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 74 plements.NotifiableRepositoryInt
239e0 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
23a00 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 ected.$url;.protected.$io;.prote
23a20 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 cted.$packages;.protected.$cache
23a40 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 79 55 72 6c 3b 0a 0a 70 75 62 6c 69 63 20 ;.protected.$notifyUrl;..public.
23a60 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
23a80 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 69 67 20 Config,.IOInterface.$io,.Config.
23aa0 24 63 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 5c 77 $config).{.if.(!preg_match('{^\w
23ac0 2b 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 20 7b 0a 0a +://}',.$repoConfig['url'])).{..
23ae0 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 2f 2f 27 2e .$repoConfig['url'].=.'http://'.
23b00 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 6f 6e 66 69 $repoConfig['url'];.}.$repoConfi
23b20 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 5b 27 75 72 g['url'].=.rtrim($repoConfig['ur
23b40 6c 27 5d 2c 20 27 2f 27 29 3b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 l'],.'/');.if.(function_exists('
23b60 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 61 72 65 28 filter_var').&&.version_compare(
23b80 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 26 26 20 21 PHP_VERSION,.'5.3.3',.'>=').&&.!
23ba0 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 5d 2c 20 46 filter_var($repoConfig['url'],.F
23bc0 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 20 6e 65 77 ILTER_VALIDATE_URL)).{.throw.new
23be0 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 49 6e 76 61 .\UnexpectedValueException('Inva
23c00 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 65 70 6f 73 lid.url.given.for.Composer.repos
23c20 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 3b 0a 7d 0a itory:.'.$repoConfig['url']);.}.
23c40 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-
23c60 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 0a 24 74 68 69 73 >url.=.$repoConfig['url'];.$this
23c80 2d 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 ->io.=.$io;.$this->cache.=.new.C
23ca0 61 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 ache($io,.$config->get('home').'
23cc0 2f 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 /cache/'.preg_replace('{[^a-z0-9
23ce0 2e 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 7d 0a 0a 0a 0a 0a .]}i',.'-',.$this->url));.}.....
23d00 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 61 public.function.notifyInstall(Pa
23d20 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 28 21 ckageInterface.$package).{.if.(!
23d40 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 6e 66 $this->notifyUrl.||.!$this->conf
23d60 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 7b 0a ig->get('notify-on-install')).{.
23d80 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 65 28 return;.}....$url.=.str_replace(
23da0 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 74 79 '%package%',.$package->getPretty
23dc0 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 61 72 Name(),.$this->notifyUrl);..$par
23de0 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 6b 61 ams.=.array(.'version'.=>.$packa
23e00 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 6f 6e ge->getPrettyVersion(),.'version
23e20 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 65 72 _normalized'.=>.$package->getVer
23e40 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 27 20 sion(),.);.$opts.=.array('http'.
23e60 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 27 68 =>.array(.'method'.=>.'POST',.'h
23e80 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 63 61 eader'.=>.'Content-type:.applica
23ea0 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 63 6f tion/x-www-form-urlencoded',.'co
23ec0 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 72 61 ntent'.=>.http_build_query($para
23ee0 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 29 0a ms,.'',.'&'),.'timeout'.=>.3,.).
23f00 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 63 72 );..$context.=.stream_context_cr
23f20 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 73 28 eate($opts);.@file_get_contents(
23f40 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 72 6f 74 65 $url,.false,.$context);.}..prote
23f60 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 0a 7b 0a 70 61 72 cted.function.initialize().{.par
23f80 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 ent::initialize();..try.{.$json.
23fa0 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2f 70 61 63 6b =.new.JsonFile($this->url.'/pack
23fc0 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d ages.json',.new.RemoteFilesystem
23fe0 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 64 61 74 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 ($this->io));.$data.=.$json->rea
24000 64 28 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d d();..if.(!empty($data['notify']
24020 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 70 72 65 67 5f 72 65 70 )).{.$this->notifyUrl.=.preg_rep
24040 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e 2f 5d 2b 29 2e 2a 7d 69 27 2c 20 27 24 lace('{(https?://[^/]+).*}i',.'$
24060 31 27 20 2e 20 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 2c 20 24 74 68 69 73 2d 3e 75 72 6c 1'...$data['notify'],.$this->url
24080 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 27 70 61 63 6b 61 );.}..$this->cache->write('packa
240a0 67 65 73 2e 6a 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 29 29 3b 0a ges.json',.json_encode($data));.
240c0 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 69 66 20 28 24 63 }.catch.(\Exception.$e).{.if.($c
240e0 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 64 28 27 70 61 ontents.=.$this->cache->read('pa
24100 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 ckages.json')).{.$this->io->writ
24120 65 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 e('<warning>'.$this->url.'.could
24140 20 6e 6f 74 20 62 65 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 .not.be.loaded,.package.informat
24160 69 6f 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 ion.was.loaded.from.the.local.ca
24180 63 68 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 che.and.may.be.out.of.date</warn
241a0 69 6e 67 3e 27 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 63 6f 6e ing>');.$data.=.json_decode($con
241c0 74 65 6e 74 73 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 24 65 3b tents,.true);.}.else.{.throw.$e;
241e0 0a 7d 0a 7d 0a 0a 24 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 .}.}..$loader.=.new.ArrayLoader(
24200 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 61 64 65 72 );.$this->loadRepository($loader
24220 2c 20 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 ,.$data);.}..protected.function.
24240 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 41 72 72 61 79 4c 6f 61 64 65 72 20 24 6c 6f 61 64 loadRepository(ArrayLoader.$load
24260 65 72 2c 20 24 64 61 74 61 29 0a 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b er,.$data).{...if.(!isset($data[
24280 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 'packages']).&&.!isset($data['in
242a0 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 cludes'])).{.foreach.($data.as.$
242c0 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d pkg).{.foreach.($pkg['versions']
242e0 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 .as.$metadata).{.$this->addPacka
24300 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 65 74 61 64 61 74 61 29 29 3b 0a 7d 0a ge($loader->load($metadata));.}.
24320 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 }..return;.}..if.(isset($data['p
24340 61 63 6b 61 67 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 70 61 ackages'])).{.foreach.($data['pa
24360 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e ckages'].as.$package.=>.$version
24380 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
243a0 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 ion.=>.$metadata).{.$this->addPa
243c0 63 6b 61 67 65 28 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 65 74 61 64 61 74 61 29 29 3b ckage($loader->load($metadata));
243e0 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 .}.}.}..if.(isset($data['include
24400 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 s'])).{.foreach.($data['includes
24420 27 5d 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 '].as.$include.=>.$metadata).{.i
24440 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 20 f.($this->cache->sha1($include).
24460 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 ===.$metadata['sha1']).{.$includ
24480 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 63 68 edData.=.json_decode($this->cach
244a0 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 73 65 e->read($include),.true);.}.else
244c0 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 75 .{.$json.=.new.JsonFile($this->u
244e0 72 6c 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 rl.'/'.$include,.new.RemoteFiles
24500 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 ystem($this->io));.$includedData
24520 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e .=.$json->read();.$this->cache->
24540 77 72 69 74 65 28 24 69 6e 63 6c 75 64 65 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 69 6e 63 write($include,.json_encode($inc
24560 6c 75 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 ludedData));.}.$this->loadReposi
24580 74 6f 72 79 28 24 6c 6f 61 64 65 72 2c 20 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a tory($loader,.$includedData);.}.
245a0 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 65 }.}.}.<?php............namespace
245c0 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 0a 0a 0a 0a .Composer\Repository\Pear;......
245e0 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 76 61 74 65 20 .class.DependencyInfo.{.private.
24600 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 6c 73 3b 0a 0a $requires;.private.$optionals;..
24620 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(
24640 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 68 69 73 2d 3e $requires,.$optionals).{.$this->
24660 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 2d 3e 6f 70 74 requires.=.$requires;.$this->opt
24680 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 70 75 62 6c 69 ionals.=.$optionals;.}.....publi
246a0 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 72 65 74 75 72 c.function.getRequires().{.retur
246c0 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 62 6c 69 63 20 n.$this->requires;.}.....public.
246e0 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 65 74 75 72 6e function.getOptionals().{.return
24700 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 70 0a 0a 0a 0a .$this->optionals;.}.}.<?php....
24720 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 73 ........namespace.Composer\Repos
24740 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 6b 61 67 65 44 itory\Pear;.......class.PackageD
24760 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 6c 69 63 20 66 ependencyParser.{.......public.f
24780 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 28 24 64 65 70 unction.buildDependencyInfo($dep
247a0 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 41 72 72 61 79 Array).{.if.(!is_array($depArray
247c0 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 6e 66 6f 28 61 )).{.return.new.DependencyInfo(a
247e0 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 68 69 73 2d 3e rray(),.array());.}.if.(!$this->
24800 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 20 6e 65 77 20 isHash($depArray)).{.return.new.
24820 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 44 65 70 65 6e DependencyInfo($this->buildDepen
24840 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 61 79 28 29 29 dency10Info($depArray),.array())
24860 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 65 6e 64 65 6e ;.}..return.$this->buildDependen
24880 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 0a 0a 0a 0a 0a cy20Info($depArray);.}..........
248a0 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 65 70 65 6e 64 ....private.function.buildDepend
248c0 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 74 69 63 20 24 ency10Info($depArray).{.static.$
248e0 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 27 68 61 73 27 dep10toOperatorMap.=.array('has'
24900 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 3d 3e 20 27 3e =>'==',.'eq'.=>.'==',.'ge'.=>.'>
24920 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 3d 27 2c 20 27 =',.'gt'.=>.'>',.'le'.=>.'<=',.'
24940 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 0a 0a 24 72 65 lt'.=>.'<',.'not'.=>.'!=');..$re
24960 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 64 65 70 41 72 sult.=.array();..foreach.($depAr
24980 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 79 28 24 64 65 ray.as.$depItem).{.if.(empty($de
249a0 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 5f 65 78 69 73 pItem['rel']).||.!array_key_exis
249c0 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 6f 4f 70 65 72 ts($depItem['rel'],.$dep10toOper
249e0 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 24 64 65 70 54 atorMap)).{...continue;.}..$depT
24a00 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 6f 6e 61 6c 27 ype.=.!empty($depItem['optional'
24a20 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 74 69 6f 6e 61 ]).&&.'yes'.==.$depItem['optiona
24a40 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 64 27 3b 0a 24 l'].?.'optional'.:.'required';.$
24a60 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 5b 27 72 65 6c depType.=.'not'.==.$depItem['rel
24a80 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 3b 0a 0a 24 64 '].?.'conflicts'.:.$depType;..$d
24aa0 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 5b 27 76 65 72 epVersion.=.!empty($depItem['ver
24ac0 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 6f 6e 28 24 64 sion']).?.$this->parseVersion($d
24ae0 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 0a 20 24 64 65 epItem['version']).:.'*';....$de
24b00 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 20 3d 3d 20 24 pVersionConstraint.=.('has'.==.$
24b20 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 24 64 65 70 49 depItem['rel'].||.'not'.==.$depI
24b40 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 65 72 73 69 6f tem['rel']).&&.'*'.==.$depVersio
24b60 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 61 70 5b 24 64 n.?.'*'.:.$dep10toOperatorMap[$d
24b80 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 6e 3b 0a 0a 73 epItem['rel']]...$depVersion;..s
24ba0 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 63 61 73 65 20 witch.($depItem['type']).{.case.
24bc0 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 68 70 27 3b 0a 'php':.$depChannelName.=.'php';.
24be0 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 3b 0a 63 61 73 $depPackageName.=.'';.break;.cas
24c00 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 21 65 6d 70 74 e.'pkg':.$depChannelName.=.!empt
24c20 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 65 70 49 74 65 y($depItem['channel']).?.$depIte
24c40 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 74 27 3b 0a 24 m['channel'].:.'pear.php.net';.$
24c60 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 6e 61 6d 65 27 depPackageName.=.$depItem['name'
24c80 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 68 61 6e 6e 65 ];.break;.case.'ext':.$depChanne
24ca0 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 61 6d 65 20 3d lName.=.'ext';.$depPackageName.=
24cc0 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 61 73 65 20 27 .$depItem['name'];.break;.case.'
24ce0 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 65 6c 4e 61 6d os':.case.'sapi':.$depChannelNam
24d00 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 72 e.=.'';.$depPackageName.=.'';.br
24d20 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 6d 65 20 3d 20 eak;.default:.$depChannelName.=.
24d40 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 72 65 61 6b 3b '';.$depPackageName.=.'';.break;
24d60 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 6d 65 29 20 7b .}..if.(''.!=.$depChannelName).{
24d80 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 43 6f 6e 73 74 .$result[].=.new.DependencyConst
24da0 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 6e 43 6f 6e 73 raint(.$depType,.$depVersionCons
24dc0 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 65 70 50 61 63 traint,.$depChannelName,.$depPac
24de0 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 73 75 6c 74 3b kageName.);.}.}..return.$result;
24e00 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 62 75 69 6c 64 .}........private.function.build
24e20 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 0a 7b 0a 24 72 Dependency20Info($depArray).{.$r
24e40 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 20 3d 20 61 72 esult.=.array();.$optionals.=.ar
24e60 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 61 72 72 61 79 ray();.$defaultOptionals.=.array
24e80 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 64 65 70 54 79 ();.foreach.($depArray.as.$depTy
24ea0 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 21 69 73 5f 61 pe.=>.$depTypeGroup).{.if.(!is_a
24ec0 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 69 6e 75 65 3b rray($depTypeGroup)).{.continue;
24ee0 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 70 65 20 7c 7c .}.if.('required'.==.$depType.||
24f00 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 66 6f 72 65 61 .'optional'.==.$depType).{.forea
24f20 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 65 6d 54 79 70 ch.($depTypeGroup.as.$depItemTyp
24f40 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 65 70 49 74 65 e.=>.$depItem).{.switch.($depIte
24f60 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 74 5b 5d 20 3d mType).{.case.'php':.$result[].=
24f80 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 24 64 65 70 54 .new.DependencyConstraint(.$depT
24fa0 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 6f 6e 73 74 72 ype,.$this->parse20VersionConstr
24fc0 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 3b 0a 62 72 65 aint($depItem),.'php',.''.);.bre
24fe0 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 20 24 74 68 69 ak;.case.'package':.$deps.=.$thi
25000 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 64 s->buildDepPackageConstraints($d
25020 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 3d 20 61 72 72 epItem,.$depType);.$result.=.arr
25040 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 72 65 61 6b 3b ay_merge($result,.$deps);.break;
25060 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 24 74 68 69 73 .case.'extension':.$deps.=.$this
25080 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 6e 74 73 28 24 ->buildDepExtensionConstraints($
250a0 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 3d 20 61 72 depItem,.$depType);.$result.=.ar
250c0 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 72 65 61 6b ray_merge($result,.$deps);.break
250e0 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 3d 20 24 74 68 ;.case.'subpackage':.$deps.=.$th
25100 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($
25120 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 75 6c 74 4f 70 depItem,.'replaces');.$defaultOp
25140 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 73 65 20 27 6f tionals.+=.$deps;.break;.case.'o
25160 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 72 65 61 6b 3b s':.case.'pearinstaller':.break;
25180 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 69 66 20 28 27 .default:.break;.}.}.}.elseif.('
251a0 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 74 68 69 73 2d group'.==.$depType).{.if.($this-
251c0 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 64 65 70 54 79 >isHash($depTypeGroup)).{.$depTy
251e0 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 75 70 29 3b 0a peGroup.=.array($depTypeGroup);.
25200 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 73 20 24 64 65 }..foreach.($depTypeGroup.as.$de
25220 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 74 65 6d 5b 27 pItem).{.$groupName.=.$depItem['
25240 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 65 74 28 24 6f attribs']['name'];.if.(!isset($o
25260 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 70 74 69 6f 6e ptionals[$groupName])).{.$option
25280 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 7d 0a 0a 69 66 als[$groupName].=.array();.}..if
252a0 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 65 27 5d 29 29 .(isset($depItem['subpackage']))
252c0 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 3d 20 24 74 68 .{.$optionals[$groupName].+=.$th
252e0 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($
25300 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 6c 61 63 65 73 depItem['subpackage'],.'replaces
25320 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 69 73 2d 3e 62 ');.}.else.{.$result.+=.$this->b
25340 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 64 65 70 49 74 uildDepPackageConstraints($depIt
25360 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 0a 7d 0a 7d 0a em['package'],.'optional');.}.}.
25380 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 6f 6e 61 6c 73 }.}..if.(count($defaultOptionals
253a0 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 24 64 65 66 61 ).>.0).{.$optionals['*'].=.$defa
253c0 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 20 44 65 70 65 ultOptionals;.}..return.new.Depe
253e0 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 61 6c 73 29 3b ndencyInfo($result,.$optionals);
25400 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 62 75 69 6c .}.........private.function.buil
25420 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 65 70 49 74 65 dDepExtensionConstraints($depIte
25440 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 73 48 61 73 68 m,.$depType).{.if.($this->isHash
25460 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 72 61 79 28 24 ($depItem)).{.$depItem.=.array($
25480 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 79 28 29 3b 0a depItem);.}..$result.=.array();.
254a0 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 70 49 74 65 6d foreach.($depItem.as.$subDepItem
254c0 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 3b 0a 24 64 65 ).{.$depChannelName.=.'ext';.$de
254e0 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 27 6e 61 6d 65 pPackageName.=.$subDepItem['name
25500 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 20 24 74 68 69 '];.$depVersionConstraint.=.$thi
25520 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 28 24 73 75 62 s->parse20VersionConstraint($sub
25540 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 44 65 70 65 6e DepItem);..$result[].=.new.Depen
25560 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 24 64 65 70 56 dencyConstraint(.$depType,.$depV
25580 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 65 6c 4e 61 6d ersionConstraint,.$depChannelNam
255a0 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 74 75 72 6e 20 e,.$depPackageName.);.}..return.
255c0 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 66 75 6e 63 74 $result;.}.........private.funct
255e0 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 6e 74 73 28 24 ion.buildDepPackageConstraints($
25600 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 68 69 73 2d 3e depItem,.$depType).{.if.($this->
25620 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 6d 20 3d 20 61 isHash($depItem)).{.$depItem.=.a
25640 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 3d 20 61 72 72 rray($depItem);.}..$result.=.arr
25660 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 24 73 75 62 44 ay();.foreach.($depItem.as.$subD
25680 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 20 24 73 75 62 epItem).{.$depChannelName.=.$sub
256a0 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 6b 61 67 65 4e DepItem['channel'];.$depPackageN
256c0 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 24 64 65 70 56 ame.=.$subDepItem['name'];.$depV
256e0 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 61 72 73 65 32 ersionConstraint.=.$this->parse2
25700 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 74 65 6d 29 3b 0VersionConstraint($subDepItem);
25720 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 66 6c 69 63 74 .if.(isset($subDepItem['conflict
25740 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 74 73 27 3b 0a s'])).{.$depType.=.'conflicts';.
25760 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 63 79 43 6f 6e }..$result[].=.new.DependencyCon
25780 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 6e 43 6f straint(.$depType,.$depVersionCo
257a0 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 65 70 50 nstraint,.$depChannelName,.$depP
257c0 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 73 75 6c 74 3b ackageName.);.}..return.$result;
257e0 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
25800 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 64 61 74 61 29 20VersionConstraint(array.$data)
25820 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 61 70 20 3d 20 .{.static.$dep20toOperatorMap.=.
25840 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 20 27 3e 3d 27 array('has'=>'==',.'min'.=>.'>='
25860 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 3d 3e 20 27 21 ,.'max'.=>.'<=',.'exclude'.=>.'!
25880 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 24 76 61 6c 75 =');..$versions.=.array();.$valu
258a0 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 61 74 61 2c 20 es.=.array_intersect_key($data,.
258c0 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 20 3d 3d 20 63 $dep20toOperatorMap);.if.(0.==.c
258e0 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 3b 0a 7d 0a 69 ount($values)).{.return.'*';.}.i
25900 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 20 69 73 73 65 f.(isset($values['min']).&&.isse
25920 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 5b 27 t($values['exclude']).&&.$data['
25940 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 7b 0a 24 76 65 min'].==.$data['exclude']).{.$ve
25960 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 73 65 56 65 72 rsions[].=.'>'...$this->parseVer
25980 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 65 69 66 20 28 sion($values['min']);.}.elseif.(
259a0 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 73 65 74 28 24 isset($values['max']).&&.isset($
259c0 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 5b 27 6d 61 78 values['exclude']).&&.$data['max
259e0 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 76 65 72 73 69 '].==.$data['exclude']).{.$versi
25a00 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 65 72 73 69 6f ons[].=.'<'...$this->parseVersio
25a20 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 0a 66 6f 72 65 n($values['max']);.}.else.{.fore
25a40 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 73 69 6f 6e 29 ach.($values.as.$op.=>.$version)
25a60 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 69 73 5f 61 72 .{.if.('exclude'.==.$op.&&.is_ar
25a80 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 76 65 72 73 69 ray($version)).{.foreach.($versi
25aa0 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 69 6f 6e 73 5b on.as.$versionPart).{.$versions[
25ac0 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 5d 20 2e 20 24 ].=.$dep20toOperatorMap[$op]...$
25ae0 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 50 61 72 74 29 this->parseVersion($versionPart)
25b00 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 24 64 65 70 32 ;.}.}.else.{.$versions[].=.$dep2
25b20 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 2d 3e 70 61 72 0toOperatorMap[$op]...$this->par
25b40 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 0a 72 65 74 75 seVersion($version);.}.}.}..retu
25b60 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 0a 7d 0a 0a 0a rn.implode(',',.$versions);.}...
25b80 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 56 65 72 73 69 .....private.function.parseVersi
25ba0 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 63 68 28 27 7b on($version).{.if.(preg_match('{
25bc0 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 3f 28 5c 2e 5c ^v?(\d{1,3})(\.\d+)?(\.\d+)?(\.\
25be0 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 29 29 20 7b 0a d+)?}i',.$version,.$matches)).{.
25c00 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 6d 70 74 79 28 $version.=.$matches[1]..(!empty(
25c20 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 3a 20 27 2e 30 $matches[2]).?.$matches[2].:.'.0
25c40 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 24 6d 61 74 63 ')..(!empty($matches[3]).?.$matc
25c60 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 74 63 68 65 73 hes[3].:.'.0')..(!empty($matches
25c80 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 0a 0a 72 65 74 [4]).?.$matches[4].:.'.0');..ret
25ca0 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 6c 3b 0a 7d 0a urn.$version;.}..return.null;.}.
25cc0 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 61 73 68 28 61 .......private.function.isHash(a
25ce0 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 79 5f 6b 65 79 rray.$array).{.return.!array_key
25d00 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 79 5f 6b 65 79 _exists(1,.$array).&&.!array_key
25d20 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 68 70 0a 0a 0a _exists(0,.$array);.}.}.<?php...
25d40 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
25d60 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 61 6e 6e 65 6c sitory\Pear;.......class.Channel
25d80 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 74 65 20 24 61 Info.{.private.$name;.private.$a
25da0 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 0a 0a 0a 0a 70 lias;.private.$packages;.......p
25dc0 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 6d 65 ublic.function.__construct($name
25de0 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 7b 0a 24 74 68 ,.$alias,.array.$packages).{.$th
25e00 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 69 61 73 20 3d is->name.=.$name;.$this->alias.=
25e20 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 24 70 61 63 6b .$alias;.$this->packages.=.$pack
25e40 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 6f 6e 20 67 65 ages;.}.......public.function.ge
25e60 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 65 3b 0a 7d 0a tName().{.return.$this->name;.}.
25e80 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 69 61 73 28 29 ......public.function.getAlias()
25ea0 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 0a 0a 0a 0a 0a .{.return.$this->alias;.}.......
25ec0 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 29 0a 7b 0a public.function.getPackages().{.
25ee0 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 0a 3c 3f 70 68 return.$this->packages;.}.}.<?ph
25f00 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\
25f20 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 73 65 72 5c 55 Repository\Pear;..use.Composer\U
25f40 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 0a 0a 0a 63 6c til\RemoteFilesystem;.........cl
25f60 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 61 73 65 43 68 ass.ChannelReader.extends.BaseCh
25f80 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 64 65 72 4d 61 annelReader.{..private.$readerMa
25fa0 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 72 75 63 74 28 p;..public.function.__construct(
25fc0 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 72 65 6e 74 3a RemoteFilesystem.$rfs).{.parent:
25fe0 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 30 72 65 61 64 :__construct($rfs);..$rest10read
26000 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 72 28 24 72 66 er.=.new.ChannelRest10Reader($rf
26020 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 6e 6e 65 6c 52 s);.$rest11reader.=.new.ChannelR
26040 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 72 65 61 64 65 est11Reader($rfs);..$this->reade
26060 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 24 72 65 73 74 rMap.=.array(.'REST1.3'.=>.$rest
26080 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 74 31 31 72 65 11reader,.'REST1.2'.=>.$rest11re
260a0 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 65 61 64 65 72 ader,.'REST1.1'.=>.$rest11reader
260c0 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 72 2c 0a 29 3b ,.'REST1.0'.=>.$rest10reader,.);
260e0 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 65 61 64 28 24 .}........public.function.read($
26100 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 74 58 6d 6c 28 url).{.$xml.=.$this->requestXml(
26120 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 61 6e 6e 65 6c $url,."/channel.xml");..$channel
26140 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 0a 24 63 68 61 Name.=.(string).$xml->name;.$cha
26160 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 2d 3e 73 75 6d nnelSummary.=.(string).$xml->sum
26180 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 6e 67 29 20 24 mary;.$channelAlias.=.(string).$
261a0 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 6f 72 74 65 64 xml->suggestedalias;..$supported
261c0 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 2d 3e 72 65 61 Versions.=.array_keys($this->rea
261e0 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 6f 6e 20 3d 20 derMap);.$selectedRestVersion.=.
26200 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 6d 6c 2c 20 24 $this->selectRestVersion($xml,.$
26220 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 65 6c 65 63 74 supportedVersions);.if.(!$select
26240 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 5c 55 6e 65 78 edRestVersion).{.throw.new.\Unex
26260 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 66 28 27 50 45 pectedValueException(sprintf('PE
26280 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 75 70 70 6f 72 AR.repository.%s.does.not.suppor
262a0 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 75 72 6c 2c 20 ts.any.of.%s.protocols.',.$url,.
262c0 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 73 69 6f 6e 73 implode(',.',.$supportedVersions
262e0 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 61 64 65 72 4d )));.}..$reader.=.$this->readerM
26300 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 72 73 69 6f 6e ap[$selectedRestVersion['version
26320 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 24 72 65 61 64 ']];.$packageDefinitions.=.$read
26340 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 6f 6e 5b 27 62 er->read($selectedRestVersion['b
26360 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 6e 65 6c 49 6e aseUrl']);..return.new.ChannelIn
26380 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 69 61 73 2c 20 fo($channelName,.$channelAlias,.
263a0 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 0a 0a 0a 0a 0a $packageDefinitions);.}.........
263c0 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 56 65 72 73 69 private.function.selectRestVersi
263e0 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 65 72 73 69 6f on($channelXml,.$supportedVersio
26400 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 58 50 61 74 68 ns).{.$channelXml->registerXPath
26420 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 45 4c 5f 4e 53 Namespace('ns',.self::CHANNEL_NS
26440 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 69 6f 6e 73 20 );..foreach.($supportedVersions.
26460 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 20 22 6e 73 3a as.$version).{.$xpathTest.=."ns:
26480 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 6e 73 3a 62 61 servers/ns:primary/ns:rest/ns:ba
264a0 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 0a 24 74 65 73 seurl[@type='{$version}']";.$tes
264c0 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 68 28 24 78 70 tResult.=.$channelXml->xpath($xp
264e0 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 73 75 6c 74 29 athTest);.if.(count($testResult)
26500 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 6f 6e 27 20 3d .>.0).{.return.array('version'.=
26520 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 74 72 69 6e 67 >.$version,.'baseUrl'.=>.(string
26540 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 75 72 6e 20 6e ).$testResult[0]);.}.}..return.n
26560 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 61 6d 65 73 70 ull;.}.}.<?php............namesp
26580 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 0a 0a ace.Composer\Repository\Pear;...
265a0 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 76 61 74 65 20 ....class.PackageInfo.{.private.
265c0 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 4e 61 $channelName;.private.$packageNa
265e0 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 74 65 20 24 73 me;.private.$license;.private.$s
26600 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 65 73 63 72 69 hortDescription;.private.$descri
26620 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 0a 0a 0a 0a 0a ption;.private.$releases;.......
26640 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($
26660 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 24 6c 69 63 65 channelName,.$packageName,.$lice
26680 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 73 63 72 69 70 nse,.$shortDescription,.$descrip
266a0 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 68 61 6e 6e 65 tion,.$releases).{.$this->channe
266c0 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 2d 3e 70 61 63 lName.=.$channelName;.$this->pac
266e0 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 68 69 73 2d 3e kageName.=.$packageName;.$this->
26700 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 73 68 6f 72 74 license.=.$license;.$this->short
26720 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 74 69 6f 6e 3b Description.=.$shortDescription;
26740 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 69 .$this->description.=.$descripti
26760 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 61 73 65 73 3b on;.$this->releases.=.$releases;
26780 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 68 61 6e 6e 65 .}.....public.function.getChanne
267a0 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 6e 6e 65 6c 4e lName().{.return.$this->channelN
267c0 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 67 65 74 50 61 ame;.}.....public.function.getPa
267e0 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 3e 70 61 63 6b ckageName().{.return.$this->pack
26800 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 69 6f 6e 20 67 ageName;.}.....public.function.g
26820 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 3e etDescription().{.return.$this->
26840 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 75 6e 63 74 69 description;.}.....public.functi
26860 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 72 65 74 75 72 on.getShortDescription().{.retur
26880 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 7d 0a 0a 0a 0a n.$this->shortDescription;.}....
268a0 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 28 29 0a 7b 0a .public.function.getLicense().{.
268c0 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 0a 0a 70 75 62 return.$this->license;.}.....pub
268e0 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 7b 0a 72 65 74 lic.function.getReleases().{.ret
26900 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 70 68 70 0a 0a urn.$this->releases;.}.}.<?php..
26920 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
26940 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 65 70 65 6e 64 ository\Pear;.......class.Depend
26960 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 79 70 65 3b 0a encyConstraint.{.private.$type;.
26980 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 65 20 24 63 68 private.$constraint;.private.$ch
269a0 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 4e 61 6d 65 3b annelName;.private.$packageName;
269c0 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
269e0 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 61 6e 6e 65 6c uct($type,.$constraint,.$channel
26a00 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 2d 3e 74 79 70 Name,.$packageName).{.$this->typ
26a20 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 74 20 3d 20 24 e.=.$type;.$this->constraint.=.$
26a40 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 61 6d 65 20 3d constraint;.$this->channelName.=
26a60 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 67 65 4e 61 6d .$channelName;.$this->packageNam
26a80 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 20 66 75 6e 63 e.=.$packageName;.}..public.func
26aa0 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 75 72 6e 20 24 tion.getChannelName().{.return.$
26ac0 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 63 20 66 75 6e this->channelName;.}..public.fun
26ae0 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 75 72 6e 20 24 ction.getConstraint().{.return.$
26b00 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 20 66 75 6e 63 this->constraint;.}..public.func
26b20 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 75 72 6e 20 24 tion.getPackageName().{.return.$
26b40 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 63 20 66 75 6e this->packageName;.}..public.fun
26b60 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->
26b80 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 6e 61 6d 65 73 type;.}.}.<?php............names
26ba0 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 0a pace.Composer\Repository\Pear;..
26bc0 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 31 52 65 61 64 .........class.ChannelRest11Read
26be0 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
26c00 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
26c20 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
26c40 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
26c60 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
26c80 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
26ca0 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
26cc0 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 6b 61 67 65 73 eturn.$this->readChannelPackages
26ce0 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 74 65 20 66 75 ($baseUrl);.}.........private.fu
26d00 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 24 62 61 73 65 nction.readChannelPackages($base
26d20 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 24 78 6d 6c 20 Url).{.$result.=.array();..$xml.
26d40 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 6c 2c 20 22 2f =.$this->requestXml($baseUrl,."/
26d60 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 65 67 69 73 74 c/categories.xml");.$xml->regist
26d80 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 3a 3a 41 4c 4c erXPathNamespace('ns',.self::ALL
26da0 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 78 6d 6c 2d 3e _CATEGORIES_NS);.foreach.($xml->
26dc0 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 63 61 74 65 67 xpath('ns:c').as.$node).{.$categ
26de0 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 63 61 74 65 67 oryName.=.(string).$node;.$categ
26e00 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 74 65 67 6f 72 oryPackages.=.$this->readCategor
26e20 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 72 79 4e 61 6d yPackages($baseUrl,.$categoryNam
26e40 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 72 65 73 75 6c e);.$result.=.array_merge($resul
26e60 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 65 74 75 72 6e t,.$categoryPackages);.}..return
26e80 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 65 20 66 75 6e .$result;.}..........private.fun
26ea0 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 24 62 61 73 65 ction.readCategoryPackages($base
26ec0 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 6c 74 20 3d 20 Url,.$categoryName).{.$result.=.
26ee0 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 2f 63 2f 27 2e array();..$categoryPath.=.'/c/'.
26f00 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 70 61 63 6b 61 urlencode($categoryName).'/packa
26f20 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 3e 72 65 71 75 gesinfo.xml';.$xml.=.$this->requ
26f40 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 61 74 68 29 3b estXml($baseUrl,.$categoryPath);
26f60 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 63 65 28 27 6e .$xml->registerXPathNamespace('n
26f80 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 5f 49 4e 46 4f s',.self::CATEGORY_PACKAGES_INFO
26fa0 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 27 6e 73 3a 70 _NS);.foreach.($xml->xpath('ns:p
26fc0 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 6f 20 3d 20 24 i').as.$node).{.$packageInfo.=.$
26fe0 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 24 72 65 73 75 this->parsePackage($node);.$resu
27000 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 75 72 6e 20 24 lt[].=.$packageInfo;.}..return.$
27020 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 6e 63 74 69 6f result;.}........private.functio
27040 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 29 0a 7b 0a 24 n.parsePackage($packageInfo).{.$
27060 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 61 6d 65 73 70 packageInfo->registerXPathNamesp
27080 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 43 4b 41 47 45 ace('ns',.self::CATEGORY_PACKAGE
270a0 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 28 73 74 72 69 S_INFO_NS);.$channelName.=.(stri
270c0 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 63 6b 61 67 65 ng).$packageInfo->p->c;.$package
270e0 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 6f 2d 3e 70 2d Name.=.(string).$packageInfo->p-
27100 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 63 6b 61 67 65 >n;.$license.=.(string).$package
27120 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 6f 6e 20 3d 20 Info->p->l;.$shortDescription.=.
27140 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 3b 0a 24 64 65 (string).$packageInfo->p->s;.$de
27160 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 67 65 49 6e 66 scription.=.(string).$packageInf
27180 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 72 72 61 79 28 o->p->d;..$dependencies.=.array(
271a0 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 70 61 74 68 28 );.foreach.($packageInfo->xpath(
271c0 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 65 6e 64 65 6e 'ns:deps').as.$node).{.$dependen
271e0 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 3e 76 3b 0a 24 cyVersion.=.(string).$node->v;.$
27200 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 7a 65 28 28 73 dependencyArray.=.unserialize((s
27220 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 6e 63 79 49 6e tring).$node->d);..$dependencyIn
27240 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 72 2d 3e 62 75 fo.=.$this->dependencyReader->bu
27260 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 72 ildDependencyInfo($dependencyArr
27280 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 65 6e 63 79 56 ay);..$dependencies[$dependencyV
272a0 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 7d 0a 0a 24 72 ersion].=.$dependencyInfo;.}..$r
272c0 65 6c 65 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 24 70 61 63 eleases.=.array();.foreach.($pac
272e0 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 61 2f 6e 73 3a 72 27 29 20 61 73 20 kageInfo->xpath('ns:a/ns:r').as.
27300 24 6e 6f 64 65 29 20 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 $node).{.$releaseVersion.=.(stri
27320 6e 67 29 20 24 6e 6f 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 ng).$node->v;.$releaseStability.
27340 3d 20 28 73 74 72 69 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 =.(string).$node->s;.$releases[$
27360 72 65 6c 65 61 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 releaseVersion].=.new.ReleaseInf
27380 6f 28 0a 24 72 65 6c 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 o(.$releaseStability,.isset($dep
273a0 65 6e 64 65 6e 63 69 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 endencies[$releaseVersion]).?.$d
273c0 65 70 65 6e 64 65 6e 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 ependencies[$releaseVersion].:.n
273e0 65 77 20 44 65 70 65 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 ew.DependencyInfo(array(),.array
27400 28 29 29 0a 29 3b 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 ()).);.}..return.new.PackageInfo
27420 28 0a 24 63 68 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 (.$channelName,.$packageName,.$l
27440 69 63 65 6e 73 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 icense,.$shortDescription,.$desc
27460 72 69 70 74 69 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 ription,.$releases.);.}.}.<?php.
27480 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
274a0 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 52 65 6c 65 61 pository\Pear;.......class.Relea
274c0 73 65 49 6e 66 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 seInfo.{.private.$stability;.pri
274e0 76 61 74 65 20 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 vate.$dependencyInfo;......publi
27500 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 74 61 62 69 6c 69 74 c.function.__construct($stabilit
27520 79 2c 20 24 64 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 y,.$dependencyInfo).{.$this->sta
27540 62 69 6c 69 74 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 bility.=.$stability;.$this->depe
27560 6e 64 65 6e 63 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 ndencyInfo.=.$dependencyInfo;.}.
27580 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 70 65 6e 64 65 6e 63 ....public.function.getDependenc
275a0 79 49 6e 66 6f 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 yInfo().{.return.$this->dependen
275c0 63 79 49 6e 66 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 cyInfo;.}.....public.function.ge
275e0 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
27600 62 69 6c 69 74 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 bility;.}.}.<?php............nam
27620 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 72 3b espace.Composer\Repository\Pear;
27640 0a 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 6c 65 73 79 ..use.Composer\Util\RemoteFilesy
27660 73 74 65 6d 3b 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 stem;.........abstract.class.Bas
27680 65 43 68 61 6e 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 eChannelReader.{....const.CHANNE
276a0 4c 5f 4e 53 20 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 L_NS.=.'http://pear.php.net/chan
276c0 6e 65 6c 2d 31 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 nel-1.0';.const.ALL_CATEGORIES_N
276e0 53 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 S.=.'http://pear.php.net/dtd/res
27700 74 2e 61 6c 6c 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 t.allcategories';.const.CATEGORY
27720 5f 50 41 43 4b 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 _PACKAGES_INFO_NS.=.'http://pear
27740 2e 70 68 70 2e 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 .php.net/dtd/rest.categorypackag
27760 65 69 6e 66 6f 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 einfo';.const.ALL_PACKAGES_NS.=.
27780 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 2e 61 6c 'http://pear.php.net/dtd/rest.al
277a0 6c 70 61 63 6b 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 lpackages';.const.ALL_RELEASES_N
277c0 53 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 S.=.'http://pear.php.net/dtd/res
277e0 74 2e 61 6c 6c 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 t.allreleases';.const.PACKAGE_IN
27800 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 6e 65 74 2f 64 74 64 FO_NS.=.'http://pear.php.net/dtd
27820 2f 72 65 73 74 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 /rest.package';...private.$rfs;.
27840 0a 70 72 6f 74 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 .protected.function.__construct(
27860 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 24 74 68 69 73 2d 3e RemoteFilesystem.$rfs).{.$this->
27880 72 66 73 20 3d 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 rfs.=.$rfs;.}.........protected.
278a0 66 75 6e 63 74 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 function.requestContent($origin,
278c0 20 24 70 61 74 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 .$path).{.$url.=.rtrim($origin,.
278e0 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 2f 27 29 3b 0a '/')...'/'...ltrim($path,.'/');.
27900 24 63 6f 6e 74 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 $content.=.$this->rfs->getConten
27920 74 73 28 24 6f 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 ts($origin,.$url,.false);.if.(!$
27940 63 6f 6e 74 65 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 content).{.throw.new.\Unexpected
27960 56 61 6c 75 65 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 ValueException('The.PEAR.channel
27980 20 61 74 20 27 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 .at.'...$url...'.did.not.respond
279a0 2e 27 29 3b 0a 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 .');.}..return.$content;.}......
279c0 0a 0a 0a 70 72 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 ...protected.function.requestXml
279e0 28 24 6f 72 69 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 ($origin,.$path).{...$xml.=.simp
27a00 6c 65 78 6d 6c 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 lexml_load_string($this->request
27a20 43 6f 6e 74 65 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 Content($origin,.$path),."Simple
27a40 58 4d 4c 45 6c 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 XMLElement",.LIBXML_NOERROR);..i
27a60 66 20 28 66 61 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 f.(false.==.$xml).{.$url.=.rtrim
27a80 28 24 6f 72 69 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 ($origin,.'/')...'/'...ltrim($pa
27aa0 74 68 2c 20 27 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 th,.'/');.throw.new.\UnexpectedV
27ac0 61 6c 75 65 45 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 alueException(sprintf('The.PEAR.
27ae0 63 68 61 6e 6e 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 channel.at.'...$origin...'.is.br
27b00 6f 6b 65 6e 2e 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 oken..(Invalid.XML.at.file.`%s`)
27b20 27 2c 20 24 70 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 ',.$path));.}..return.$xml;.}.}.
27b40 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
27b60 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 73 ser\Repository\Pear;..use.Compos
27b80 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
27ba0 3b 0a 0a 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 ;.............class.ChannelRest1
27bc0 30 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 0Reader.extends.BaseChannelReade
27be0 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;..
27c00 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
27c20 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);..
27c40 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
27c60 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();.}......
27c80 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
27ca0 29 0a 7b 0a 72 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 ).{.return.$this->readPackages($
27cc0 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 74 65 20 66 75 6e 63 baseUrl);.}.........private.func
27ce0 74 69 6f 6e 20 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 tion.readPackages($baseUrl).{.$r
27d00 65 73 75 6c 74 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 esult.=.array();..$xmlPath.=.'/p
27d20 2f 70 61 63 6b 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 /packages.xml';.$xml.=.$this->re
27d40 71 75 65 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 questXml($baseUrl,.$xmlPath);.$x
27d60 6d 6c 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 ml->registerXPathNamespace('ns',
27d80 20 73 65 6c 66 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 .self::ALL_PACKAGES_NS);.foreach
27da0 20 28 24 78 6d 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 .($xml->xpath('ns:p').as.$node).
27dc0 7b 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 6e 6f 64 65 3b {.$packageName.=.(string).$node;
27de0 0a 24 70 61 63 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 .$packageInfo.=.$this->readPacka
27e00 67 65 28 24 62 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 ge($baseUrl,.$packageName);.$res
27e20 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 75 72 6e 20 ult[].=.$packageInfo;.}..return.
27e40 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 65 20 66 75 6e 63 $result;.}..........private.func
27e60 74 69 6f 6e 20 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 tion.readPackage($baseUrl,.$pack
27e80 61 67 65 4e 61 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 ageName).{.$xmlPath.=.'/p/'...st
27ea0 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 69 6e 66 6f 2e rtolower($packageName)...'/info.
27ec0 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 58 6d 6c 28 24 xml';.$xml.=.$this->requestXml($
27ee0 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 65 67 69 73 74 baseUrl,.$xmlPath);.$xml->regist
27f00 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 3a 3a 50 41 43 erXPathNamespace('ns',.self::PAC
27f20 4b 41 47 45 5f 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 KAGE_INFO_NS);..$channelName.=.(
27f40 73 74 72 69 6e 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 string).$xml->c;.$packageName.=.
27f60 28 73 74 72 69 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 (string).$xml->n;.$license.=.(st
27f80 72 69 6e 67 29 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 ring).$xml->l;.$shortDescription
27fa0 20 3d 20 28 73 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 .=.(string).$xml->s;.$descriptio
27fc0 6e 20 3d 20 28 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 n.=.(string).$xml->d;..return.ne
27fe0 77 20 50 61 63 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 w.PackageInfo(.$channelName,.$pa
28000 63 6b 61 67 65 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 ckageName,.$license,.$shortDescr
28020 69 70 74 69 6f 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 iption,.$description,.$this->rea
28040 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 20 24 70 61 63 6b dPackageReleases($baseUrl,.$pack
28060 61 67 65 4e 61 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 ageName).);.}..........private.f
28080 75 6e 63 74 69 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 unction.readPackageReleases($bas
280a0 65 55 72 6c 2c 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 eUrl,.$packageName).{.$result.=.
280c0 61 72 72 61 79 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 array();..try.{.$xmlPath.=.'/r/'
280e0 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 2e 20 27 2f ...strtolower($packageName)...'/
28100 61 6c 6c 72 65 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 allreleases.xml';.$xml.=.$this->
28120 72 65 71 75 65 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 requestXml($baseUrl,.$xmlPath);.
28140 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 63 65 28 27 6e 73 $xml->registerXPathNamespace('ns
28160 27 2c 20 73 65 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 ',.self::ALL_RELEASES_NS);.forea
28180 63 68 20 28 24 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 ch.($xml->xpath('ns:r').as.$node
281a0 29 20 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 ).{.$releaseVersion.=.(string).$
281c0 6e 6f 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 node->v;.$releaseStability.=.(st
281e0 72 69 6e 67 29 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 ring).$node->s;..try.{.$result[$
28200 72 65 6c 65 61 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 releaseVersion].=.new.ReleaseInf
28220 6f 28 0a 24 72 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 o(.$releaseStability,.$this->rea
28240 64 50 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 dPackageReleaseDependencies($bas
28260 65 55 72 6c 2c 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 eUrl,.$packageName,.$releaseVers
28280 69 6f 6e 29 0a 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 ion).);.}.catch.(TransportExcept
282a0 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 6e ion.$exception).{.if.($exception
282c0 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 63 ->getCode().!=.404).{.throw.$exc
282e0 65 70 74 69 6f 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 eption;.}.}.}.}.catch.(Transport
28300 45 78 63 65 70 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 Exception.$exception).{.if.($exc
28320 65 70 74 69 6f 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 eption->getCode().!=.404).{.thro
28340 77 20 24 65 78 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 w.$exception;.}.}..return.$resul
28360 74 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 74 69 6f 6e 20 t;.}...........private.function.
28380 72 65 61 64 50 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 readPackageReleaseDependencies($
283a0 62 61 73 65 55 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 baseUrl,.$packageName,.$version)
283c0 0a 7b 0a 24 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 .{.$dependencyReader.=.new.Packa
283e0 67 65 44 65 70 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 geDependencyParser();..$depthPat
28400 68 20 3d 20 27 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 h.=.'/r/'...strtolower($packageN
28420 61 6d 65 29 20 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 ame)...'/deps.'...$version...'.t
28440 78 74 27 3b 0a 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 xt';.$content.=.$this->requestCo
28460 6e 74 65 6e 74 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 ntent($baseUrl,.$depthPath);.$de
28480 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 7a 65 28 24 63 6f 6e pendencyArray.=.unserialize($con
284a0 74 65 6e 74 29 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 tent);.$result.=.$dependencyRead
284c0 65 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 er->buildDependencyInfo($depende
284e0 6e 63 79 41 72 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 ncyArray);..return.$result;.}.}.
28500 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
28520 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
28540 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 0a 69 ckage\PackageInterface;........i
28560 6e 74 65 72 66 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 nterface.RepositoryInterface.ext
28580 65 6e 64 73 20 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 ends.\Countable.{........public.
285a0 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 65 72 function.hasPackage(PackageInter
285c0 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 70 75 62 6c 69 63 20 face.$package);..........public.
285e0 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 65 2c 20 24 76 65 72 function.findPackage($name,.$ver
28600 73 69 6f 6e 29 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 sion);..........public.function.
28620 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 20 3d 20 6e findPackages($name,.$version.=.n
28640 75 6c 6c 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 50 ull);.......public.function.getP
28660 61 63 6b 61 67 65 73 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 ackages();.}.<?php............na
28680 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 73 mespace.Composer\Repository;..us
286a0 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 4c e.Composer\Package\Loader\ArrayL
286c0 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 oader;.......class.PackageReposi
286e0 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 70 tory.extends.ArrayRepository.{.p
28700 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rivate.$config;.......public.fun
28720 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 63 6f 6e 66 69 67 29 ction.__construct(array.$config)
28740 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b .{.$this->config.=.$config['pack
28760 61 67 65 27 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 age'];....if.(!is_numeric(key($t
28780 68 69 73 2d 3e 63 6f 6e 66 69 67 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d his->config))).{.$this->config.=
287a0 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 .array($this->config);.}.}.....p
287c0 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 0a 7b rotected.function.initialize().{
287e0 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 6c 6f 61 64 65 72 20 .parent::initialize();..$loader.
28800 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 =.new.ArrayLoader();.foreach.($t
28820 68 69 73 2d 3e 63 6f 6e 66 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b his->config.as.$package).{.$pack
28840 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 age.=.$loader->load($package);.$
28860 74 68 69 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 7d 0a 7d 0a this->addPackage($package);.}.}.
28880 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
288a0 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\
288c0 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 69 6e Package\PackageInterface;.....in
288e0 74 65 72 66 61 63 65 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 terface.NotifiableRepositoryInte
28900 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 rface.extends.RepositoryInterfac
28920 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 6e 6f 74 69 66 79 49 e.{......public.function.notifyI
28940 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 61 67 65 nstall(PackageInterface.$package
28960 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.
28980 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 3b 0a 0a 75 73 65 20 43 6f Composer\Package\Dumper;..use.Co
289a0 6d 70 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 mposer\Package\BasePackage;.use.
289c0 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
289e0 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d 70 65 72 0a 7b 0a 70 75 62 6c e;......class.ArrayDumper.{.publ
28a00 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 ic.function.dump(PackageInterfac
28a20 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 62 69 e.$package).{.$keys.=.array(.'bi
28a40 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 74 79 naries'.=>.'bin',.'scripts',.'ty
28a60 70 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 pe',.'extra',.'installationSourc
28a80 65 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 6c 69 e'.=>.'installation-source',.'li
28aa0 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 27 cense',.'authors',.'description'
28ac0 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 61 75 74 6f 6c ,.'homepage',.'keywords',.'autol
28ae0 6f 61 64 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 oad',.'repositories',.'includePa
28b00 74 68 73 27 20 3d 3e 20 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 27 73 75 70 70 6f 72 74 ths'.=>.'include-path',.'support
28b20 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 64 61 74 61 5b 27 6e ',.);..$data.=.array();.$data['n
28b40 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 74 79 4e 61 6d 65 28 ame'].=.$package->getPrettyName(
28b60 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 63 6b 61 67 65 2d 3e );.$data['version'].=.$package->
28b80 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 5b 27 76 65 72 73 69 getPrettyVersion();.$data['versi
28ba0 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 65 2d 3e 67 65 74 56 on_normalized'].=.$package->getV
28bc0 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 67 65 74 54 61 72 67 ersion();..if.($package->getTarg
28be0 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 64 69 72 27 5d 20 3d etDir()).{.$data['target-dir'].=
28c00 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 0a 7d 0a 0a 69 66 .$package->getTargetDir();.}..if
28c20 20 28 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 29 20 7b 0a .($package->getReleaseDate()).{.
28c40 24 64 61 74 61 5b 27 74 69 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c $data['time'].=.$package->getRel
28c60 65 61 73 65 44 61 74 65 28 29 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 easeDate()->format('Y-m-d.H:i:s'
28c80 29 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 );.}..if.($package->getSourceTyp
28ca0 65 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 e()).{.$data['source']['type'].=
28cc0 20 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 .$package->getSourceType();.$dat
28ce0 61 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 a['source']['url'].=.$package->g
28d00 65 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 etSourceUrl();.$data['source']['
28d20 72 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 reference'].=.$package->getSourc
28d40 65 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 eReference();.}..if.($package->g
28d60 65 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 etDistType()).{.$data['dist']['t
28d80 79 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 ype'].=.$package->getDistType();
28da0 0a 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 .$data['dist']['url'].=.$package
28dc0 2d 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 ->getDistUrl();.$data['dist']['r
28de0 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 44 69 73 74 52 65 eference'].=.$package->getDistRe
28e00 66 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 ference();.$data['dist']['shasum
28e20 27 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 '].=.$package->getDistSha1Checks
28e40 75 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 um();.}..foreach.(BasePackage::$
28e60 73 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 supportedLinkTypes.as.$type.=>.$
28e80 6f 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 opts).{.if.($links.=.$package->{
28ea0 27 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 'get'.ucfirst($opts['method'])}(
28ec0 29 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 )).{.foreach.($links.as.$link).{
28ee0 0a 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 .$data[$type][$link->getTarget()
28f00 5d 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 ].=.$link->getPrettyConstraint()
28f20 3b 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 ;.}.}.}..if.($packages.=.$packag
28f40 65 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 e->getSuggests()).{.$data['sugge
28f60 73 74 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6b st'].=.$packages;.}..foreach.($k
28f80 65 79 73 20 61 73 20 24 6d 65 74 68 6f 64 20 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 eys.as.$method.=>.$key).{.if.(is
28fa0 5f 6e 75 6d 65 72 69 63 28 24 6d 65 74 68 6f 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 _numeric($method)).{.$method.=.$
28fc0 6b 65 79 3b 0a 7d 0a 0a 24 67 65 74 74 65 72 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 key;.}..$getter.=.'get'.ucfirst(
28fe0 24 6d 65 74 68 6f 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 $method);.$value.=.$package->$ge
29000 74 74 65 72 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 tter();..if.(null.!==.$value.&&.
29020 21 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e !(is_array($value).&&.0.===.coun
29040 74 28 24 76 61 6c 75 65 29 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c t($value))).{.$data[$key].=.$val
29060 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ue;.}.}..return.$data;.}.}.<?php
29080 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
290a0 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 4a 73 6f ackage\Loader;..use.Composer\Jso
290c0 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 64 65 72 n\JsonFile;.....class.JsonLoader
290e0 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 .extends.ArrayLoader.{.public.fu
29100 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 6a 73 6f 6e 20 69 nction.load($json).{.if.($json.i
29120 6e 73 74 61 6e 63 65 6f 66 20 4a 73 6f 6e 46 69 6c 65 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 nstanceof.JsonFile).{.$config.=.
29140 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 $json->read();.}.elseif.(file_ex
29160 69 73 74 73 28 24 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c ists($json)).{.$config.=.JsonFil
29180 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 e::parseJson(file_get_contents($
291a0 6a 73 6f 6e 29 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 74 72 69 json),.$json);.}.elseif.(is_stri
291c0 6e 67 28 24 6a 73 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 ng($json)).{.$config.=.JsonFile:
291e0 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 :parseJson($json);.}..return.par
29200 65 6e 74 3a 3a 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 ent::load($config);.}.}.<?php...
29220 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 6b .........namespace.Composer\Pack
29240 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 50 61 63 6b 61 67 age\Loader;..use.Composer\Packag
29260 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 6f 6e 5c e;.use.Composer\Package\Version\
29280 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 4c VersionParser;......class.ArrayL
292a0 6f 61 64 65 72 0a 7b 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 oader.{.protected.$versionParser
292c0 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 56 ;..public.function.__construct(V
292e0 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 ersionParser.$parser.=.null).{.i
29300 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 f.(!$parser).{.$parser.=.new.Ver
29320 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 sionParser;.}.$this->versionPars
29340 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e er.=.$parser;.}..public.function
29360 20 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e .load($config).{.if.(!isset($con
29380 66 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 fig['name'])).{.throw.new.\Unexp
293a0 65 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 ectedValueException('Unknown.pac
293c0 6b 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 kage.has.no.name.defined.('.json
293e0 5f 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 _encode($config).').');.}.if.(!i
29400 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 0a 74 68 72 6f sset($config['version'])).{.thro
29420 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 28 w.new.\UnexpectedValueException(
29440 27 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 'Package.'.$config['name'].'.has
29460 20 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 .no.version.defined.');.}....if.
29480 28 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 (isset($config['version_normaliz
294a0 65 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 ed'])).{.$version.=.$config['ver
294c0 73 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 sion_normalized'];.}.else.{.$ver
294e0 73 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 sion.=.$this->versionParser->nor
29500 6d 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 malize($config['version']);.}.$p
29520 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4d 65 6d 6f 72 79 50 61 63 6b 61 ackage.=.new.Package\MemoryPacka
29540 67 65 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 63 ge($config['name'],.$version,.$c
29560 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 onfig['version']);.$package->set
29580 54 79 70 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 73 74 Type(isset($config['type']).?.st
295a0 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3a 20 27 6c 69 62 rtolower($config['type']).:.'lib
295c0 72 61 72 79 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 rary');..if.(isset($config['targ
295e0 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 61 72 67 65 74 et-dir'])).{.$package->setTarget
29600 44 69 72 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 3b 0a 7d 0a 0a 69 Dir($config['target-dir']);.}..i
29620 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 20 26 26 20 69 73 f.(isset($config['extra']).&&.is
29640 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 29 20 7b 0a 24 70 61 63 _array($config['extra'])).{.$pac
29660 6b 61 67 65 2d 3e 73 65 74 45 78 74 72 61 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 kage->setExtra($config['extra'])
29680 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 ;.}..if.(isset($config['bin'])).
296a0 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 {.if.(!is_array($config['bin']))
296c0 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 78 63 .{.throw.new.\UnexpectedValueExc
296e0 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 eption('Package.'.$config['name'
29700 5d 2e 27 5c 27 73 20 62 69 6e 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 ].'\'s.bin.key.should.be.an.arra
29720 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 2e 27 20 67 y,.'.gettype($config['bin']).'.g
29740 69 76 65 6e 2e 27 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e iven.');.}.foreach.($config['bin
29760 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 62 69 6e 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 62 '].as.$key.=>.$bin).{.$config['b
29780 69 6e 27 5d 5b 24 6b 65 79 5d 3d 20 6c 74 72 69 6d 28 24 62 69 6e 2c 20 27 2f 27 29 3b 0a 7d 0a in'][$key]=.ltrim($bin,.'/');.}.
297a0 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 42 69 6e 61 72 69 65 73 28 24 63 6f 6e 66 69 67 5b 27 62 $package->setBinaries($config['b
297c0 69 6e 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 63 72 in']);.}..if.(isset($config['scr
297e0 69 70 74 73 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 73 63 72 ipts']).&&.is_array($config['scr
29800 69 70 74 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 ipts'])).{.foreach.($config['scr
29820 69 70 74 73 27 5d 20 61 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e 65 72 73 29 20 ipts'].as.$event.=>.$listeners).
29840 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 3d 20 28 61 {.$config['scripts'][$event]=.(a
29860 72 72 61 79 29 20 24 6c 69 73 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 rray).$listeners;.}.$package->se
29880 74 53 63 72 69 70 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 3b 0a 7d 0a tScripts($config['scripts']);.}.
298a0 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e .if.(!empty($config['description
298c0 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 27 64 65 73 63 72 69 ']).&&.is_string($config['descri
298e0 70 74 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 ption'])).{.$package->setDescrip
29900 74 69 6f 6e 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a tion($config['description']);.}.
29920 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 .if.(!empty($config['homepage'])
29940 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 .&&.is_string($config['homepage'
29960 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 65 28 24 63 6f 6e ])).{.$package->setHomepage($con
29980 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 fig['homepage']);.}..if.(!empty(
299a0 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 $config['keywords'])).{.$package
299c0 2d 3e 73 65 74 4b 65 79 77 6f 72 64 73 28 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 ->setKeywords(is_array($config['
299e0 6b 65 79 77 6f 72 64 73 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 keywords']).?.$config['keywords'
29a00 5d 20 3a 20 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 3b ].:.array($config['keywords']));
29a20 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 .}..if.(!empty($config['license'
29a40 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e 73 65 28 69 73 5f 61 72 ])).{.$package->setLicense(is_ar
29a60 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 ray($config['license']).?.$confi
29a80 67 5b 27 6c 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 g['license'].:.array($config['li
29aa0 63 65 6e 73 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 cense']));.}..if.(!empty($config
29ac0 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 77 20 5c ['time'])).{.try.{.$date.=.new.\
29ae0 44 61 74 65 54 69 6d 65 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 24 64 61 74 65 DateTime($config['time']);.$date
29b00 2d 3e 73 65 74 54 69 6d 65 7a 6f 6e 65 28 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 ->setTimezone(new.\DateTimeZone(
29b20 27 55 54 43 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 'UTC'));.$package->setReleaseDat
29b40 65 28 24 64 61 74 65 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 e($date);.}.catch.(\Exception.$e
29b60 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 ).{.}.}..if.(!empty($config['aut
29b80 68 6f 72 73 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 61 75 74 hors']).&&.is_array($config['aut
29ba0 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 hors'])).{.$package->setAuthors(
29bc0 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 $config['authors']);.}..if.(isse
29be0 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 27 5d t($config['installation-source']
29c00 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 53 6f )).{.$package->setInstallationSo
29c20 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 72 63 urce($config['installation-sourc
29c40 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 75 72 e']);.}..if.(isset($config['sour
29c60 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 6f 75 ce'])).{.if.(!isset($config['sou
29c80 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 69 67 rce']['type']).||.!isset($config
29ca0 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 77 20 ['source']['url'])).{.throw.new.
29cc0 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
29ce0 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 70 65 f(."package.source.should.be.spe
29d00 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 6c 5c cified.as.{\"type\":....,.\"url\
29d20 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 64 65 ":....},\n%s.given",.json_encode
29d40 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 6b 61 ($config['source']).));.}.$packa
29d60 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 72 63 ge->setSourceType($config['sourc
29d80 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 72 63 e']['type']);.$package->setSourc
29da0 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 3b 0a eUrl($config['source']['url']);.
29dc0 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 63 6f $package->setSourceReference($co
29de0 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 7d 0a nfig['source']['reference']);.}.
29e00 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 0a 69 .if.(isset($config['dist'])).{.i
29e20 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 65 27 f.(!isset($config['dist']['type'
29e40 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 75 72 ]).||.!isset($config['dist']['ur
29e60 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 61 6c l'])).{.throw.new.\UnexpectedVal
29e80 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 64 69 ueException(sprintf(."package.di
29ea0 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 7b 5c st.should.be.specified.as.".."{\
29ec0 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 72 65 "type\":....,.\"url\":....,.\"re
29ee0 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 2e 7d ference\":....,.\"shasum\":....}
29f00 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 66 69 ,\n%s.given",.json_encode($confi
29f20 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 44 69 g['dist']).));.}.$package->setDi
29f40 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 29 3b stType($config['dist']['type']);
29f60 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 27 64 .$package->setDistUrl($config['d
29f80 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 73 74 ist']['url']);.$package->setDist
29fa0 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 5d 5b Reference(isset($config['dist'][
29fc0 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 5d 5b 'reference']).?.$config['dist'][
29fe0 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 2d 3e 'reference'].:.null);.$package->
2a000 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 66 69 setDistSha1Checksum(isset($confi
2a020 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 5b 27 g['dist']['shasum']).?.$config['
2a040 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 0a 20 69 dist']['shasum'].:.null);.}....i
2a060 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 f.('dev-'.===.substr($package->g
2a080 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 30 2c 20 34 29 20 26 26 20 69 73 73 65 etPrettyVersion(),.0,.4).&&.isse
2a0a0 74 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 2d 61 6c 69 61 73 t($config['extra']['branch-alias
2a0c0 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 65 78 74 72 61 27 5d ']).&&.is_array($config['extra']
2a0e0 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 ['branch-alias'])).{.foreach.($c
2a100 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 20 61 onfig['extra']['branch-alias'].a
2a120 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 s.$sourceBranch.=>.$targetBranch
2a140 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 ).{...if.('-dev'.!==.substr($tar
2a160 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 20 getBranch,.-4)).{.continue;.}...
2a180 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 2d 3e $validatedTargetBranch.=.$this->
2a1a0 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 73 versionParser->normalizeBranch(s
2a1c0 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 69 66 ubstr($targetBranch,.0,.-4));.if
2a1e0 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 54 61 .('-dev'.!==.substr($validatedTa
2a200 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a rgetBranch,.-4)).{.continue;.}..
2a220 0a 20 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 ..if.(strtolower($package->getPr
2a240 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 20 21 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 ettyVersion()).!==.strtolower($s
2a260 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 24 70 61 ourceBranch)).{.continue;.}..$pa
2a280 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 ckage->setAlias($validatedTarget
2a2a0 42 72 61 6e 63 68 29 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 Branch);.$package->setPrettyAlia
2a2c0 73 28 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 s(preg_replace('{(\.9{7})+}',.'.
2a2e0 78 27 2c 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 29 29 3b 0a 62 72 x',.$validatedTargetBranch));.br
2a300 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 5c 42 61 73 65 50 eak;.}.}..foreach.(Package\BaseP
2a320 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 73 20 61 73 20 24 ackage::$supportedLinkTypes.as.$
2a340 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 28 24 63 6f 6e 66 type.=>.$opts).{.if.(isset($conf
2a360 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 65 74 27 2e 75 63 ig[$type])).{.$method.=.'set'.uc
2a380 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 61 63 6b 61 67 65 first($opts['method']);.$package
2a3a0 2d 3e 7b 24 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 4c 69 6e 6b 73 46 72 6f ->{$method}(.$this->loadLinksFro
2a3c0 6d 43 6f 6e 66 69 67 28 24 70 61 63 6b 61 67 65 2c 20 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 mConfig($package,.$opts['descrip
2a3e0 74 69 6f 6e 27 5d 2c 20 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 0a 29 3b 0a 7d 0a 7d 0a 0a tion'],.$config[$type]).);.}.}..
2a400 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 if.(isset($config['suggest']).&&
2a420 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b .is_array($config['suggest'])).{
2a440 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 .foreach.($config['suggest'].as.
2a460 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e $target.=>.$reason).{.if.('self.
2a480 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 74 72 69 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 version'.===.trim($reason)).{.$c
2a4a0 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 onfig['suggest'][$target].=.$pac
2a4c0 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 7d 0a 7d 0a 24 70 kage->getPrettyVersion();.}.}.$p
2a4e0 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 ackage->setSuggests($config['sug
2a500 67 65 73 74 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 61 gest']);.}..if.(isset($config['a
2a520 75 74 6f 6c 6f 61 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c utoload'])).{.$package->setAutol
2a540 6f 61 64 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 3b 0a 7d 0a 0a 69 66 20 oad($config['autoload']);.}..if.
2a560 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 (isset($config['include-path']))
2a580 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f .{.$package->setIncludePaths($co
2a5a0 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 nfig['include-path']);.}..if.(is
2a5c0 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b set($config['support'])).{.$pack
2a5e0 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 age->setSupport($config['support
2a600 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 ']);.}..return.$package;.}..priv
2a620 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 4c 69 6e 6b 73 46 72 6f 6d 43 6f 6e 66 69 67 ate.function.loadLinksFromConfig
2a640 28 24 70 61 63 6b 61 67 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 ($package,.$description,.array.$
2a660 6c 69 6e 6b 73 53 70 65 63 73 29 0a 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 28 29 3b 0a linksSpecs).{.$links.=.array();.
2a680 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 53 70 65 63 73 20 61 73 20 24 70 61 63 6b 61 67 65 foreach.($linksSpecs.as.$package
2a6a0 4e 61 6d 65 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 Name.=>.$constraint).{.if.('self
2a6c0 2e 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 .version'.===.$constraint).{.$pa
2a6e0 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 rsedConstraint.=.$this->versionP
2a700 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 70 61 63 6b 61 67 65 arser->parseConstraints($package
2a720 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ->getPrettyVersion());.}.else.{.
2a740 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 76 65 72 73 69 $parsedConstraint.=.$this->versi
2a760 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 24 63 6f 6e 73 onParser->parseConstraints($cons
2a780 74 72 61 69 6e 74 29 3b 0a 7d 0a 24 6c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 traint);.}.$links[].=.new.Packag
2a7a0 65 5c 4c 69 6e 6b 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 e\Link($package->getName(),.$pac
2a7c0 6b 61 67 65 4e 61 6d 65 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 kageName,.$parsedConstraint,.$de
2a7e0 73 63 72 69 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 72 65 74 75 scription,.$constraint);.}..retu
2a800 72 6e 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$links;.}.}.<?php............
2a820 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 6f 61 64 65 namespace.Composer\Package\Loade
2a840 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 65 50 61 63 r;..use.Composer\Package\BasePac
2a860 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 kage;.use.Composer\Config;.use.C
2a880 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 73 65 72 5c 50 61 omposer\Factory;.use.Composer\Pa
2a8a0 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 65 ckage\Version\VersionParser;.use
2a8c0 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
2a8e0 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
2a900 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 sExecutor;.........class.RootPac
2a920 6b 61 67 65 4c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b kageLoader.extends.ArrayLoader.{
2a940 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 .private.$manager;.private.$conf
2a960 69 67 3b 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 ig;.private.$process;..public.fu
2a980 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e nction.__construct(RepositoryMan
2a9a0 61 67 65 72 20 24 6d 61 6e 61 67 65 72 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 56 ager.$manager,.Config.$config,.V
2a9c0 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f ersionParser.$parser.=.null,.Pro
2a9e0 63 65 73 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 29 0a 7b 0a cessExecutor.$process.=.null).{.
2aa00 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 $this->manager.=.$manager;.$this
2aa20 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 3e 70 72 6f 63 65 ->config.=.$config;.$this->proce
2aa40 73 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 ss.=.$process.?:.new.ProcessExec
2aa60 75 74 6f 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 72 utor();.parent::__construct($par
2aa80 73 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 24 63 ser);.}..public.function.load($c
2aaa0 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d onfig).{.if.(!isset($config['nam
2aac0 65 27 5d 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f e'])).{.$config['name'].=.'__roo
2aae0 74 5f 5f 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 t__';.}.if.(!isset($config['vers
2ab00 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 ion'])).{...if.(getenv('COMPOSER
2ab20 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 _ROOT_VERSION')).{.$version.=.ge
2ab40 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d tenv('COMPOSER_ROOT_VERSION');.}
2ab60 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 3e 67 75 65 73 73 56 .else.{.$version.=.$this->guessV
2ab80 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f ersion($config);.}..if.(!$versio
2aba0 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 6f 6e n).{.$version.=.'1.0.0';.}..$con
2abc0 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 20 65 6c 73 fig['version'].=.$version;.}.els
2abe0 65 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 69 6f 6e 27 e.{.$version.=.$config['version'
2ac00 5d 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 ];.}..$package.=.parent::load($c
2ac20 6f 6e 66 69 67 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 onfig);..$aliases.=.array();.$st
2ac40 61 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 abilityFlags.=.array();.$referen
2ac60 63 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 ces.=.array();.foreach.(array('r
2ac80 65 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 equire',.'require-dev').as.$link
2aca0 54 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 Type).{.if.(isset($config[$linkT
2acc0 79 70 65 5d 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 ype])).{.$aliases.=.$this->extra
2ace0 63 74 41 6c 69 61 73 65 73 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 2c 20 24 61 ctAliases($config[$linkType],.$a
2ad00 6c 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 liases);.$stabilityFlags.=.$this
2ad20 2d 3e 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 63 6f 6e 66 69 67 5b ->extractStabilityFlags($config[
2ad40 24 6c 69 6e 6b 54 79 70 65 5d 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 72 $linkType],.$stabilityFlags);.$r
2ad60 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 eferences.=.$this->extractRefere
2ad80 6e 63 65 73 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 2c 20 24 72 65 66 65 72 65 nces($config[$linkType],.$refere
2ada0 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 41 6c 69 61 73 65 73 nces);.}.}..$package->setAliases
2adc0 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 53 74 61 62 69 6c 69 ($aliases);.$package->setStabili
2ade0 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 0a 24 70 61 63 6b 61 tyFlags($stabilityFlags);.$packa
2ae00 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 6e 63 65 73 29 3b 0a ge->setReferences($references);.
2ae20 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 75 6d 2d 73 74 61 62 .if.(isset($config['minimum-stab
2ae40 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 4d 69 6e 69 6d 75 6d ility'])).{.$package->setMinimum
2ae60 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 6e 6f 72 6d 61 6c 69 Stability(VersionParser::normali
2ae80 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 6d 75 6d 2d 73 74 61 zeStability($config['minimum-sta
2aea0 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 61 63 74 6f 72 79 3a bility']));.}..$repos.=.Factory:
2aec0 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 28 6e 75 6c 6c 2c :createDefaultRepositories(null,
2aee0 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 6e 61 67 65 72 29 3b .$this->config,.$this->manager);
2af00 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 0a 24 74 68 .foreach.($repos.as.$repo).{.$th
2af20 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 79 28 24 72 65 70 6f is->manager->addRepository($repo
2af40 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 6f 72 69 65 73 28 24 );.}.$package->setRepositories($
2af60 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 72 69 65 73 28 29 29 this->config->getRepositories())
2af80 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 69 76 61 74 65 20 66 ;..return.$package;.}..private.f
2afa0 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 72 61 79 20 24 72 65 unction.extractAliases(array.$re
2afc0 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 0a 66 6f 72 65 61 63 quires,.array.$aliases).{.foreac
2afe0 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 3d 3e 20 24 72 65 71 h.($requires.as.$reqName.=>.$req
2b000 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 28 27 7b 5e 28 5b 5e Version).{.if.(preg_match('{^([^
2b020 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 20 24 72 65 71 56 65 ,\s]+).+as.+([^,\s]+)$}',.$reqVe
2b040 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 73 5b 5d 20 3d 20 61 rsion,.$match)).{.$aliases[].=.a
2b060 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 6f 77 65 72 28 24 72 rray(.'package'.=>.strtolower($r
2b080 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 69 73 2d 3e 76 65 72 eqName),.'version'.=>.$this->ver
2b0a0 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 74 63 68 5b 31 5d 29 sionParser->normalize($match[1])
2b0c0 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 61 6c 69 61 73 5f 6e ,.'alias'.=>.$match[2],.'alias_n
2b0e0 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 69 6f 6e 50 61 72 73 ormalized'.=>.$this->versionPars
2b100 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 0a 29 3b 0a 7d 0a 7d er->normalize($match[2]),.);.}.}
2b120 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 76 61 74 65 20 66 75 ..return.$aliases;.}..private.fu
2b140 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 61 67 73 28 61 72 72 nction.extractStabilityFlags(arr
2b160 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 69 6c 69 74 79 46 6c ay.$requires,.array.$stabilityFl
2b180 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 65 50 61 63 6b 61 67 ags).{.$stabilities.=.BasePackag
2b1a0 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 28 24 72 65 71 75 69 e::$stabilities;.foreach.($requi
2b1c0 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 72 73 69 6f 6e 29 20 res.as.$reqName.=>.$reqVersion).
2b1e0 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 5c 73 5d 2a 3f 40 28 {...if.(preg_match('{^[^,\s]*?@(
2b200 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 24 73 74 61 62 69 '.implode('|',.array_keys($stabi
2b220 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 69 6f 6e 2c 20 24 6d lities)).')$}i',.$reqVersion,.$m
2b240 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 65 72 28 24 72 65 71 atch)).{.$name.=.strtolower($req
2b260 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
2b280 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 53 74 61 62 69 6c 69 [VersionParser::normalizeStabili
2b2a0 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 74 28 24 73 74 61 62 ty($match[1])];..if.(isset($stab
2b2c0 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 79 ilityFlags[$name]).&&.$stability
2b2e0 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 6e Flags[$name].>.$stability).{.con
2b300 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 20 tinue;.}.$stabilityFlags[$name].
2b320 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 7d 0a 0a 0a 20 69 66 =.$stability;..continue;.}....if
2b340 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 24 7d 27 2c 20 24 72 65 .(preg_match('{^[^,\s@]+$}',.$re
2b360 71 56 65 72 73 69 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 20 21 3d 3d 20 28 24 73 74 61 62 qVersion).&&.'stable'.!==.($stab
2b380 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 61 72 73 65 ilityName.=.VersionParser::parse
2b3a0 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 6e 61 6d 65 Stability($reqVersion))).{.$name
2b3c0 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 73 74 61 62 69 6c .=.strtolower($reqName);.$stabil
2b3e0 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 4e 61 6d ity.=.$stabilities[$stabilityNam
2b400 65 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e e];.if.(isset($stabilityFlags[$n
2b420 61 6d 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 ame]).&&.$stabilityFlags[$name].
2b440 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 >.$stability).{.continue;.}.$sta
2b460 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b bilityFlags[$name].=.$stability;
2b480 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a .}.}..return.$stabilityFlags;.}.
2b4a0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 52 65 66 65 72 65 6e .private.function.extractReferen
2b4c0 63 65 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 72 65 66 65 ces(array.$requires,.array.$refe
2b4e0 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 rences).{.foreach.($requires.as.
2b500 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 $reqName.=>.$reqVersion).{.if.(p
2b520 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 5b 61 2d 66 30 2d 39 5d reg_match('{^[^,\s@]+?#([a-f0-9]
2b540 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 20 26 26 20 27 +)$}',.$reqVersion,.$match).&&.'
2b560 64 65 76 27 20 3d 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 dev'.===.($stabilityName.=.Versi
2b580 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 72 65 71 56 65 72 onParser::parseStability($reqVer
2b5a0 73 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 sion))).{.$name.=.strtolower($re
2b5c0 71 4e 61 6d 65 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d 61 qName);.$references[$name].=.$ma
2b5e0 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 3b tch[1];.}.}..return.$references;
2b600 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 56 65 72 73 69 6f .}..private.function.guessVersio
2b620 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 66 75 6e 63 74 69 6f n(array.$config).{...if.(functio
2b640 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 20 26 26 20 30 20 3d 3d 3d 20 24 n_exists('proc_open').&&.0.===.$
2b660 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 6e this->process->execute('git.bran
2b680 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 ch.--no-color.--no-abbrev.-v',.$
2b6a0 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a output)).{.$branches.=.array();.
2b6c0 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 76 65 72 73 69 $isFeatureBranch.=.false;.$versi
2b6e0 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 on.=.null;..foreach.($this->proc
2b700 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 24 62 72 61 ess->splitLines($output).as.$bra
2b720 6e 63 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 nch).{.if.($branch.&&.preg_match
2b740 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 7c 5c ('{^(?:\*.).*(?:[^/.]+?/)?(\S+|\
2b760 28 6e 6f 20 62 72 61 6e 63 68 5c 29 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 (no.branch\)).*([a-f0-9]+)..*$}'
2b780 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 ,.$branch,.$match)).{.if.($match
2b7a0 5b 31 5d 20 3d 3d 3d 20 27 28 6e 6f 20 62 72 61 6e 63 68 29 27 29 20 7b 0a 24 76 65 72 73 69 6f [1].===.'(no.branch)').{.$versio
2b7c0 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 65 61 74 75 72 65 n.=.'dev-'.$match[2];.$isFeature
2b7e0 42 72 61 6e 63 68 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e Branch.=.true;.}.else.{.$version
2b800 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 69 .=.$this->versionParser->normali
2b820 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 zeBranch($match[1]);.$isFeatureB
2b840 72 61 6e 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 ranch.=.0.===.strpos($version,.'
2b860 64 65 76 2d 27 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 dev-');.if.('9999999-dev'.===.$v
2b880 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
2b8a0 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 ch[1];.}.}.}..if.($branch.&&.!pr
2b8c0 65 67 5f 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 eg_match('{^.*[^/]+/HEAD.}',.$br
2b8e0 61 6e 63 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 anch)).{.if.(preg_match('{^(?:\*
2b900 20 29 3f 20 2a 28 3f 3a 5b 5e 2f 20 5d 2b 3f 2f 29 3f 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d .)?.*(?:[^/.]+?/)?(\S+).*([a-f0-
2b920 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 9]+)..*$}',.$branch,.$match)).{.
2b940 24 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a $branches[].=.$match[1];.}.}.}..
2b960 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 if.(!$isFeatureBranch).{.return.
2b980 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 24 63 6f 6e $version;.}......if.((isset($con
2b9a0 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 20 26 26 fig['extra']['branch-alias']).&&
2b9c0 20 21 69 73 73 65 74 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 .!isset($config['extra']['branch
2b9e0 2d 61 6c 69 61 73 27 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a -alias'][$version])).||.strpos(j
2ba00 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 son_encode($config),.'"self.vers
2ba20 69 6f 6e 22 27 29 0a 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 ion"').).{.$branch.=.preg_replac
2ba40 65 28 27 7b 5e 64 65 76 2d 7d 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e e('{^dev-}',.'',.$version);.$len
2ba60 67 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 gth.=.PHP_INT_MAX;.foreach.($bra
2ba80 6e 63 68 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 63 61 nches.as.$candidate).{...if.($ca
2baa0 6e 64 69 64 61 74 65 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 7c 7c 20 21 70 72 65 67 5f 6d 61 74 ndidate.===.$branch.||.!preg_mat
2bac0 63 68 28 27 7b 5e 28 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 7c 64 65 76 65 ch('{^(master|trunk|default|deve
2bae0 6c 6f 70 7c 5c 64 2b 5c 2e 2e 2b 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a lop|\d+\..+)$}',.$candidate)).{.
2bb00 63 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 continue;.}.if.(0.!==.$this->pro
2bb20 63 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 cess->execute('git.rev-list.'.$c
2bb40 61 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 andidate.'..'.$branch,.$output))
2bb60 20 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 .{.continue;.}.if.(strlen($outpu
2bb80 74 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 t).<.$length).{.$length.=.strlen
2bba0 28 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 ($output);.$version.=.$this->ver
2bbc0 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 24 63 61 6e sionParser->normalizeBranch($can
2bbe0 64 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 didate);.if.('9999999-dev'.===.$
2bc00 76 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 version).{.$version.=.'dev-'.$ma
2bc20 74 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 tch[1];.}.}.}.}..return.$version
2bc40 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
2bc60 63 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 ce.Composer\Package;..use.Compos
2bc80 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 73 65 72 er\Package\Version\VersionParser
2bca0 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 65 6d 6f 72 79 50 61 63 6b 61 67 65 20 65 78 74 65 ;.......class.MemoryPackage.exte
2bcc0 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 24 74 79 70 nds.BasePackage.{.protected.$typ
2bce0 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 74 65 63 74 e;.protected.$targetDir;.protect
2bd00 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 65 63 74 65 ed.$installationSource;.protecte
2bd20 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 75 72 63 65 d.$sourceType;.protected.$source
2bd40 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 6e 63 65 3b Url;.protected.$sourceReference;
2bd60 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 74 65 64 20 .protected.$distType;.protected.
2bd80 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 65 72 65 6e $distUrl;.protected.$distReferen
2bda0 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 73 75 6d 3b ce;.protected.$distSha1Checksum;
2bdc0 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 24 .protected.$version;.protected.$
2bde0 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 70 6f 73 69 prettyVersion;.protected.$reposi
2be00 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 tories;.protected.$license.=.arr
2be20 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 70 72 ay();.protected.$releaseDate;.pr
2be40 6f 74 65 63 74 65 64 20 24 6b 65 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 otected.$keywords;.protected.$au
2be60 74 68 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 thors;.protected.$description;.p
2be80 72 6f 74 65 63 74 65 64 20 24 68 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 rotected.$homepage;.protected.$e
2bea0 78 74 72 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 xtra.=.array();.protected.$binar
2bec0 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 73 63 72 69 70 74 ies.=.array();.protected.$script
2bee0 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 6c 69 61 73 65 73 20 s.=.array();.protected.$aliases.
2bf00 3d 20 61 72 72 61 79 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 =.array();.protected.$alias;.pro
2bf20 74 65 63 74 65 64 20 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 tected.$prettyAlias;.protected.$
2bf40 64 65 76 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 dev;..protected.$minimumStabilit
2bf60 79 20 3d 20 27 73 74 61 62 6c 65 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 y.=.'stable';.protected.$stabili
2bf80 74 79 46 6c 61 67 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 tyFlags.=.array();.protected.$re
2bfa0 66 65 72 65 6e 63 65 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 ferences.=.array();..protected.$
2bfc0 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
2bfe0 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
2c000 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
2c020 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
2c040 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
2c060 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
2c080 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
2c0a0 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ludePaths.=.array();.protected.$
2c0c0 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 support.=.array();.........publi
2c0e0 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 24 76 c.function.__construct($name,.$v
2c100 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 6e 74 ersion,.$prettyVersion).{.parent
2c120 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 76 65 ::__construct($name);..$this->ve
2c140 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
2c160 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 73 2d ersion.=.$prettyVersion;..$this-
2c180 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 72 73 >stability.=.VersionParser::pars
2c1a0 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 65 76 eStability($version);.$this->dev
2c1c0 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 0a 7d .=.$this->stability.===.'dev';.}
2c1e0 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 0a 72 .....public.function.isDev().{.r
2c200 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 20 66 eturn.$this->dev;.}.....public.f
2c220 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 2d 3e unction.setType($type).{.$this->
2c240 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 63 74 type.=.$type;.}.....public.funct
2c260 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 74 79 ion.getType().{.return.$this->ty
2c280 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 66 75 pe.?:.'library';.}.....public.fu
2c2a0 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 20 24 nction.getStability().{.return.$
2c2c0 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 66 75 this->stability;.}.....public.fu
2c2e0 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 29 0a nction.setTargetDir($targetDir).
2c300 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 72 3b {.$this->targetDir.=.$targetDir;
2c320 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 65 74 .}.....public.function.getTarget
2c340 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 3b Dir().{.return.$this->targetDir;
2c360 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 45 78 74 72 61 28 .}.....public.function.setExtra(
2c380 61 72 72 61 79 20 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 20 3d 20 24 array.$extra).{.$this->extra.=.$
2c3a0 65 78 74 72 61 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 extra;.}.....public.function.get
2c3c0 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 3b 0a 7d Extra().{.return.$this->extra;.}
2c3e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 69 6e 61 72 69 65 73 .....public.function.setBinaries
2c400 28 61 72 72 61 79 20 24 62 69 6e 61 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 61 72 (array.$binaries).{.$this->binar
2c420 69 65 73 20 3d 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ies.=.$binaries;.}.....public.fu
2c440 6e 63 74 69 6f 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 nction.getBinaries().{.return.$t
2c460 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->binaries;.}.....public.func
2c480 74 69 6f 6e 20 73 65 74 53 63 72 69 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 70 74 73 29 0a tion.setScripts(array.$scripts).
2c4a0 7b 0a 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a {.$this->scripts.=.$scripts;.}..
2c4c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a ...public.function.getScripts().
2c4e0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 {.return.$this->scripts;.}.....p
2c500 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 61 72 72 61 79 20 ublic.function.setAliases(array.
2c520 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c $aliases).{.$this->aliases.=.$al
2c540 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 6e 20 67 65 74 iases;.}.....public.function.get
2c560 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 61 73 65 Aliases().{.return.$this->aliase
2c580 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 41 6c 69 61 s;.}.....public.function.setAlia
2c5a0 73 28 24 61 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 20 3d 20 24 61 6c 69 61 s($alias).{.$this->alias.=.$alia
2c5c0 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 41 6c 69 61 s;.}.....public.function.getAlia
2c5e0 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 0a 0a s().{.return.$this->alias;.}....
2c600 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 .public.function.setPrettyAlias(
2c620 24 70 72 65 74 74 79 41 6c 69 61 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 $prettyAlias).{.$this->prettyAli
2c640 61 73 20 3d 20 24 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 as.=.$prettyAlias;.}.....public.
2c660 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 0a 7b 0a 72 65 74 75 function.getPrettyAlias().{.retu
2c680 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 rn.$this->prettyAlias;.}.....pub
2c6a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 lic.function.setInstallationSour
2c6c0 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 ce($type).{.$this->installationS
2c6e0 6f 75 72 63 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 63 ource.=.$type;.}.....public.func
2c700 74 69 6f 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 tion.getInstallationSource().{.r
2c720 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b eturn.$this->installationSource;
2c740 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 53 6f 75 72 63 65 .}.....public.function.setSource
2c760 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 79 70 65 20 Type($type).{.$this->sourceType.
2c780 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 63 74 69 6f 6e 20 67 =.$type;.}.....public.function.g
2c7a0 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 etSourceType().{.return.$this->s
2c7c0 6f 75 72 63 65 54 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 ourceType;.}.....public.function
2c7e0 20 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 .setSourceUrl($url).{.$this->sou
2c800 72 63 65 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rceUrl.=.$url;.}.....public.func
2c820 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getSourceUrl().{.return.$th
2c840 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 is->sourceUrl;.}.....public.func
2c860 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e tion.setSourceReference($referen
2c880 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 20 3d 20 24 ce).{.$this->sourceReference.=.$
2c8a0 72 65 66 65 72 65 6e 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 reference;.}.....public.function
2c8c0 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 75 72 6e 20 24 .getSourceReference().{.return.$
2c8e0 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 this->sourceReference;.}.....pub
2c900 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 65 28 24 74 79 70 65 29 0a lic.function.setDistType($type).
2c920 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a {.$this->distType.=.$type;.}....
2c940 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b .public.function.getDistType().{
2c960 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->distType;.}.....p
2c980 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 72 6c 28 24 75 72 6c 29 0a ublic.function.setDistUrl($url).
2c9a0 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 {.$this->distUrl.=.$url;.}.....p
2c9c0 75 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 ublic.function.getDistUrl().{.re
2c9e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 turn.$this->distUrl;.}.....publi
2ca00 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 c.function.setDistReference($ref
2ca20 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 20 3d erence).{.$this->distReference.=
2ca40 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 20 66 75 6e 63 74 69 .$reference;.}.....public.functi
2ca60 6f 6e 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 on.getDistReference().{.return.$
2ca80 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 this->distReference;.}.....publi
2caa0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 24 c.function.setDistSha1Checksum($
2cac0 73 68 61 31 63 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 sha1checksum).{.$this->distSha1C
2cae0 68 65 63 6b 73 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 hecksum.=.$sha1checksum;.}.....p
2cb00 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 6b 73 ublic.function.getDistSha1Checks
2cb20 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 um().{.return.$this->distSha1Che
2cb40 63 6b 73 75 6d 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 cksum;.}.......public.function.s
2cb60 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 65 73 29 0a 7b 0a etRepositories($repositories).{.
2cb80 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 6f 73 69 74 6f 72 $this->repositories.=.$repositor
2cba0 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 20 67 65 74 52 65 ies;.}.....public.function.getRe
2cbc0 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 73 2d 3e 72 65 70 positories().{.return.$this->rep
2cbe0 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
2cc00 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 65 .getVersion().{.return.$this->ve
2cc20 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 74 rsion;.}.....public.function.get
2cc40 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 3e PrettyVersion().{.return.$this->
2cc60 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 69 63 20 66 75 prettyVersion;.}.......public.fu
2cc80 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 73 65 nction.setLicense(array.$license
2cca0 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 0a 7d ).{.$this->license.=.$license;.}
2ccc0 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 28 .....public.function.getLicense(
2cce0 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 0a ).{.return.$this->license;.}....
2cd00 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 61 ...public.function.setRequires(a
2cd20 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 65 rray.$requires).{.$this->require
2cd40 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 63 s.=.$requires;.}.....public.func
2cd60 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 69 tion.getRequires().{.return.$thi
2cd80 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 63 s->requires;.}.......public.func
2cda0 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 63 tion.setConflicts(array.$conflic
2cdc0 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 69 ts).{.$this->conflicts.=.$confli
2cde0 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 6f cts;.}.....public.function.getCo
2ce00 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 69 nflicts().{.return.$this->confli
2ce20 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 74 cts;.}.......public.function.set
2ce40 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 69 Provides(array.$provides).{.$thi
2ce60 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 70 s->provides.=.$provides;.}.....p
2ce80 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 72 ublic.function.getProvides().{.r
2cea0 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 70 eturn.$this->provides;.}.......p
2cec0 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 79 ublic.function.setReplaces(array
2cee0 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 20 .$replaces).{.$this->replaces.=.
2cf00 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 6e $replaces;.}.....public.function
2cf20 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 72 .getReplaces().{.return.$this->r
2cf40 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 6e eplaces;.}.......public.function
2cf60 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 72 .setDevRequires(array.$devRequir
2cf80 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 52 es).{.$this->devRequires.=.$devR
2cfa0 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 67 equires;.}.....public.function.g
2cfc0 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 3e etDevRequires().{.return.$this->
2cfe0 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 63 devRequires;.}.......public.func
2d000 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 73 tion.setSuggests(array.$suggests
2d020 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 3b ).{.$this->suggests.=.$suggests;
2d040 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 73 .}.....public.function.getSugges
2d060 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 7d ts().{.return.$this->suggests;.}
2d080 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 65 6c 65 61 73 .......public.function.setReleas
2d0a0 65 44 61 74 65 28 5c 44 61 74 65 54 69 6d 65 20 24 72 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a eDate(\DateTime.$releaseDate).{.
2d0c0 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 $this->releaseDate.=.$releaseDat
2d0e0 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 52 65 6c 65 e;.}.....public.function.getRele
2d100 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 aseDate().{.return.$this->releas
2d120 65 44 61 74 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 eDate;.}.......public.function.s
2d140 65 74 4b 65 79 77 6f 72 64 73 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 etKeywords(array.$keywords).{.$t
2d160 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a his->keywords.=.$keywords;.}....
2d180 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 0a 7b .public.function.getKeywords().{
2d1a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->keywords;.}......
2d1c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 .public.function.setAuthors(arra
2d1e0 79 20 24 61 75 74 68 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 y.$authors).{.$this->authors.=.$
2d200 61 75 74 68 6f 72 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 authors;.}.....public.function.g
2d220 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 etAuthors().{.return.$this->auth
2d240 6f 72 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 74 ors;.}.......public.function.set
2d260 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 Description($description).{.$thi
2d280 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 69 6f 6e 3b 0a 7d s->description.=.$description;.}
2d2a0 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 70 74 .....public.function.getDescript
2d2c0 69 6f 6e 28 29 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 ion().{.return.$this->descriptio
2d2e0 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 6e 20 73 65 74 48 6f n;.}.......public.function.setHo
2d300 6d 65 70 61 67 65 28 24 68 6f 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 mepage($homepage).{.$this->homep
2d320 61 67 65 20 3d 20 24 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 age.=.$homepage;.}.....public.fu
2d340 6e 63 74 69 6f 6e 20 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 nction.getHomepage().{.return.$t
2d360 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->homepage;.}.......public.fu
2d380 6e 63 74 69 6f 6e 20 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e 69 nction.setMinimumStability($mini
2d3a0 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 74 mumStability).{.$this->minimumSt
2d3c0 61 62 69 6c 69 74 79 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a ability.=.$minimumStability;.}..
2d3e0 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 75 6d 53 74 61 ...public.function.getMinimumSta
2d400 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 6d 69 6e 69 6d 75 6d bility().{.return.$this->minimum
2d420 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Stability;.}.......public.functi
2d440 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 73 74 61 62 on.setStabilityFlags(array.$stab
2d460 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c ilityFlags).{.$this->stabilityFl
2d480 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 70 75 62 ags.=.$stabilityFlags;.}.....pub
2d4a0 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 73 28 29 lic.function.getStabilityFlags()
2d4c0 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 79 46 6c 61 67 73 3b .{.return.$this->stabilityFlags;
2d4e0 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 52 65 66 65 .}.......public.function.setRefe
2d500 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 24 74 68 69 rences(array.$references).{.$thi
2d520 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a s->references.=.$references;.}..
2d540 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 ...public.function.getReferences
2d560 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d ().{.return.$this->references;.}
2d580 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 6f .......public.function.setAutolo
2d5a0 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 74 ad(array.$autoload).{.$this->aut
2d5c0 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 20 oload.=.$autoload;.}.....public.
2d5e0 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 20 function.getAutoload().{.return.
2d600 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 20 $this->autoload;.}.......public.
2d620 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 24 function.setIncludePaths(array.$
2d640 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 61 includePaths).{.$this->includePa
2d660 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 69 ths.=.$includePaths;.}.....publi
2d680 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 72 c.function.getIncludePaths().{.r
2d6a0 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 0a 0a 0a eturn.$this->includePaths;.}....
2d6c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 70 70 6f 72 74 28 61 72 ...public.function.setSupport(ar
2d6e0 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 20 3d ray.$support).{.$this->support.=
2d700 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$support;.}.....public.function
2d720 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 .getSupport().{.return.$this->su
2d740 70 70 6f 72 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 pport;.}.}.<?php............name
2d760 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 75 73 65 20 43 6f 6d space.Composer\Package;..use.Com
2d780 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 65 poser\Json\JsonFile;.use.Compose
2d7a0 72 5c 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 3b r\Installer\InstallationManager;
2d7c0 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 74 .use.Composer\Repository\Reposit
2d7e0 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 6c 5c 50 72 oryManager;.use.Composer\Util\Pr
2d800 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 50 61 63 6b ocessExecutor;.use.Composer\Pack
2d820 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c age\AliasPackage;........class.L
2d840 6f 63 6b 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 70 72 69 76 61 ocker.{.private.$lockFile;.priva
2d860 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 te.$repositoryManager;.private.$
2d880 69 6e 73 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 24 68 61 installationManager;.private.$ha
2d8a0 73 68 3b 0a 70 72 69 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 sh;.private.$lockDataCache;.....
2d8c0 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 74 .....public.function.__construct
2d8e0 28 4a 73 6f 6e 46 69 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 (JsonFile.$lockFile,.RepositoryM
2d900 61 6e 61 67 65 72 20 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 anager.$repositoryManager,.Insta
2d920 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 6e 4d 61 6e 61 llationManager.$installationMana
2d940 67 65 72 2c 20 24 68 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 ger,.$hash).{.$this->lockFile.=.
2d960 24 6c 6f 63 6b 46 69 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 $lockFile;.$this->repositoryMana
2d980 67 65 72 20 3d 20 24 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 ger.=.$repositoryManager;.$this-
2d9a0 3e 69 6e 73 74 61 6c 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 >installationManager.=.$installa
2d9c0 74 69 6f 6e 4d 61 6e 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 tionManager;.$this->hash.=.$hash
2d9e0 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 4c 6f 63 ;.}........public.function.isLoc
2da00 6b 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 ked($dev.=.false).{.if.(!$this->
2da20 6c 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 lockFile->exists()).{.return.fal
2da40 73 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 se;.}..$data.=.$this->getLockDat
2da60 61 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 a();.if.($dev).{.return.isset($d
2da80 61 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 ata['packages-dev']);.}..return.
2daa0 69 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 isset($data['packages']);.}.....
2dac0 0a 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 ..public.function.isFresh().{.$l
2dae0 6f 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 ock.=.$this->lockFile->read();..
2db00 72 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 return.$this->hash.===.$lock['ha
2db20 73 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 67 sh'];.}........public.function.g
2db40 65 74 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 28 24 64 65 76 20 3d 20 66 61 6c 73 65 29 0a 7b etLockedPackages($dev.=.false).{
2db60 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 74 61 28 .$lockData.=.$this->getLockData(
2db80 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 6f 63 6b 65 64 );.$packages.=.array();..$locked
2dba0 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
2dbc0 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
2dbe0 73 27 5d 3b 0a 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 s'];.$repo.=.$dev.?.$this->repos
2dc00 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
2dc20 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
2dc40 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 ->getLocalRepository();..foreach
2dc60 20 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 .($lockedPackages.as.$info).{.$r
2dc80 65 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 esolvedVersion.=.!empty($info['a
2dca0 6c 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 lias-version']).?.$info['alias-v
2dcc0 65 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 ersion'].:.$info['version'];....
2dce0 24 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 $package.=.$repo->findPackage($i
2dd00 6e 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 nfo['package'],.$resolvedVersion
2dd20 29 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 );....if.(!$package).{.$package.
2dd40 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 2d 3e 66 69 6e 64 =.$this->repositoryManager->find
2dd60 50 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 Package($info['package'],.$resol
2dd80 76 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 vedVersion);.}....if.(!$package.
2dda0 26 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 &&.!empty($info['alias-version']
2ddc0 29 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 )).{.$package.=.$this->repositor
2dde0 79 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 yManager->findPackage($info['pac
2de00 6b 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 kage'],.$info['version']);.if.($
2de20 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 package).{.$alias.=.new.AliasPac
2de40 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 76 65 72 73 kage($package,.$info['alias-vers
2de60 69 6f 6e 27 5d 2c 20 24 69 6e 66 6f 5b 27 61 6c 69 61 73 2d 70 72 65 74 74 79 2d 76 65 72 73 69 ion'],.$info['alias-pretty-versi
2de80 6f 6e 27 5d 29 3b 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 on']);.$package->getRepository()
2dea0 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d ->addPackage($alias);.$package.=
2dec0 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 .$alias;.}.}..if.(!$package).{.t
2dee0 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 6e 74 66 hrow.new.\LogicException(sprintf
2df00 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 63 6b 61 67 65 20 (.'Can.not.find."%s-%s".package.
2df20 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 27 2c 0a 24 69 6e in.registered.repositories',.$in
2df40 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 69 6f 6e 27 5d 0a fo['package'],.$info['version'].
2df60 29 29 3b 0a 7d 0a 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 ));.}..$packages[].=.$package;.}
2df80 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 75 ..return.$packages;.}..public.fu
2dfa0 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 24 nction.getMinimumStability().{.$
2dfc0 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 3b lockData.=.$this->getLockData();
2dfe0 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 75 ..return.isset($lockData['minimu
2e000 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 69 m-stability']).?.$lockData['mini
2e020 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 70 mum-stability'].:.'stable';.}..p
2e040 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 73 ublic.function.getStabilityFlags
2e060 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 44 ().{.$lockData.=.$this->getLockD
2e080 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 27 ata();..return.isset($lockData['
2e0a0 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 27 stability-flags']).?.$lockData['
2e0c0 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 0a stability-flags'].:.array();.}..
2e0e0 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 24 public.function.getAliases().{.$
2e100 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 3b lockData.=.$this->getLockData();
2e120 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 65 ..return.isset($lockData['aliase
2e140 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 72 s']).?.$lockData['aliases'].:.ar
2e160 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 63 ray();.}..public.function.getLoc
2e180 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 6f kData().{.if.(null.!==.$this->lo
2e1a0 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 63 ckDataCache).{.return.$this->loc
2e1c0 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 46 kDataCache;.}..if.(!$this->lockF
2e1e0 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 69 ile->exists()).{.throw.new.\Logi
2e200 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 55 cException('No.lockfile.found..U
2e220 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 3b nable.to.read.locked.packages');
2e240 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 20 .}..return.$this->lockDataCache.
2e260 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 0a =.$this->lockFile->read();.}....
2e280 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 6b 44 61 .......public.function.setLockDa
2e2a0 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 67 65 73 ta(array.$packages,.$devPackages
2e2c0 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 62 69 6c ,.array.$aliases,.$minimumStabil
2e2e0 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 0a 24 6c ity,.array.$stabilityFlags).{.$l
2e300 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 3e 68 61 ock.=.array(.'hash'.=>.$this->ha
2e320 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 61 67 65 sh,.'packages'.=>.null,.'package
2e340 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 24 61 6c s-dev'.=>.null,.'aliases'.=>.$al
2e360 69 61 73 65 73 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 24 6d iases,.'minimum-stability'.=>.$m
2e380 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 61 67 inimumStability,.'stability-flag
2e3a0 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 24 6c 6f 63 6b s'.=>.$stabilityFlags,.);..$lock
2e3c0 5b 27 70 61 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 ['packages'].=.$this->lockPackag
2e3e0 65 73 28 24 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 es($packages);.if.(null.!==.$dev
2e400 50 61 63 6b 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 Packages).{.$lock['packages-dev'
2e420 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 64 65 76 50 61 63 6b ].=.$this->lockPackages($devPack
2e440 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 ages);.}..if.(!$this->isLocked()
2e460 20 7c 7c 20 24 6c 6f 63 6b 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 .||.$lock.!==.$this->getLockData
2e480 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 28 24 6c 6f ()).{.$this->lockFile->write($lo
2e4a0 63 6b 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 6e 75 6c 6c ck);.$this->lockDataCache.=.null
2e4c0 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b ;..return.true;.}..return.false;
2e4e0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 50 61 63 6b 61 67 65 .}..private.function.lockPackage
2e500 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 20 3d 20 61 s(array.$packages).{.$locked.=.a
2e520 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 rray();..foreach.($packages.as.$
2e540 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 24 package).{.$alias.=.null;..if.($
2e560 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)
2e580 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 70 61 63 6b 61 67 65 20 3d .{.$alias.=.$package;.$package.=
2e5a0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 24 6e 61 6d .$package->getAliasOf();.}..$nam
2e5c0 65 20 3d 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 3b 0a 24 e.=.$package->getPrettyName();.$
2e5e0 76 65 72 73 69 6f 6e 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 version.=.$package->getPrettyVer
2e600 73 69 6f 6e 28 29 3b 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 sion();..if.(!$name.||.!$version
2e620 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 70 ).{.throw.new.\LogicException(sp
2e640 72 69 6e 74 66 28 0a 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 rintf(.'Package."%s".has.no.vers
2e660 69 6f 6e 20 6f 72 20 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 ion.or.name.and.can.not.be.locke
2e680 64 27 2c 20 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 61 72 72 61 d',.$package.));.}..$spec.=.arra
2e6a0 79 28 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 y('package'.=>.$name,.'version'.
2e6c0 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 =>.$version);..if.($package->isD
2e6e0 65 76 28 29 20 26 26 20 21 24 61 6c 69 61 73 29 20 7b 0a 24 73 70 65 63 5b 27 73 6f 75 72 63 65 ev().&&.!$alias).{.$spec['source
2e700 2d 72 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 -reference'].=.$package->getSour
2e720 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 69 66 20 28 27 67 69 74 27 20 3d 3d 3d 20 24 70 61 ceReference();.if.('git'.===.$pa
2e740 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 74 68 20 ckage->getSourceType().&&.$path.
2e760 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 3e 67 65 =.$this->installationManager->ge
2e780 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 70 72 6f 63 65 tInstallPath($package)).{.$proce
2e7a0 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 69 66 20 28 ss.=.new.ProcessExecutor();.if.(
2e7c0 30 20 3d 3d 3d 20 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 6c 6f 67 0.===.$process->execute('git.log
2e7e0 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 63 74 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 .-n1.--pretty=%ct.'.escapeshella
2e800 72 67 28 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 rg($package->getSourceReference(
2e820 29 29 2c 20 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 63 6f )),.$output,.$path)).{.$spec['co
2e840 6d 6d 69 74 2d 64 61 74 65 27 5d 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d mmit-date'].=.trim($output);.}.}
2e860 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 73 29 20 7b 0a 24 73 70 65 63 5b 27 61 6c 69 61 73 2d 70 .}..if.($alias).{.$spec['alias-p
2e880 72 65 74 74 79 2d 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 61 6c 69 61 73 2d 3e 67 65 74 50 72 65 retty-version'].=.$alias->getPre
2e8a0 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 73 70 65 63 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 ttyVersion();.$spec['alias-versi
2e8c0 6f 6e 27 5d 20 3d 20 24 61 6c 69 61 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a on'].=.$alias->getVersion();.}..
2e8e0 24 6c 6f 63 6b 65 64 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 $locked[].=.$spec;.}..usort($loc
2e900 6b 65 64 2c 20 66 75 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 ked,.function.($a,.$b).{.$compar
2e920 69 73 6f 6e 20 3d 20 73 74 72 63 6d 70 28 24 61 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 62 5b ison.=.strcmp($a['package'],.$b[
2e940 27 70 61 63 6b 61 67 65 27 5d 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 'package']);..if.(0.!==.$compari
2e960 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 son).{.return.$comparison;.}....
2e980 24 61 56 65 72 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 61 5b 27 61 6c 69 61 73 2d 76 65 72 73 $aVersion.=.isset($a['alias-vers
2e9a0 69 6f 6e 27 5d 29 20 3f 20 24 61 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 20 3a 20 24 ion']).?.$a['alias-version'].:.$
2e9c0 61 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 24 62 56 65 72 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 a['version'];.$bVersion.=.isset(
2e9e0 24 62 5b 27 61 6c 69 61 73 2d 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 62 5b 27 61 6c 69 61 73 $b['alias-version']).?.$b['alias
2ea00 2d 76 65 72 73 69 6f 6e 27 5d 20 3a 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 0a 72 65 74 -version'].:.$b['version'];..ret
2ea20 75 72 6e 20 73 74 72 63 6d 70 28 24 61 56 65 72 73 69 6f 6e 2c 20 24 62 56 65 72 73 69 6f 6e 29 urn.strcmp($aVersion,.$bVersion)
2ea40 3b 0a 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 ;.});..return.$locked;.}.}.<?php
2ea60 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
2ea80 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
2eaa0 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
2eac0 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 52 65 face;.use.Composer\Repository\Re
2eae0 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 positoryInterface;.....interface
2eb00 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 69 63 20 .PackageInterface.{......public.
2eb20 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 6c 69 63 function.getName();.......public
2eb40 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 0a 0a 0a .function.getPrettyName();......
2eb60 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 29 3b 0a ....public.function.getNames();.
2eb80 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 69 64 29 ......public.function.setId($id)
2eba0 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 28 29 3b ;.......public.function.getId();
2ebc0 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 6d 61 74 63 68 65 ..........public.function.matche
2ebe0 73 28 24 6e 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 s($name,.LinkConstraintInterface
2ec00 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$constraint);.......public.func
2ec20 74 69 6f 6e 20 69 73 44 65 76 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tion.isDev();.......public.funct
2ec40 69 6f 6e 20 67 65 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 ion.getType();.......public.func
2ec60 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.getTargetDir();.......publi
2ec80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 c.function.getExtra();.......pub
2eca0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 lic.function.setInstallationSour
2ecc0 63 65 28 24 74 79 70 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 ce($type);.......public.function
2ece0 20 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 0a 0a 0a 0a 0a .getInstallationSource();.......
2ed00 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 3b public.function.getSourceType();
2ed20 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 6f 75 72 63 65 .......public.function.getSource
2ed40 55 72 6c 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 Url();.......public.function.get
2ed60 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 SourceReference();.......public.
2ed80 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 function.getDistType();.......pu
2eda0 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 3b 0a 0a 0a 0a 0a blic.function.getDistUrl();.....
2edc0 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 52 65 66 65 72 65 6e ..public.function.getDistReferen
2ede0 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 74 44 ce();.......public.function.getD
2ee00 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 istSha1Checksum();.......public.
2ee20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 function.getScripts();.......pub
2ee40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a lic.function.getVersion();......
2ee60 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 56 65 72 73 69 6f .public.function.getPrettyVersio
2ee80 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 65 74 53 74 n();.......public.function.getSt
2eea0 61 62 69 6c 69 74 79 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 ability();.......public.function
2eec0 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .getLicense();........public.fun
2eee0 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ction.getRequires();........publ
2ef00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a ic.function.getConflicts();.....
2ef20 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 65 73 28 29 ...public.function.getProvides()
2ef40 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 70 6c ;........public.function.getRepl
2ef60 61 63 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 aces();........public.function.g
2ef80 65 74 44 65 76 52 65 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 etDevRequires();........public.f
2efa0 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a unction.getSuggests();..........
2efc0 0a 0a 70 75 62 6c 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 3b ..public.function.getAutoload();
2efe0 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 49 6e 63 6c 75 ........public.function.getInclu
2f000 64 65 50 61 74 68 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 dePaths();.........public.functi
2f020 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 62 6c on.getRepositories();.......publ
2f040 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 ic.function.setRepository(Reposi
2f060 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 3b 0a 0a 0a 0a 0a toryInterface.$repository);.....
2f080 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 6f 72 79 28 ..public.function.getRepository(
2f0a0 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 65 6c 65 );.......public.function.getRele
2f0c0 61 73 65 44 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 aseDate();.......public.function
2f0e0 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .getKeywords();.......public.fun
2f100 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ction.getDescription();.......pu
2f120 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 0a 0a 0a blic.function.getBinaries();....
2f140 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 ...public.function.getHomepage()
2f160 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 67 65 74 41 75 74 ;.........public.function.getAut
2f180 68 6f 72 73 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 hors();.......public.function.ge
2f1a0 74 41 6c 69 61 73 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 tAlias();.......public.function.
2f1c0 67 65 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 getPrettyAlias();.......public.f
2f1e0 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 unction.getUniqueName();.......p
2f200 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 3b 0a 0a 0a 0a ublic.function.__toString();....
2f220 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 74 72 69 ...public.function.getPrettyStri
2f240 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 53 ng();.......public.function.getS
2f260 75 70 70 6f 72 74 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 upport();.}.<?php............nam
2f280 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 75 73 65 20 43 6f espace.Composer\Package;..use.Co
2f2a0 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 4c 69 mposer\Package\LinkConstraint\Li
2f2c0 6e 6b 43 6f 6e 73 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 nkConstraintInterface;.use.Compo
2f2e0 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
2f300 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 52 65 70 6f 73 onConstraint;.use.Composer\Repos
2f320 69 74 6f 72 79 5c 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 itory\RepositoryInterface;.use.C
2f340 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
2f360 69 74 6f 72 79 3b 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 itory;.......abstract.class.Base
2f380 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 Package.implements.PackageInterf
2f3a0 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 ace.{.public.static.$supportedLi
2f3c0 6e 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 61 72 nkTypes.=.array(.'require'.=>.ar
2f3e0 72 61 79 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 27 2c ray('description'.=>.'requires',
2f400 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c .'method'.=>.'requires'),.'confl
2f420 69 63 74 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 ict'.=>.array('description'.=>.'
2f440 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 conflicts',.'method'.=>.'conflic
2f460 74 73 27 29 2c 0a 27 70 72 6f 76 69 64 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 ts'),.'provide'.=>.array('descri
2f480 70 74 69 6f 6e 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d ption'.=>.'provides',.'method'.=
2f4a0 3e 20 27 70 72 6f 76 69 64 65 73 27 29 2c 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 >.'provides'),.'replace'.=>.arra
2f4c0 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 y('description'.=>.'replaces',.'
2f4e0 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 method'.=>.'replaces'),.'require
2f500 2d 64 65 76 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 -dev'.=>.array('description'.=>.
2f520 27 72 65 71 75 69 72 65 73 20 28 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 'requires.(for.development)',.'m
2f540 65 74 68 6f 64 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f ethod'.=>.'devRequires'),.);..co
2f560 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 nst.STABILITY_STABLE.=.0;.const.
2f580 53 54 41 42 49 4c 49 54 59 5f 52 43 20 3d 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 STABILITY_RC.=.5;.const.STABILIT
2f5a0 59 5f 42 45 54 41 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 Y_BETA.=.10;.const.STABILITY_ALP
2f5c0 48 41 20 3d 20 31 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 HA.=.15;.const.STABILITY_DEV.=.2
2f5e0 30 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 0;..public.static.$stabilities.=
2f600 20 61 72 72 61 79 28 0a 27 73 74 61 62 6c 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c .array(.'stable'.=>.self::STABIL
2f620 49 54 59 5f 53 54 41 42 4c 45 2c 0a 27 52 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c ITY_STABLE,.'RC'.=>.self::STABIL
2f640 49 54 59 5f 52 43 2c 0a 27 62 65 74 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 ITY_RC,.'beta'.=>.self::STABILIT
2f660 59 5f 42 45 54 41 2c 0a 27 61 6c 70 68 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 Y_BETA,.'alpha'.=>.self::STABILI
2f680 54 59 5f 41 4c 50 48 41 2c 0a 27 64 65 76 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 TY_ALPHA,.'dev'.=>.self::STABILI
2f6a0 54 59 5f 44 45 56 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f TY_DEV,.);..protected.$name;.pro
2f6c0 74 65 63 74 65 64 20 24 70 72 65 74 74 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 tected.$prettyName;..protected.$
2f6e0 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 0a 0a 0a 0a repository;.protected.$id;......
2f700 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
2f720 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b me).{.$this->prettyName.=.$name;
2f740 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 .$this->name.=.strtolower($name)
2f760 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ;.$this->id.=.-1;.}.....public.f
2f780 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 73 unction.getName().{.return.$this
2f7a0 2d 3e 6e 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 67 65 ->name;.}.....public.function.ge
2f7c0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 tPrettyName().{.return.$this->pr
2f7e0 65 74 74 79 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 ettyName;.}.....public.function.
2f800 67 65 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 getNames().{.$names.=.array(.$th
2f820 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 is->getName().=>.true,.);..forea
2f840 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e ch.($this->getProvides().as.$lin
2f860 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 5d 20 k).{.$names[$link->getTarget()].
2f880 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 =.true;.}..foreach.($this->getRe
2f8a0 70 6c 61 63 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 69 6e places().as.$link).{.$names[$lin
2f8c0 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 72 65 74 75 72 k->getTarget()].=.true;.}..retur
2f8e0 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c n.array_keys($names);.}.....publ
2f900 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 69 73 2d 3e ic.function.setId($id).{.$this->
2f920 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 id.=.$id;.}.....public.function.
2f940 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 0a getId().{.return.$this->id;.}...
2f960 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 74 63 68 65 73 28 24 .......public.function.matches($
2f980 6e 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 63 name,.LinkConstraintInterface.$c
2f9a0 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 3d 3d onstraint).{.if.($this->name.===
2f9c0 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 .$name).{.return.$constraint->ma
2f9e0 74 63 68 65 73 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 tches(new.VersionConstraint('=='
2fa00 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 ,.$this->getVersion()));.}..fore
2fa20 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 ach.($this->getProvides().as.$li
2fa40 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 29 20 3d 3d 3d nk).{.if.($link->getTarget().===
2fa60 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 68 65 73 28 24 .$name.&&.$constraint->matches($
2fa80 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 65 74 75 72 6e link->getConstraint())).{.return
2faa0 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 .true;.}.}..foreach.($this->getR
2fac0 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d eplaces().as.$link).{.if.($link-
2fae0 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 24 63 6f 6e 73 74 >getTarget().===.$name.&&.$const
2fb00 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 raint->matches($link->getConstra
2fb20 69 6e 74 28 29 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 74 75 int())).{.return.true;.}.}..retu
2fb40 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 67 65 74 rn.false;.}..public.function.get
2fb60 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 3e 72 65 70 Repository().{.return.$this->rep
2fb80 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 73 65 74 52 ository;.}..public.function.setR
2fba0 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 72 epository(RepositoryInterface.$r
2fbc0 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 73 69 74 6f epository).{.if.($this->reposito
2fbe0 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 69 6f 6e 28 ry).{.throw.new.\LogicException(
2fc00 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 20 74 6f 20 'A.package.can.only.be.added.to.
2fc20 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 65 70 6f 73 one.repository');.}.$this->repos
2fc40 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 75 62 itory.=.$repository;.}.......pub
2fc60 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 72 65 74 75 lic.function.isPlatform().{.retu
2fc80 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 73 74 61 6e rn.$this->getRepository().instan
2fca0 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 0a 0a 0a 0a ceof.PlatformRepository;.}......
2fcc0 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 29 .public.function.getUniqueName()
2fce0 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 2d 27 2e 24 .{.return.$this->getName().'-'.$
2fd00 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 63 20 66 75 this->getVersion();.}..public.fu
2fd20 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 63 65 20 24 nction.equals(PackageInterface.$
2fd40 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 20 28 24 74 package).{.$self.=.$this;.if.($t
2fd60 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 20 7b 0a 24 his.instanceof.AliasPackage).{.$
2fd80 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 7d 0a 69 66 self.=.$this->getAliasOf();.}.if
2fda0 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 6b 61 .($package.instanceof.AliasPacka
2fdc0 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 65 74 41 6c ge).{.$package.=.$package->getAl
2fde0 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 3d 3d 3d 20 iasOf();.}..return.$package.===.
2fe00 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 6f 6e 20 5f $self;.}.......public.function._
2fe20 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 67 65 74 55 _toString().{.return.$this->getU
2fe40 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 69 6f 6e 20 niqueName();.}..public.function.
2fe60 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 74 68 69 73 getPrettyString().{.return.$this
2fe80 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 3e 67 65 74 ->getPrettyName().'.'.$this->get
2fea0 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 75 6e 63 74 PrettyVersion();.}..public.funct
2fec0 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 69 74 6f 72 ion.__clone().{.$this->repositor
2fee0 79 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 0a 6e y.=.null;.}.}.<?php............n
2ff00 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 56 65 72 73 69 6f amespace.Composer\Package\Versio
2ff20 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 42 61 73 65 50 61 63 n;..use.Composer\Package\BasePac
2ff40 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 50 61 63 6b 61 kage;.use.Composer\Package\Packa
2ff60 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
2ff80 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 e\LinkConstraint\MultiConstraint
2ffa0 3b 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 43 6f 6e 73 74 ;.use.Composer\Package\LinkConst
2ffc0 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 raint\VersionConstraint;.......c
2ffe0 6c 61 73 73 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 lass.VersionParser.{.private.sta
30000 74 69 63 20 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 tic.$modifierRegex.=.'[._-]?(?:(
30020 62 65 74 61 7c 62 7c 52 43 7c 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a beta|b|RC|alpha|a|patch|pl|p)(?:
30040 5b 2e 2d 5d 3f 28 5c 64 2b 29 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a [.-]?(\d+))?)?([.-]?dev)?';.....
30060 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 70 61 72 73 65 53 ...public.static.function.parseS
30080 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 tability($version).{.$version.=.
300a0 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 23 5b 61 2d 66 30 2d 39 5d 2b 24 7d 69 27 2c 20 27 preg_replace('{#[a-f0-9]+$}i',.'
300c0 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 ',.$version);..if.('dev-'.===.su
300e0 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d bstr($version,.0,.4).||.'-dev'.=
30100 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 ==.substr($version,.-4)).{.retur
30120 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a n.'dev';.}..preg_match('{'.self:
30140 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 :$modifierRegex.'$}',.$version,.
30160 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 29 29 20 $match);.if.(!empty($match[3])).
30180 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 28 24 6d {.return.'dev';.}..if.(!empty($m
301a0 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 61 74 63 atch[1])).{.if.('beta'.===.$matc
301c0 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 72 65 74 h[1].||.'b'.===.$match[1]).{.ret
301e0 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 20 24 6d urn.'beta';.}.if.('alpha'.===.$m
30200 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 20 7b 0a atch[1].||.'a'.===.$match[1]).{.
30220 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 52 43 27 20 3d 3d 3d 20 24 return.'alpha';.}.if.('RC'.===.$
30240 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 0a 72 65 match[1]).{.return.'RC';.}.}..re
30260 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 69 63 20 turn.'stable';.}..public.static.
30280 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 73 74 61 function.normalizeStability($sta
302a0 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 6f 77 65 bility).{.$stability.=.strtolowe
302c0 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 6c 69 74 r($stability);..return.$stabilit
302e0 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 79 3b 0a y.===.'rc'.?.'RC'.:.$stability;.
30300 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 6d 61 74 }..public.static.function.format
30320 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 6b 61 67 Version(PackageInterface.$packag
30340 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 70 61 63 e,.$truncate.=.true).{.if.(!$pac
30360 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 61 63 6b kage->isDev().||.!in_array($pack
30380 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 68 67 27 age->getSourceType(),.array('hg'
303a0 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 3e 67 65 ,.'git'))).{.return.$package->ge
303c0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 tPrettyVersion();.}..return.$pac
303e0 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 20 27 20 2e kage->getPrettyVersion()...'.'..
30400 20 28 24 74 72 75 6e 63 61 74 65 20 3f 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 .($truncate.?.substr($package->g
30420 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 36 29 20 3a 20 24 70 61 etSourceReference(),.0,.6).:.$pa
30440 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 7d 0a ckage->getSourceReference());.}.
30460 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 72 6d 61 6c 69 7a 65 .......public.function.normalize
30480 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 72 69 6d 28 24 76 65 ($version).{.$version.=.trim($ve
304a0 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 28 27 7b 5e 28 5b 5e rsion);....if.(preg_match('{^([^
304c0 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 20 24 76 65 72 73 69 ,\s]+).+as.+([^,\s]+)$}',.$versi
304e0 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 20 24 6d 61 74 63 68 on,.$match)).{.$version.=.$match
30500 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 27 7b 5e 28 3f 3a 64 [1];.}....if.(preg_match('{^(?:d
30520 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 75 6c 74 29 24 7d 69 ev-)?(?:master|trunk|default)$}i
30540 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 39 39 39 39 39 39 2d ',.$version)).{.return.'9999999-
30560 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 74 72 74 6f 6c 6f 77 dev';.}..if.('dev-'.===.strtolow
30580 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 29 29 20 7b 0a 72 65 er(substr($version,.0,.4))).{.re
305a0 74 75 72 6e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 turn.strtolower($version);.}....
305c0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e if.(preg_match('{^v?(\d{1,3})(\.
305e0 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f \d+)?(\.\d+)?(\.\d+)?'.self::$mo
30600 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 difierRegex.'$}i',.$version,.$ma
30620 74 63 68 65 73 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 tches)).{.$version.=.$matches[1]
30640 0a 2e 28 21 65 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 ..(!empty($matches[2]).?.$matche
30660 73 5b 32 5d 20 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 s[2].:.'.0')..(!empty($matches[3
30680 5d 29 20 3f 20 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 ]).?.$matches[3].:.'.0')..(!empt
306a0 79 28 24 6d 61 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 y($matches[4]).?.$matches[4].:.'
306c0 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 3d 20 35 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 .0');.$index.=.5;.}.elseif.(preg
306e0 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 34 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 32 7d _match('{^v?(\d{4}(?:[.:-]?\d{2}
30700 29 7b 31 2c 36 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 31 2c 33 7d 29 3f 29 27 2e 73 65 6c 66 3a ){1,6}(?:[.:-]?\d{1,3})?)'.self:
30720 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c :$modifierRegex.'$}i',.$version,
30740 20 24 6d 61 74 63 68 65 73 29 29 20 7b 20 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f .$matches)).{...$version.=.preg_
30760 72 65 70 6c 61 63 65 28 27 7b 5c 44 7d 27 2c 20 27 2d 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d replace('{\D}',.'-',.$matches[1]
30780 29 3b 0a 24 69 6e 64 65 78 20 3d 20 32 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 69 );.$index.=.2;.}....if.(isset($i
307a0 6e 64 65 78 29 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e ndex)).{.if.(!empty($matches[$in
307c0 64 65 78 5d 29 29 20 7b 0a 24 6d 6f 64 20 3d 20 61 72 72 61 79 28 27 7b 5e 70 6c 3f 24 7d 69 27 dex])).{.$mod.=.array('{^pl?$}i'
307e0 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 64 20 3d 20 61 ,.'{^rc$}i');.$modNormalized.=.a
30800 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 6f 6e 20 2e 3d rray('patch',.'RC');.$version..=
30820 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 64 4e 6f 72 6d .'-'.preg_replace($mod,.$modNorm
30840 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 5b 24 69 6e 64 alized,.strtolower($matches[$ind
30860 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 6e 64 65 78 2b ex]))...(!empty($matches[$index+
30880 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 27 27 29 3b 0a 1]).?.$matches[$index+1].:.'');.
308a0 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 65 78 2b 32 5d }..if.(!empty($matches[$index+2]
308c0 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 0a 72 65 74 75 )).{.$version..=.'-dev';.}..retu
308e0 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 6d 61 74 63 68 rn.$version;.}....if.(preg_match
30900 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 69 6f 6e 2c 20 ('{(.*?)[.-]?dev$}i',.$version,.
30920 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 69 73 2d 3e 6e $match)).{.try.{.return.$this->n
30940 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 7d 20 63 61 74 ormalizeBranch($match[1]);.}.cat
30960 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 6f 77 20 6e ch.(\Exception.$e).{}.}..throw.n
30980 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 49 6e ew.\UnexpectedValueException('In
309a0 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 27 2e 24 76 65 72 73 69 6f 6e 29 valid.version.string.'.$version)
309c0 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 72 6d 61 ;.}........public.function.norma
309e0 6c 69 7a 65 42 72 61 6e 63 68 28 24 6e 61 6d 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 74 72 69 6d lizeBranch($name).{.$name.=.trim
30a00 28 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 ($name);..if.(in_array($name,.ar
30a20 72 61 79 28 27 6d 61 73 74 65 72 27 2c 20 27 74 72 75 6e 6b 27 2c 20 27 64 65 66 61 75 6c 74 27 ray('master',.'trunk',.'default'
30a40 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6e ))).{.return.$this->normalize($n
30a60 61 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 76 3f 28 5c 64 ame);.}..if.(preg_match('#^v?(\d
30a80 2b 29 28 5c 2e 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 +)(\.(?:\d+|[x*]))?(\.(?:\d+|[x*
30aa0 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 2a 5d 29 29 3f 24 23 69 27 2c 20 24 6e 61 6d 65 ]))?(\.(?:\d+|[x*]))?$#i',.$name
30ac0 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 27 3b 0a 66 6f ,.$matches)).{.$version.=.'';.fo
30ae0 72 20 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 20 35 3b 20 24 69 2b 2b 29 20 7b 0a 24 76 65 72 73 r.($i.=.1;.$i.<.5;.$i++).{.$vers
30b00 69 6f 6e 20 2e 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3f 20 73 74 72 ion..=.isset($matches[$i]).?.str
30b20 5f 72 65 70 6c 61 63 65 28 27 2a 27 2c 20 27 78 27 2c 20 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 _replace('*',.'x',.$matches[$i])
30b40 20 3a 20 27 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 .:.'.x';.}..return.str_replace('
30b60 78 27 2c 20 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f 6e 29 2e 27 2d 64 65 76 27 3b x',.'9999999',.$version).'-dev';
30b80 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a .}..return.'dev-'.$name;.}......
30ba0 0a 0a 70 75 62 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 ..public.function.parseConstrain
30bc0 74 73 28 24 63 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 ts($constraints).{.$prettyConstr
30be0 61 69 6e 74 20 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 aint.=.$constraints;..if.(preg_m
30c00 61 74 63 68 28 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 atch('{^([^,\s]*?)@('.implode('|
30c20 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 74 61 62 ',.array_keys(BasePackage::$stab
30c40 69 6c 69 74 69 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 ilities)).')$}i',.$constraints,.
30c60 24 6d 61 74 63 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 $match)).{.$constraints.=.empty(
30c80 24 6d 61 74 63 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 $match[1]).?.'*'.:.$match[1];.}.
30ca0 0a 69 66 20 28 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 .if.(preg_match('{^(dev-[^,\s@]+
30cc0 3f 7c 5b 5e 2c 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 ?|[^,\s@]+?\.x-dev)#[a-f0-9]+$}i
30ce0 27 2c 20 24 63 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 ',.$constraints,.$match)).{.$con
30d00 73 74 72 61 69 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 straints.=.$match[1];.}..$constr
30d20 61 69 6e 74 73 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 aints.=.preg_split('{\s*,\s*}',.
30d40 74 72 69 6d 28 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 trim($constraints));..if.(count(
30d60 24 63 6f 6e 73 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 $constraints).>.1).{.$constraint
30d80 4f 62 6a 65 63 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 Objects.=.array();.foreach.($con
30da0 73 74 72 61 69 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 straints.as.$constraint).{.$cons
30dc0 74 72 61 69 6e 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 traintObjects.=.array_merge($con
30de0 73 74 72 61 69 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 straintObjects,.$this->parseCons
30e00 74 72 61 69 6e 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 traint($constraint));.}.}.else.{
30e20 0a 24 63 6f 6e 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 .$constraintObjects.=.$this->par
30e40 73 65 43 6f 6e 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 seConstraint($constraints[0]);.}
30e60 0a 0a 69 66 20 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 ..if.(1.===.count($constraintObj
30e80 65 63 74 73 29 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 ects)).{.$constraint.=.$constrai
30ea0 6e 74 4f 62 6a 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 ntObjects[0];.}.else.{.$constrai
30ec0 6e 74 20 3d 20 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 nt.=.new.MultiConstraint($constr
30ee0 61 69 6e 74 4f 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 aintObjects);.}..$constraint->se
30f00 74 50 72 65 74 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 tPrettyString($prettyConstraint)
30f20 3b 0a 0a 72 65 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 ;..return.$constraint;.}..privat
30f40 65 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 28 24 63 6f 6e 73 e.function.parseConstraint($cons
30f60 74 72 61 69 6e 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 78 2a 5d traint).{.if.(preg_match('{^[x*]
30f80 28 5c 2e 5b 78 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 (\.[x*])*$}i',.$constraint)).{.r
30fa0 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 eturn.array();.}....if.(preg_mat
30fc0 63 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 ch('{^(\d+)(?:\.(\d+))?(?:\.(\d+
30fe0 29 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 ))?\.[x*]$}',.$constraint,.$matc
31000 68 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 hes)).{.if.(isset($matches[3])).
31020 7b 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 {.$highVersion.=.$matches[1]...'
31040 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 74 63 68 65 .'...$matches[2]...'.'...$matche
31060 73 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 s[3]...'.9999999';.if.($matches[
31080 33 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 3].===.'0').{.$lowVersion.=.$mat
310a0 63 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 ches[1]...'.'...($matches[2].-.1
310c0 29 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 )...'.9999999.9999999';.}.else.{
310e0 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 20 2e 20 27 2e 27 .$lowVersion.=.$matches[1]...'.'
31100 20 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 ...$matches[2]...'.'...($matches
31120 5b 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 [3].-.1)..'.9999999';.}.}.elseif
31140 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 68 69 67 68 56 65 72 .(isset($matches[2])).{.$highVer
31160 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 6d 61 74 63 sion.=.$matches[1]...'.'...$matc
31180 68 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 hes[2]...'.9999999.9999999';.if.
311a0 28 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 ($matches[2].===.'0').{.$lowVers
311c0 69 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 ion.=.($matches[1].-.1)...'.9999
311e0 39 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 999.9999999.9999999';.}.else.{.$
31200 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 2e lowVersion.=.$matches[1]...'.'..
31220 20 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 .($matches[2].-.1)...'.9999999.9
31240 39 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 999999';.}.}.else.{.$highVersion
31260 20 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 .=.$matches[1]...'.9999999.99999
31280 39 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 99.9999999';.if.($matches[1].===
312a0 20 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 .'0').{.return.array(new.Version
312c0 43 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 Constraint('<',.$highVersion));.
312e0 7d 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 }.else.{.$lowVersion.=.($matches
31300 5b 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 [1].-.1)...'.9999999.9999999.999
31320 39 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 9999';.}.}..return.array(.new.Ve
31340 72 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 rsionConstraint('>',.$lowVersion
31360 29 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 ),.new.VersionConstraint('<',.$h
31380 69 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 ighVersion),.);.}....if.(preg_ma
313a0 74 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 tch('{^(<>|!=|>=?|<=?|==?)?\s*(.
313c0 2a 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 *)}',.$constraint,.$matches)).{.
313e0 74 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 try.{.$version.=.$this->normaliz
31400 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 e($matches[2]);..return.array(ne
31420 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 w.VersionConstraint($matches[1].
31440 3f 3a 20 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 ?:.'=',.$version));.}.catch.(\Ex
31460 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 ception.$e).{}.}..throw.new.\Une
31480 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 75 6c 64 20 6e 6f 74 xpectedValueException('Could.not
314a0 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e .parse.version.constraint.'.$con
314c0 73 74 72 61 69 6e 74 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 straint);.}.}.<?php............n
314e0 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 75 73 65 20 amespace.Composer\Package;..use.
31500 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\
31520 56 65 72 73 69 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 VersionConstraint;.use.Composer\
31540 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 0a Package\Version\VersionParser;..
31560 0a 0a 0a 63 6c 61 73 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 ...class.AliasPackage.extends.Ba
31580 73 65 50 61 63 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a sePackage.{.protected.$version;.
315a0 70 72 6f 74 65 63 74 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 protected.$prettyVersion;.protec
315c0 74 65 64 20 24 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 4f 66 3b 0a 70 72 ted.$dev;.protected.$aliasOf;.pr
315e0 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 66 61 6c 73 otected.$rootPackageAlias.=.fals
31600 65 3b 0a 70 72 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 e;.protected.$stability;..protec
31620 74 65 64 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 ted.$requires;.protected.$confli
31640 63 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 65 63 cts;.protected.$provides;.protec
31660 74 65 64 20 24 72 65 70 6c 61 63 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 63 6f 6d 6d ted.$replaces;.protected.$recomm
31680 65 6e 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 3b 0a 0a 0a 0a 0a 0a ends;.protected.$suggests;......
316a0 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 50 ...public.function.__construct(P
316c0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 ackageInterface.$aliasOf,.$versi
316e0 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 6e 74 3a 3a 5f 5f on,.$prettyVersion).{.parent::__
31700 63 6f 6e 73 74 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a construct($aliasOf->getName());.
31720 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 .$this->version.=.$version;.$thi
31740 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f s->prettyVersion.=.$prettyVersio
31760 6e 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 74 n;.$this->aliasOf.=.$aliasOf;.$t
31780 68 69 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 his->stability.=.VersionParser::
317a0 70 61 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 parseStability($version);.$this-
317c0 3e 64 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 >dev.=.$this->stability.===.'dev
317e0 27 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c ';....foreach.(array('requires',
31800 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e .'devRequires').as.$type).{.$lin
31820 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 ks.=.$aliasOf->{'get'.ucfirst($t
31840 79 70 65 29 7d 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 69 6e 64 ype)}();.foreach.($links.as.$ind
31860 65 78 20 3d 3e 20 24 6c 69 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 ex.=>.$link).{...if.('self.versi
31880 6f 6e 27 20 3d 3d 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 on'.===.$link->getPrettyConstrai
318a0 6e 74 28 29 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 69 6e 64 65 78 5d 20 3d 20 6e 65 77 20 4c 69 6e nt()).{.$links[$index].=.new.Lin
318c0 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 k($link->getSource(),.$link->get
318e0 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 Target(),.new.VersionConstraint(
31900 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 74 68 '=',.$this->version),.$type,.$th
31920 69 73 2d 3e 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d is->version);.}.}.$this->$type.=
31940 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 63 6f .$links;.}....foreach.(array('co
31960 6e 66 6c 69 63 74 73 27 2c 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 63 65 73 27 nflicts',.'provides',.'replaces'
31980 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 73 4f 66 2d ).as.$type).{.$links.=.$aliasOf-
319a0 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 24 6e 65 77 4c >{'get'.ucfirst($type)}();.$newL
319c0 69 6e 6b 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 6e 6b 73 20 inks.=.array();.foreach.($links.
319e0 61 73 20 24 6c 69 6e 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 as.$link).{...if.('self.version'
31a00 20 3d 3d 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 .===.$link->getPrettyConstraint(
31a20 29 29 20 7b 0a 24 6e 65 77 4c 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e )).{.$newLinks[].=.new.Link($lin
31a40 6b 2d 3e 67 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 k->getSource(),.$link->getTarget
31a60 28 29 2c 20 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 (),.new.VersionConstraint('=',.$
31a80 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 74 68 69 73 2d 3e 76 65 this->version),.$type,.$this->ve
31aa0 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 61 72 72 61 79 rsion);.}.}.$this->$type.=.array
31ac0 5f 6d 65 72 67 65 28 24 6c 69 6e 6b 73 2c 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 0a 7d 0a 0a _merge($links,.$newLinks);.}.}..
31ae0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 4f 66 28 29 0a 7b 0a 72 public.function.getAliasOf().{.r
31b00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c eturn.$this->aliasOf;.}.....publ
31b20 69 63 20 66 75 6e 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 ic.function.getVersion().{.retur
31b40 6e 20 24 74 68 69 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 n.$this->version;.}.....public.f
31b60 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 20 unction.getStability().{.return.
31b80 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 66 $this->stability;.}.....public.f
31ba0 75 6e 63 74 69 6f 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 unction.getPrettyVersion().{.ret
31bc0 75 72 6e 20 24 74 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 urn.$this->prettyVersion;.}.....
31be0 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 0a 72 65 74 75 72 6e public.function.isDev().{.return
31c00 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 20 66 75 6e 63 74 69 .$this->dev;.}.....public.functi
31c20 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 69 73 2d on.getRequires().{.return.$this-
31c40 3e 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 63 74 69 6f 6e >requires;.}.....public.function
31c60 20 67 65 74 43 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 .getConflicts().{.return.$this->
31c80 63 6f 6e 66 6c 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 conflicts;.}.....public.function
31ca0 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 .getProvides().{.return.$this->p
31cc0 72 6f 76 69 64 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 rovides;.}.....public.function.g
31ce0 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 72 65 70 etReplaces().{.return.$this->rep
31d00 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 6e 20 67 65 74 laces;.}.....public.function.get
31d20 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 3e 64 65 DevRequires().{.return.$this->de
31d40 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 vRequires;.}.........public.func
31d60 74 69 6f 6e 20 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 29 tion.setRootPackageAlias($value)
31d80 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 .{.return.$this->rootPackageAlia
31da0 73 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 s.=.$value;.}......public.functi
31dc0 6f 6e 20 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e on.isRootPackageAlias().{.return
31de0 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a .$this->rootPackageAlias;.}.....
31e00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 public.function.getAlias().{.ret
31e20 75 72 6e 20 27 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 67 65 urn.'';.}.....public.function.ge
31e40 74 50 72 65 74 74 79 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 0a tPrettyAlias().{.return.'';.}...
31e60 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 28 29 0a 7b 0a 72 ...public.function.getType().{.r
31e80 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 54 79 70 65 28 29 3b eturn.$this->aliasOf->getType();
31ea0 0a 7d 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 44 69 72 28 .}.public.function.getTargetDir(
31ec0 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 54 61 ).{.return.$this->aliasOf->getTa
31ee0 72 67 65 74 44 69 72 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 rgetDir();.}.public.function.get
31f00 45 78 74 72 61 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 Extra().{.return.$this->aliasOf-
31f20 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 >getExtra();.}.public.function.s
31f40 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 0a 7b 0a 24 74 etInstallationSource($type).{.$t
31f60 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 his->aliasOf->setInstallationSou
31f80 72 63 65 28 24 74 79 70 65 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 rce($type);.}.public.function.ge
31fa0 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 24 tInstallationSource().{.return.$
31fc0 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f this->aliasOf->getInstallationSo
31fe0 75 72 63 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 6f 75 urce();.}.public.function.getSou
32000 72 63 65 54 79 70 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 rceType().{.return.$this->aliasO
32020 66 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e f->getSourceType();.}.public.fun
32040 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ction.getSourceUrl().{.return.$t
32060 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d 0a his->aliasOf->getSourceUrl();.}.
32080 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 65 6e public.function.getSourceReferen
320a0 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 67 65 ce().{.return.$this->aliasOf->ge
320c0 74 53 6f 75 72 63 65 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 tSourceReference();.}.public.fun
320e0 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 ction.setSourceReference($refere
32100 6e 63 65 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 73 65 nce).{.return.$this->aliasOf->se
32120 74 53 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 3b 0a 7d 0a tSourceReference($reference);.}.
32140 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a public.function.getDistType().{.
32160 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 69 73 74 54 79 return.$this->aliasOf->getDistTy
32180 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 44 69 73 74 55 pe();.}.public.function.getDistU
321a0 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 4f 66 2d 3e 67 65 rl().{.return.$this->aliasOf->ge
321c0 74 44 69 73 74 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 tDistUrl();.}.public.function.ge
321e0 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tDistReference().{.return.$this-
32200 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a >aliasOf->getDistReference();.}.
32220 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 6b public.function.getDistSha1Check
32240 73 75 6d 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 sum().{.return.$this->aliasOf->g
32260 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 etDistSha1Checksum();.}.public.f
32280 75 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 unction.getScripts().{.return.$t
322a0 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 0a 70 75 his->aliasOf->getScripts();.}.pu
322c0 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 61 72 72 61 79 20 24 blic.function.setAliases(array.$
322e0 61 6c 69 61 73 65 73 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 aliases).{.return.$this->aliasOf
32300 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 70 75 62 6c 69 63 ->setAliases($aliases);.}.public
32320 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.
32340 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a $this->aliasOf->getAliases();.}.
32360 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 28 29 0a 7b 0a 72 public.function.getLicense().{.r
32380 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 4c 69 63 65 6e 73 65 eturn.$this->aliasOf->getLicense
323a0 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 41 75 74 6f 6c 6f 61 ();.}.public.function.getAutoloa
323c0 64 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 d().{.return.$this->aliasOf->get
323e0 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Autoload();.}.public.function.ge
32400 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tIncludePaths().{.return.$this->
32420 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 7d 0a 70 75 aliasOf->getIncludePaths();.}.pu
32440 62 6c 69 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 blic.function.getRepositories().
32460 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 52 65 70 6f {.return.$this->aliasOf->getRepo
32480 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 sitories();.}.public.function.ge
324a0 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 tReleaseDate().{.return.$this->a
324c0 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 7d 0a 70 75 62 6c liasOf->getReleaseDate();.}.publ
324e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 ic.function.getBinaries().{.retu
32500 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 rn.$this->aliasOf->getBinaries()
32520 3b 0a 7d 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 ;.}.public.function.getKeywords(
32540 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 4b 65 ).{.return.$this->aliasOf->getKe
32560 79 77 6f 72 64 73 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 44 ywords();.}.public.function.getD
32580 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 3e 61 6c 69 escription().{.return.$this->ali
325a0 61 73 4f 66 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 asOf->getDescription();.}.public
325c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getHomepage().{.return
325e0 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a .$this->aliasOf->getHomepage();.
32600 7d 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 73 74 73 28 29 0a }.public.function.getSuggests().
32620 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 75 67 67 {.return.$this->aliasOf->getSugg
32640 65 73 74 73 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 41 75 74 ests();.}.public.function.getAut
32660 68 6f 72 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 hors().{.return.$this->aliasOf->
32680 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 getAuthors();.}.public.function.
326a0 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 getSupport().{.return.$this->ali
326c0 61 73 4f 66 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e asOf->getSupport();.}.public.fun
326e0 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 70 61 72 65 ction.__toString().{.return.pare
32700 6e 74 3a 3a 5f 5f 74 6f 53 74 72 69 6e 67 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 nt::__toString().'.(alias.of.'.$
32720 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b this->aliasOf->getVersion().')';
32740 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.
32760 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 72 5c Composer\Package;..use.Composer\
32780 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 74 Package\LinkConstraint\LinkConst
327a0 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 63 raintInterface;.use.Composer\Pac
327c0 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 61 kage\PackageInterface;.......cla
327e0 73 73 20 4c 69 6e 6b 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 3b 0a 70 72 6f ss.Link.{.protected.$source;.pro
32800 74 65 63 74 65 64 20 24 74 61 72 67 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 tected.$target;.protected.$const
32820 72 61 69 6e 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a raint;.protected.$description;..
32840 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
32860 75 63 74 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 uct($source,.$target,.LinkConstr
32880 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 3d 20 6e 75 6c 6c aintInterface.$constraint.=.null
328a0 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 72 65 6c 61 74 65 73 20 74 6f 27 2c 20 24 ,.$description.=.'relates.to',.$
328c0 70 72 65 74 74 79 43 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 prettyConstraint.=.null).{.$this
328e0 2d 3e 73 6f 75 72 63 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 29 3b 0a ->source.=.strtolower($source);.
32900 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 $this->target.=.strtolower($targ
32920 65 74 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 et);.$this->constraint.=.$constr
32940 61 69 6e 74 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 aint;.$this->description.=.$desc
32960 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 ription;.$this->prettyConstraint
32980 20 3d 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 .=.$prettyConstraint;.}..public.
329a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 function.getSource().{.return.$t
329c0 68 69 73 2d 3e 73 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 his->source;.}..public.function.
329e0 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 getTarget().{.return.$this->targ
32a00 65 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 43 6f 6e 73 74 72 et;.}..public.function.getConstr
32a20 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e aint().{.return.$this->constrain
32a40 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 65 74 74 79 43 t;.}..public.function.getPrettyC
32a60 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 onstraint().{.if.(null.===.$this
32a80 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ->prettyConstraint).{.throw.new.
32aa0 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
32ac0 66 28 27 4c 69 6e 6b 20 25 73 20 68 61 73 20 62 65 65 6e 20 6d 69 73 63 6f 6e 66 69 67 75 72 65 f('Link.%s.has.been.misconfigure
32ae0 64 20 61 6e 64 20 68 61 64 20 6e 6f 20 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 67 69 d.and.had.no.prettyConstraint.gi
32b00 76 65 6e 2e 27 2c 20 24 74 68 69 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ven.',.$this));.}..return.$this-
32b20 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e >prettyConstraint;.}..public.fun
32b40 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 24 74 68 69 ction.__toString().{.return.$thi
32b60 73 2d 3e 73 6f 75 72 63 65 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e s->source.'.'.$this->description
32b80 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 63 .'.'.$this->target.'.('.$this->c
32ba0 6f 6e 73 74 72 61 69 6e 74 2e 27 29 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f onstraint.')';.}..public.functio
32bc0 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 n.getPrettyString(PackageInterfa
32be0 63 65 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 73 6f 75 ce.$sourcePackage).{.return.$sou
32c00 72 63 65 50 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 2e 27 20 rcePackage->getPrettyString().'.
32c20 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->
32c40 74 61 72 67 65 74 2e 27 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 target.'.'.$this->constraint->ge
32c60 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a tPrettyString().'';.}.}.<?php...
32c80 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 6b .........namespace.Composer\Pack
32ca0 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 age\LinkConstraint;.......class.
32cc0 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 MultiConstraint.implements.LinkC
32ce0 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 onstraintInterface.{.protected.$
32d00 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 constraints;.protected.$prettySt
32d20 72 69 6e 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 63 6f ring;.......public.function.__co
32d40 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 0a 7b 0a 24 74 nstruct(array.$constraints).{.$t
32d60 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b his->constraints.=.$constraints;
32d80 0a 7d 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 .}..public.function.matches(Link
32da0 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).{
32dc0 0a 66 6f 72 65 61 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 .foreach.($this->constraints.as.
32de0 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 2d $constraint).{.if.(!$constraint-
32e00 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 >matches($provider)).{.return.fa
32e20 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 70 75 62 6c 69 63 lse;.}.}..return.true;.}..public
32e40 20 66 75 6e 63 74 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 .function.setPrettyString($prett
32e60 79 53 74 72 69 6e 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 yString).{.$this->prettyString.=
32e80 20 24 70 72 65 74 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 .$prettyString;.}..public.functi
32ea0 6f 6e 20 67 65 74 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 on.getPrettyString().{.if.($this
32ec0 2d 3e 70 72 65 74 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 ->prettyString).{.return.$this->
32ee0 70 72 65 74 74 79 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 prettyString;.}..return.$this->_
32f00 5f 74 6f 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 69 6f 6e 20 _toString();.}..public.function.
32f20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 __toString().{.$constraints.=.ar
32f40 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 6e 73 74 72 61 69 6e ray();.foreach.($this->constrain
32f60 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 74 ts.as.$constraint).{.$constraint
32f80 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b s[].=.$constraint->__toString();
32fa0 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f .}..return.'['.implode(',.',.$co
32fc0 6e 73 74 72 61 69 6e 74 73 29 2e 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a nstraints).']';.}.}.<?php.......
32fe0 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 5c .....namespace.Composer\Package\
33000 4c 69 6e 6b 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 20 56 65 LinkConstraint;.........class.Ve
33020 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 rsionConstraint.extends.Specific
33040 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a Constraint.{.private.$operator;.
33060 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 private.$version;........public.
33080 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 function.__construct($operator,.
330a0 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 27 3d 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f $version).{.if.('='.===.$operato
330c0 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 27 3c r).{.$operator.=.'==';.}..if.('<
330e0 3e 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 6f 72 20 3d 20 >'.===.$operator).{.$operator.=.
33100 27 21 3d 27 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 70 65 72 '!=';.}..$this->operator.=.$oper
33120 61 74 6f 72 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b ator;.$this->version.=.$version;
33140 0a 7d 0a 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 6f 6d 70 61 .}..public.function.versionCompa
33160 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 27 64 65 76 re($a,.$b,.$operator).{.if.('dev
33180 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 2c 20 30 2c 20 34 29 20 26 26 20 27 64 65 76 2d -'.===.substr($a,.0,.4).&&.'dev-
331a0 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 2c 20 30 2c 20 34 29 29 20 7b 0a 72 65 74 75 72 6e '.===.substr($b,.0,.4)).{.return
331c0 20 24 6f 70 65 72 61 74 6f 72 20 3d 3d 20 27 3d 3d 27 20 26 26 20 24 61 20 3d 3d 3d 20 24 62 3b .$operator.==.'=='.&&.$a.===.$b;
331e0 0a 7d 0a 0a 72 65 74 75 72 6e 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 .}..return.version_compare($a,.$
33200 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e b,.$operator);.}......public.fun
33220 63 74 69 6f 6e 20 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 ction.matchSpecific(VersionConst
33240 72 61 69 6e 74 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 20 raint.$provider).{.$noEqualOp.=.
33260 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 str_replace('=',.'',.$this->oper
33280 61 74 6f 72 29 3b 0a 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f ator);.$providerNoEqualOp.=.str_
332a0 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 replace('=',.'',.$provider->oper
332c0 61 74 6f 72 29 3b 0a 0a 24 69 73 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 74 ator);..$isEqualOp.=.'=='.===.$t
332e0 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 his->operator;.$isNonEqualOp.=.'
33300 21 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 !='.===.$this->operator;.$isProv
33320 69 64 65 72 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 iderEqualOp.=.'=='.===.$provider
33340 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f ->operator;.$isProviderNonEqualO
33360 70 20 3d 20 27 21 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 p.=.'!='.===.$provider->operator
33380 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 69 73 4e 6f 6e 45 71 75 61 6c 4f 70 20 7c 7c 20 24 69 73 50 ;......if.($isNonEqualOp.||.$isP
333a0 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 24 69 73 roviderNonEqualOp).{.return.!$is
333c0 45 71 75 61 6c 4f 70 20 26 26 20 21 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 0a 7c EqualOp.&&.!$isProviderEqualOp.|
333e0 7c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 |.$this->versionCompare($provide
33400 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 27 21 3d 27 r->version,.$this->version,.'!='
33420 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d );.}......if.($this->operator.!=
33440 20 27 3d 3d 27 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 .'=='.&&.$noEqualOp.==.$provider
33460 4e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 NoEqualOp).{.return.true;.}..if.
33480 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 ($this->versionCompare($provider
334a0 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 ->version,.$this->version,.$this
334c0 2d 3e 6f 70 65 72 61 74 6f 72 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 ->operator)).{.....if.($provider
334e0 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 ->version.==.$this->version.&&.$
33500 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e provider->operator.==.$providerN
33520 6f 45 71 75 61 6c 4f 70 20 26 26 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 oEqualOp.&&.$this->operator.!=.$
33540 6e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 noEqualOp).{.return.false;.}..re
33560 74 75 72 6e 20 74 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 turn.true;.}..return.false;.}..p
33580 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 0a 72 65 ublic.function.__toString().{.re
335a0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e turn.$this->operator.'.'.$this->
335c0 76 65 72 73 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 0a 6e 61 version;.}.}.<?php............na
335e0 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 6e 6b 43 6f 6e mespace.Composer\Package\LinkCon
33600 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 straint;.......abstract.class.Sp
33620 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b ecificConstraint.implements.Link
33640 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 ConstraintInterface.{.protected.
33660 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $prettyString;..public.function.
33680 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 matches(LinkConstraintInterface.
336a0 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 $provider).{.if.($provider.insta
336c0 6e 63 65 6f 66 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 nceof.MultiConstraint).{...retur
336e0 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 n.$provider->matches($this);.}.e
33700 6c 73 65 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 24 74 68 69 lseif.($provider.instanceof.$thi
33720 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 s).{.return.$this->matchSpecific
33740 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a ($provider);.}..return.true;.}..
33760 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 public.function.setPrettyString(
33780 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 $prettyString).{.$this->prettySt
337a0 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ring.=.$prettyString;.}..public.
337c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 function.getPrettyString().{.if.
337e0 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 ($this->prettyString).{.return.$
33800 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 this->prettyString;.}..return.$t
33820 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 0a 7d 0a 3c 3f his->__toString();.}........}.<?
33840 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
33860 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 0a 0a 0a r\Package\LinkConstraint;.......
33880 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 interface.LinkConstraintInterfac
338a0 65 0a 7b 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 e.{.public.function.matches(Link
338c0 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 3b 0a ConstraintInterface.$provider);.
338e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 public.function.setPrettyString(
33900 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $prettyString);.public.function.
33920 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 getPrettyString();.public.functi
33940 6f 6e 20 5f 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 on.__toString();.}.<?php........
33960 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 6d ....namespace.Composer;..use.Com
33980 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 0a 0a 63 6c 61 73 poser\IO\IOInterface;.......clas
339a0 73 20 43 61 63 68 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 s.Cache.{.private.$io;.private.$
339c0 72 6f 6f 74 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 0a root;.private.$enabled.=.true;..
339e0 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 4f 49 6e public.function.__construct(IOIn
33a00 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 61 63 68 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d terface.$io,.$cacheDir).{.$this-
33a20 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 74 72 69 6d 28 24 >io.=.$io;.$this->root.=.rtrim($
33a40 63 61 63 68 65 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 0a 69 66 20 28 21 69 73 cacheDir,.'/\\')...'/';..if.(!is
33a60 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 _dir($this->root)).{.if.(!@mkdir
33a80 28 24 74 68 69 73 2d 3e 72 6f 6f 74 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 ($this->root,.0777,.true)).{.$th
33aa0 69 73 2d 3e 65 6e 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c is->enabled.=.false;.}.}.}..publ
33ac0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ic.function.getRoot().{.return.$
33ae0 74 68 69 73 2d 3e 72 6f 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 this->root;.}..public.function.r
33b00 65 61 64 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 ead($file).{.$file.=.preg_replac
33b20 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 66 69 6c 65 29 3b 0a e('{[^a-z0-9.]}i',.'-',.$file);.
33b40 69 66 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 if.($this->enabled.&&.file_exist
33b60 73 28 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 s($this->root...$file)).{.return
33b80 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e .file_get_contents($this->root..
33ba0 20 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 .$file);.}.}..public.function.wr
33bc0 69 74 65 28 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 69 66 20 28 24 74 68 69 ite($file,.$contents).{.if.($thi
33be0 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 s->enabled).{.$file.=.preg_repla
33c00 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 66 69 6c 65 29 3b ce('{[^a-z0-9.]}i',.'-',.$file);
33c20 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 72 6f 6f 74 20 2e .file_put_contents($this->root..
33c40 20 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 .$file,.$contents);.}.}..public.
33c60 66 75 6e 63 74 69 6f 6e 20 73 68 61 31 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 function.sha1($file).{.$file.=.p
33c80 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 69 27 2c 20 27 2d 27 reg_replace('{[^a-z0-9.]}i',.'-'
33ca0 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 ,.$file);.if.($this->enabled.&&.
33cc0 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 file_exists($this->root...$file)
33ce0 29 20 7b 0a 72 65 74 75 72 6e 20 73 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 ).{.return.sha1_file($this->root
33d00 20 2e 20 24 66 69 6c 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 ...$file);.}.}.}.<?php..........
33d20 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 63 79 52 ..namespace.Composer\DependencyR
33d40 65 73 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 50 esolver;..use.Composer\Package\P
33d60 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 50 ackageInterface;.....interface.P
33d80 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e olicyInterface.{.public.function
33da0 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 .versionCompare(PackageInterface
33dc0 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 .$a,.PackageInterface.$b,.$opera
33de0 74 6f 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 tor);.public.function.findUpdate
33e00 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 79 20 24 69 6e 73 74 Packages(Pool.$pool,.array.$inst
33e20 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b alledMap,.PackageInterface.$pack
33e40 61 67 65 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 age);.public.function.selectPref
33e60 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 79 20 24 eredPackages(Pool.$pool,.array.$
33e80 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 29 3b 0a installedMap,.array.$literals);.
33ea0 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
33ec0 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
33ee0 61 73 73 20 52 75 6c 65 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 ass.RuleSet.implements.\Iterator
33f00 41 67 67 72 65 67 61 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 20 63 6f 6e 73 74 20 Aggregate,.\Countable.{...const.
33f20 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4a 4f 42 TYPE_PACKAGE.=.0;.const.TYPE_JOB
33f40 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 20 34 3b 0a 0a 70 .=.1;.const.TYPE_LEARNED.=.4;..p
33f60 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a rotected.static.$types.=.array(.
33f80 2d 31 20 3d 3e 20 27 55 4e 4b 4e 4f 57 4e 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 50 41 43 4b -1.=>.'UNKNOWN',.self::TYPE_PACK
33fa0 41 47 45 20 3d 3e 20 27 50 41 43 4b 41 47 45 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4a 4f 42 AGE.=>.'PACKAGE',.self::TYPE_JOB
33fc0 20 3d 3e 20 27 4a 4f 42 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3e .=>.'JOB',.self::TYPE_LEARNED.=>
33fe0 20 27 4c 45 41 52 4e 45 44 27 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 .'LEARNED',.);..protected.$rules
34000 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 42 79 49 64 3b 0a 70 72 6f 74 65 63 74 65 64 ;.protected.$ruleById;.protected
34020 20 24 6e 65 78 74 52 75 6c 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 42 .$nextRuleId;..protected.$rulesB
34040 79 48 61 73 68 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 yHash;..public.function.__constr
34060 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 20 3d 20 30 3b 0a 0a uct().{.$this->nextRuleId.=.0;..
34080 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 54 79 70 65 73 28 29 20 61 73 20 24 74 foreach.($this->getTypes().as.$t
340a0 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 ype).{.$this->rules[$type].=.arr
340c0 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 20 3d 20 61 72 ay();.}..$this->rulesByHash.=.ar
340e0 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 61 64 64 28 52 75 ray();.}..public.function.add(Ru
34100 6c 65 20 24 72 75 6c 65 2c 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 le.$rule,.$type).{.if.(!isset(se
34120 6c 66 3a 3a 24 74 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 lf::$types[$type])).{.throw.new.
34140 5c 4f 75 74 4f 66 42 6f 75 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 72 \OutOfBoundsException('Unknown.r
34160 75 6c 65 20 74 79 70 65 3a 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 ule.type:.'...$type);.}..if.(!is
34180 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 set($this->rules[$type])).{.$thi
341a0 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 24 74 s->rules[$type].=.array();.}..$t
341c0 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 74 68 his->rules[$type][].=.$rule;.$th
341e0 69 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 5d 20 is->ruleById[$this->nextRuleId].
34200 3d 20 24 72 75 6c 65 3b 0a 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 65 28 24 74 79 70 65 29 3b 0a =.$rule;.$rule->setType($type);.
34220 0a 24 72 75 6c 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 29 .$rule->setId($this->nextRuleId)
34240 3b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b 0a 0a 24 68 61 73 68 20 3d 20 ;.$this->nextRuleId++;..$hash.=.
34260 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 $rule->getHash();.if.(!isset($th
34280 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b 0a 24 74 68 69 73 is->rulesByHash[$hash])).{.$this
342a0 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 61 79 28 24 72 75 ->rulesByHash[$hash].=.array($ru
342c0 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 le);.}.else.{.$this->rulesByHash
342e0 5b 24 68 61 73 68 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 [$hash][].=.$rule;.}.}..public.f
34300 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e unction.count().{.return.$this->
34320 6e 65 78 74 52 75 6c 65 49 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 nextRuleId;.}..public.function.r
34340 75 6c 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c uleById($id).{.return.$this->rul
34360 65 42 79 49 64 5b 24 69 64 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 eById[$id];.}..public.function.g
34380 65 74 52 75 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b etRules().{.return.$this->rules;
343a0 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 28 .}..public.function.getIterator(
343c0 29 0a 7b 0a 72 65 74 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 ).{.return.new.RuleSetIterator($
343e0 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e this->getRules());.}..public.fun
34400 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 24 74 79 70 65 73 29 0a 7b 0a 69 ction.getIteratorFor($types).{.i
34420 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d f.(!is_array($types)).{.$types.=
34440 20 61 72 72 61 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c 6c 52 75 6c 65 73 20 3d 20 24 .array($types);.}..$allRules.=.$
34460 74 68 69 73 2d 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 this->getRules();.$rules.=.array
34480 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).{
344a0 0a 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 75 6c 65 73 5b 24 74 79 70 65 .$rules[$type].=.$allRules[$type
344c0 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 ];.}..return.new.RuleSetIterator
344e0 28 24 72 75 6c 65 73 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
34500 49 74 65 72 61 74 6f 72 57 69 74 68 6f 75 74 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 IteratorWithout($types).{.if.(!i
34520 73 5f 61 72 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 s_array($types)).{.$types.=.arra
34540 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 y($types);.}..$rules.=.$this->ge
34560 74 52 75 6c 65 73 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 tRules();..foreach.($types.as.$t
34580 79 70 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a ype).{.unset($rules[$type]);.}..
345a0 72 65 74 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 return.new.RuleSetIterator($rule
345c0 73 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 54 79 70 65 73 28 s);.}..public.function.getTypes(
345e0 29 0a 7b 0a 24 74 79 70 65 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 70 65 73 3b 0a 75 6e 73 65 74 ).{.$types.=.self::$types;.unset
34600 28 24 74 79 70 65 73 5b 2d 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 ($types[-1]);..return.array_keys
34620 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e ($types);.}..public.function.con
34640 74 61 69 6e 73 45 71 75 61 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 tainsEqual($rule).{.if.(isset($t
34660 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 his->rulesByHash[$rule->getHash(
34680 29 5d 29 29 20 7b 0a 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 3d 20 24 74 )])).{.$potentialDuplicates.=.$t
346a0 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 his->rulesByHash[$rule->getHash(
346c0 29 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 )];.foreach.($potentialDuplicate
346e0 73 20 61 73 20 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 20 7b 0a 69 66 20 28 s.as.$potentialDuplicate).{.if.(
34700 24 72 75 6c 65 2d 3e 65 71 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 $rule->equals($potentialDuplicat
34720 65 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 e)).{.return.true;.}.}.}..return
34740 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 5f 5f 74 6f 53 .false;.}..public.function.__toS
34760 74 72 69 6e 67 28 29 0a 7b 0a 24 73 74 72 69 6e 67 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 tring().{.$string.=."\n";.foreac
34780 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 72 75 6c h.($this->rules.as.$type.=>.$rul
347a0 65 73 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 73 74 72 5f 70 61 64 28 73 65 6c 66 3a 3a 24 es).{.$string..=.str_pad(self::$
347c0 74 79 70 65 73 5b 24 74 79 70 65 5d 2c 20 38 2c 20 27 20 27 29 20 2e 20 22 3a 20 22 3b 0a 66 6f types[$type],.8,.'.')...":.";.fo
347e0 72 65 61 63 68 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 73 74 72 69 6e reach.($rules.as.$rule).{.$strin
34800 67 20 2e 3d 20 24 72 75 6c 65 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 72 69 6e 67 20 2e 3d 20 22 5c g..=.$rule."\n";.}.$string..=."\
34820 6e 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b 0a 7d 0a 7d 0a 3c 3f 70 n\n";.}..return.$string;.}.}.<?p
34840 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
34860 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 20 53 \DependencyResolver;.....class.S
34880 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 olverBugException.extends.\Runti
348a0 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f meException.{.public.function.__
348c0 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f construct($message).{.parent::__
348e0 63 6f 6e 73 74 72 75 63 74 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c 6e 54 68 69 73 20 65 78 63 65 construct(.$message."\nThis.exce
34900 70 74 69 6f 6e 20 77 61 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 63 61 75 73 65 64 20 62 79 20 ption.was.most.likely.caused.by.
34920 61 20 62 75 67 20 69 6e 20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e 0a 22 50 6c 65 61 73 65 20 72 a.bug.in.Composer.\n".."Please.r
34940 65 70 6f 72 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 72 61 6e 2c 20 74 68 65 20 65 eport.the.command.you.ran,.the.e
34960 78 61 63 74 20 65 72 72 6f 72 20 79 6f 75 20 72 65 63 65 69 76 65 64 2c 20 61 6e 64 20 79 6f 75 xact.error.you.received,.and.you
34980 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 r.composer.json.on.https://githu
349a0 62 2e 63 6f 6d 2f 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 20 2d b.com/composer/composer/issues.-
349c0 20 74 68 61 6e 6b 20 79 6f 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .thank.you!\n");.}.}.<?php......
349e0 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 65 ......namespace.Composer\Depende
34a00 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 5c 50 61 63 6b 61 ncyResolver;..use.Composer\Packa
34a20 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
34a40 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 6d 70 r\Package\AliasPackage;.use.Comp
34a60 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 56 65 72 73 oser\Package\LinkConstraint\Vers
34a80 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 66 61 75 6c 74 ionConstraint;.....class.Default
34aa0 50 6f 6c 69 63 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 Policy.implements.PolicyInterfac
34ac0 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 6f 6d 70 61 e.{.public.function.versionCompa
34ae0 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 61 67 65 49 re(PackageInterface.$a,.PackageI
34b00 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 24 63 6f 6e 73 74 nterface.$b,.$operator).{.$const
34b20 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 74 28 24 6f raint.=.new.VersionConstraint($o
34b40 70 65 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 perator,.$b->getVersion());.$ver
34b60 73 69 6f 6e 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d sion.=.new.VersionConstraint('==
34b80 27 2c 20 24 61 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 ',.$a->getVersion());..return.$c
34ba0 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f onstraint->matchSpecific($versio
34bc0 6e 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 n);.}..public.function.findUpdat
34be0 65 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 79 20 24 69 6e 73 ePackages(Pool.$pool,.array.$ins
34c00 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 talledMap,.PackageInterface.$pac
34c20 6b 61 67 65 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 0a 66 6f kage).{.$packages.=.array();..fo
34c40 72 65 61 63 68 20 28 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 reach.($pool->whatProvides($pack
34c60 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b age->getName()).as.$candidate).{
34c80 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a .if.($candidate.!==.$package).{.
34ca0 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 $packages[].=.$candidate;.}.}..r
34cc0 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 75 6e 63 74 eturn.$packages;.}..public.funct
34ce0 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b ion.getPriority(Pool.$pool,.Pack
34d00 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 6e 20 ageInterface.$package).{.return.
34d20 24 70 6f 6f 6c 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 $pool->getPriority($package->get
34d40 52 65 70 6f 73 69 74 6f 72 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f Repository());.}..public.functio
34d60 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 n.selectPreferedPackages(Pool.$p
34d80 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 61 72 72 61 79 20 ool,.array.$installedMap,.array.
34da0 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e $literals).{.$packages.=.$this->
34dc0 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c groupLiteralsByNamePreferInstall
34de0 65 64 28 24 70 6f 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 ed($pool,.$installedMap,.$litera
34e00 6c 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 ls);..foreach.($packages.as.&$li
34e20 74 65 72 61 6c 73 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 3b 0a 75 73 6f 72 74 terals).{.$policy.=.$this;.usort
34e40 28 24 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 ($literals,.function.($a,.$b).us
34e60 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
34e80 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
34ea0 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
34ec0 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
34ee0 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(
34f00 24 62 29 2c 20 74 72 75 65 29 3b 0a 7d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 $b),.true);.});.}..foreach.($pac
34f20 6b 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 kages.as.&$literals).{.$literals
34f40 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f .=.$this->pruneToBestVersion($po
34f60 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 ol,.$literals);..$literals.=.$th
34f80 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 is->pruneToHighestPriorityOrInst
34fa0 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 2c 20 24 6c 69 74 alled($pool,.$installedMap,.$lit
34fc0 65 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 erals);..$literals.=.$this->prun
34fe0 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 eRemoteAliases($pool,.$literals)
35000 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f ;.}..$selected.=.call_user_func_
35020 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b array('array_merge',.$packages);
35040 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 6c 65 63 74 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 ....usort($selected,.function.($
35060 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 a,.$b).use.($policy,.$pool,.$ins
35080 74 61 6c 6c 65 64 4d 61 70 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d talledMap).{.return.$policy->com
350a0 70 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 24 70 pareByPriorityPreferInstalled($p
350c0 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 ool,.$installedMap,.$pool->liter
350e0 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 alToPackage($a),.$pool->literalT
35100 6f 50 61 63 6b 61 67 65 28 24 62 29 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 oPackage($b));.});..return.$sele
35120 63 74 65 64 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 72 6f 75 cted;.}..protected.function.grou
35140 70 4c 69 74 65 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 50 pLiteralsByNamePreferInstalled(P
35160 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 20 ool.$pool,.array.$installedMap,.
35180 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 $literals).{.$packages.=.array()
351a0 3b 0a 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 ;.foreach.($literals.as.$literal
351c0 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 ).{.$packageName.=.$pool->litera
351e0 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 4e 61 6d 65 28 29 3b lToPackage($literal)->getName();
35200 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e ..if.(!isset($packages[$packageN
35220 61 6d 65 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d ame])).{.$packages[$packageName]
35240 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c .=.array();.}..if.(isset($instal
35260 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 61 72 72 61 79 5f ledMap[abs($literal)])).{.array_
35280 75 6e 73 68 69 66 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 2c unshift($packages[$packageName],
352a0 20 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 .$literal);.}.else.{.$packages[$
352c0 70 61 63 6b 61 67 65 4e 61 6d 65 5d 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a packageName][].=.$literal;.}.}..
352e0 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 75 6e 63 return.$packages;.}..public.func
35300 74 69 6f 6e 20 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 tion.compareByPriorityPreferInst
35320 61 6c 6c 65 64 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 alled(Pool.$pool,.array.$install
35340 65 64 4d 61 70 2c 20 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 edMap,.PackageInterface.$a,.Pack
35360 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 ageInterface.$b,.$ignoreReplace.
35380 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 61 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 =.false).{.if.($a->getRepository
353a0 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 ().===.$b->getRepository()).{...
353c0 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d if.($a->getName().===.$b->getNam
353e0 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 73 65 64 20 3d 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 e()).{.$aAliased.=.$a.instanceof
35400 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 62 41 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e .AliasPackage;.$bAliased.=.$b.in
35420 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 stanceof.AliasPackage;.if.($aAli
35440 61 73 65 64 20 26 26 20 21 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b ased.&&.!$bAliased).{.return.-1;
35460 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 6c 69 61 73 65 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 ...}.if.(!$aAliased.&&.$bAliased
35480 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 ).{.return.1;...}.}..if.(!$ignor
354a0 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 eReplace).{...if.($this->replace
354c0 73 28 24 61 2c 20 24 62 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 s($a,.$b)).{.return.1;...}.if.($
354e0 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 62 2c 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e this->replaces($b,.$a)).{.return
35500 20 2d 31 3b 20 0a 20 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3d 3d .-1;...}.}....if.($a->getId().==
35520 3d 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 =.$b->getId()).{.return.0;.}..re
35540 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3c 20 24 62 2d 3e 67 65 74 49 64 28 29 29 turn.($a->getId().<.$b->getId())
35560 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c .?.-1.:.1;.}..if.(isset($install
35580 65 64 4d 61 70 5b 24 61 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 edMap[$a->getId()])).{.return.-1
355a0 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 62 2d ;.}..if.(isset($installedMap[$b-
355c0 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 >getId()])).{.return.1;.}..retur
355e0 6e 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 61 29 n.($this->getPriority($pool,.$a)
35600 20 3e 20 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 62 29 .>.$this->getPriority($pool,.$b)
35620 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ).?.-1.:.1;.}............protect
35640 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 ed.function.replaces(PackageInte
35660 72 66 61 63 65 20 24 73 6f 75 72 63 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 rface.$source,.PackageInterface.
35680 24 74 61 72 67 65 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 $target).{.foreach.($source->get
356a0 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b Replaces().as.$link).{.if.($link
356c0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 ->getTarget().===.$target->getNa
356e0 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 me()....).{.return.true;.}.}..re
35700 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f turn.false;.}..protected.functio
35720 6e 20 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c n.pruneToBestVersion(Pool.$pool,
35740 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 .$literals).{.$bestLiterals.=.ar
35760 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 ray($literals[0]);.$bestPackage.
35780 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
357a0 61 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 als[0]);.foreach.($literals.as.$
357c0 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b i.=>.$literal).{.if.(0.===.$i).{
357e0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e .continue;.}..$package.=.$pool->
35800 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.
35820 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c ($this->versionCompare($package,
35840 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 62 65 73 74 50 61 63 6b .$bestPackage,.'>')).{.$bestPack
35860 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 age.=.$package;.$bestLiterals.=.
35880 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 69 73 array($literal);.}.elseif.($this
358a0 2d 3e 76 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 ->versionCompare($package,.$best
358c0 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 5b Package,.'==')).{.$bestLiterals[
358e0 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 62 65 73 74 4c ].=.$literal;.}.}..return.$bestL
35900 69 74 65 72 61 6c 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 73 iterals;.}..protected.function.s
35920 65 6c 65 63 74 4e 65 77 65 73 74 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 69 6e 73 74 61 electNewestPackages(array.$insta
35940 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 6d 61 78 lledMap,.array.$literals).{.$max
35960 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a Literals.=.array($literals[0]);.
35980 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 2d 3e 67 65 74 50 $maxPackage.=.$literals[0]->getP
359a0 61 63 6b 61 67 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 ackage();.foreach.($literals.as.
359c0 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 $i.=>.$literal).{.if.(0.===.$i).
359e0 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f {.continue;.}..if.($this->versio
35a00 6e 43 6f 6d 70 61 72 65 28 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c nCompare($literal->getPackage(),
35a20 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3e 27 29 29 20 7b 0a 24 6d 61 78 50 61 63 6b 61 67 .$maxPackage,.'>')).{.$maxPackag
35a40 65 20 3d 20 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 6d 61 78 e.=.$literal->getPackage();.$max
35a60 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c Literals.=.array($literal);.}.el
35a80 73 65 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 24 6c 69 74 seif.($this->versionCompare($lit
35aa0 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 61 67 65 2c eral->getPackage(),.$maxPackage,
35ac0 20 27 3d 3d 27 29 29 20 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 .'==')).{.$maxLiterals[].=.$lite
35ae0 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 78 4c 69 74 65 72 61 6c 73 3b 0a 7d ral;.}.}..return.$maxLiterals;.}
35b00 0a 0a 0a 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 48 .....protected.function.pruneToH
35b20 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 50 6f 6f 6c 20 24 ighestPriorityOrInstalled(Pool.$
35b40 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 61 72 72 61 79 pool,.array.$installedMap,.array
35b60 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 .$literals).{.$selected.=.array(
35b80 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e 75 6c 6c 3b 0a 0a 66 6f 72 65 61 63 68 20 28 );..$priority.=.null;..foreach.(
35ba0 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 61 67 $literals.as.$literal).{.$packag
35bc0 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 65 28 24 6c 69 74 e.=.$pool->literalToPackage($lit
35be0 65 72 61 6c 29 3b 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 eral);..if.(isset($installedMap[
35c00 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 $package->getId()])).{.$selected
35c20 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 [].=.$literal;.continue;.}..if.(
35c40 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 24 70 72 69 6f 72 69 74 79 20 null.===.$priority).{.$priority.
35c60 3d 20 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 70 61 63 =.$this->getPriority($pool,.$pac
35c80 6b 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 kage);.}..if.($this->getPriority
35ca0 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 20 21 3d 20 24 70 72 69 6f 72 69 74 79 29 20 ($pool,.$package).!=.$priority).
35cc0 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 {.break;.}..$selected[].=.$liter
35ce0 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a al;.}..return.$selected;.}......
35d00 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 52 65 6d 6f 74 65 41 .protected.function.pruneRemoteA
35d20 6c 69 61 73 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 liases(Pool.$pool,.array.$litera
35d40 6c 73 29 0a 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 ls).{.$hasLocalAlias.=.false;..f
35d60 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 20 7b oreach.($literals.as.$literal).{
35d80 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 50 61 63 6b .$package.=.$pool->literalToPack
35da0 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 age($literal);..if.($package.ins
35dc0 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 tanceof.AliasPackage.&&.$package
35de0 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 68 61 73 4c 6f ->isRootPackageAlias()).{.$hasLo
35e00 63 61 6c 41 6c 69 61 73 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 calAlias.=.true;.break;.}.}..if.
35e20 28 21 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 (!$hasLocalAlias).{.return.$lite
35e40 72 61 6c 73 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f rals;.}..$selected.=.array();.fo
35e60 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 20 7b 0a reach.($literals.as.$literal).{.
35e80 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 50 61 63 6b 61 $package.=.$pool->literalToPacka
35ea0 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 ge($literal);..if.($package.inst
35ec0 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d anceof.AliasPackage.&&.$package-
35ee0 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a 24 73 65 6c 65 63 74 >isRootPackageAlias()).{.$select
35f00 65 64 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 73 65 ed[].=.$literal;.}.}..return.$se
35f20 6c 65 63 74 65 64 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 lected;.}.}.<?php............nam
35f40 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
35f60 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 63 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d er;.......class.Decisions.implem
35f80 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e ents.\Iterator,.\Countable.{.con
35fa0 73 74 20 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 44 st.DECISION_LITERAL.=.0;.const.D
35fc0 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 ECISION_REASON.=.1;..protected.$
35fe0 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 4d 61 70 3b 0a 70 72 pool;.protected.$decisionMap;.pr
36000 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 otected.$decisionQueue.=.array()
36020 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 24 ;..public.function.__construct($
36040 70 6f 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 0a 69 66 pool).{.$this->pool.=.$pool;..if
36060 20 28 76 65 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 .(version_compare(PHP_VERSION,.'
36080 35 2e 33 2e 34 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 5.3.4',.'>=')).{.$this->decision
360a0 4d 61 70 20 3d 20 6e 65 77 20 5c 53 70 6c 46 69 78 65 64 41 72 72 61 79 28 24 74 68 69 73 2d 3e Map.=.new.\SplFixedArray($this->
360c0 70 6f 6f 6c 2d 3e 67 65 74 4d 61 78 49 64 28 29 20 2b 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a pool->getMaxId().+.1);.}.else.{.
360e0 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d 20 61 72 72 61 79 5f 66 69 6c 6c 28 $this->decisionMap.=.array_fill(
36100 30 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 67 65 74 4d 61 78 49 64 28 29 20 2b 20 31 2c 20 0,.$this->pool->getMaxId().+.1,.
36120 30 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 28 0);.}.}..public.function.decide(
36140 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 77 68 79 29 0a 7b 0a 24 74 68 69 73 2d $literal,.$level,.$why).{.$this-
36160 3e 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 3b 0a >addDecision($literal,.$level);.
36180 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 61 72 72 61 79 28 0a $this->decisionQueue[].=.array(.
361a0 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 3e 20 24 6c 69 74 65 72 self::DECISION_LITERAL.=>.$liter
361c0 61 6c 2c 0a 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 3e 20 24 77 68 al,.self::DECISION_REASON.=>.$wh
361e0 79 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 79 y,.);.}..public.function.satisfy
36200 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 62 73 28 24 6c ($literal).{.$packageId.=.abs($l
36220 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 iteral);..return.(.$literal.>.0.
36240 26 26 20 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 64 &&.$this->decisionMap[$packageId
36260 5d 20 3e 20 30 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c 20 30 20 26 26 20 24 74 68 69 73 2d 3e ].>.0.||.$literal.<.0.&&.$this->
36280 64 65 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 decisionMap[$packageId].<.0.);.}
362a0 0a 0a 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 ..public.function.conflict($lite
362c0 72 61 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 ral).{.$packageId.=.abs($literal
362e0 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 );..return.(.($this->decisionMap
36300 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 72 61 6c 20 3c 20 30 [$packageId].>.0.&&.$literal.<.0
36320 29 20 7c 7c 0a 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 67 ).||.($this->decisionMap[$packag
36340 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 0a 29 3b 0a 7d 0a 0a eId].<.0.&&.$literal.>.0).);.}..
36360 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c public.function.decided($literal
36380 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 OrPackageId).{.return.$this->dec
363a0 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 63 6b 61 67 65 49 64 isionMap[abs($literalOrPackageId
363c0 29 5d 20 21 3d 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 64 65 )].!=.0;.}..public.function.unde
363e0 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 65 74 cided($literalOrPackageId).{.ret
36400 75 72 6e 20 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 urn.$this->decisionMap[abs($lite
36420 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 20 3d 3d 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 ralOrPackageId)].==.0;.}..public
36440 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 24 6c 69 74 65 72 61 .function.decidedInstall($litera
36460 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 lOrPackageId).{.return.$this->de
36480 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 63 6b 61 67 65 49 cisionMap[abs($literalOrPackageI
364a0 64 29 5d 20 3e 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 d)].>.0;.}..public.function.deci
364c0 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b sionLevel($literalOrPackageId).{
364e0 0a 72 65 74 75 72 6e 20 61 62 73 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 .return.abs($this->decisionMap[a
36500 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 75 bs($literalOrPackageId)]);.}..pu
36520 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 blic.function.decisionRule($lite
36540 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 65 49 64 20 3d 20 61 ralOrPackageId).{.$packageId.=.a
36560 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 0a 66 6f 72 65 61 63 bs($literalOrPackageId);..foreac
36580 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e h.($this->decisionQueue.as.$i.=>
365a0 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d .$decision).{.if.($packageId.===
365c0 20 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 5f 4c 49 .abs($decision[self::DECISION_LI
365e0 54 45 52 41 4c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 TERAL])).{.return.$decision[self
36600 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ::DECISION_REASON];.}.}..return.
36620 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 66 73 65 null;.}..public.function.atOffse
36640 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 74 68 69 73 2d 3e t($queueOffset).{.return.$this->
36660 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a decisionQueue[$queueOffset];.}..
36680 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 71 75 65 public.function.validOffset($que
366a0 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 ueOffset).{.return.$queueOffset.
366c0 3e 3d 20 30 20 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 24 74 68 >=.0.&&.$queueOffset.<.count($th
366e0 69 73 2d 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 is->decisionQueue);.}..public.fu
36700 6e 63 74 69 6f 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.lastReason().{.return.$th
36720 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 2d 3e 64 is->decisionQueue[count($this->d
36740 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 53 49 4f ecisionQueue).-.1][self::DECISIO
36760 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 N_REASON];.}..public.function.la
36780 73 74 4c 69 74 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 stLiteral().{.return.$this->deci
367a0 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 sionQueue[count($this->decisionQ
367c0 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 ueue).-.1][self::DECISION_LITERA
367e0 4c 5d 3b 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 28 29 0a 7b L];.}..public.function.reset().{
36800 0a 77 68 69 6c 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 .while.($decision.=.array_pop($t
36820 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 his->decisionQueue)).{.$this->de
36840 63 69 73 69 6f 6e 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 cisionMap[abs($decision[self::DE
36860 43 49 53 49 4f 4e 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 CISION_LITERAL])].=.0;.}.}..publ
36880 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 6f 66 66 73 65 ic.function.resetToOffset($offse
368a0 74 29 0a 7b 0a 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f t).{.while.(count($this->decisio
368c0 6e 51 75 65 75 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 65 63 69 73 69 nQueue).>.$offset.+.1).{.$decisi
368e0 6f 6e 20 3d 20 61 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 on.=.array_pop($this->decisionQu
36900 65 75 65 29 3b 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 eue);.$this->decisionMap[abs($de
36920 63 69 73 69 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 cision[self::DECISION_LITERAL])]
36940 20 3d 20 30 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 76 65 72 .=.0;.}.}..public.function.rever
36960 74 4c 61 73 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 tLast().{.$this->decisionMap[abs
36980 28 24 74 68 69 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a 61 72 72 ($this->lastLiteral())].=.0;.arr
369a0 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 3b 0a 7d 0a ay_pop($this->decisionQueue);.}.
369c0 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 72 .public.function.count().{.retur
369e0 6e 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 n.count($this->decisionQueue);.}
36a00 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 65 6e 64 ..public.function.rewind().{.end
36a20 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 0a 0a 70 75 62 6c 69 ($this->decisionQueue);.}..publi
36a40 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 75 c.function.current().{.return.cu
36a60 72 72 65 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 0a 0a rrent($this->decisionQueue);.}..
36a80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6b public.function.key().{.return.k
36aa0 65 79 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 0a 0a 70 75 62 ey($this->decisionQueue);.}..pub
36ac0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 lic.function.next().{.return.pre
36ae0 76 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 0a 0a 70 75 62 6c v($this->decisionQueue);.}..publ
36b00 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c ic.function.valid().{.return.fal
36b20 73 65 20 21 3d 3d 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 se.!==.current($this->decisionQu
36b40 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 69 73 45 6d 70 74 79 eue);.}..public.function.isEmpty
36b60 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 6f ().{.return.count($this->decisio
36b80 6e 51 75 65 75 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 nQueue).===.0;.}..protected.func
36ba0 74 69 6f 6e 20 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 tion.addDecision($literal,.$leve
36bc0 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);
36be0 0a 0a 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 ..$previousDecision.=.$this->dec
36c00 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 3b 0a 69 66 20 28 24 70 72 65 76 69 isionMap[$packageId];.if.($previ
36c20 6f 75 73 44 65 63 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 ousDecision.!=.0).{.$literalStri
36c40 6e 67 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 53 74 72 69 6e ng.=.$this->pool->literalToStrin
36c60 67 28 24 6c 69 74 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 g($literal);.$package.=.$this->p
36c80 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 61 6c 29 3b ool->literalToPackage($literal);
36ca0 0a 74 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 .throw.new.SolverBugException(."
36cc0 54 72 79 69 6e 67 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 Trying.to.decide.$literalString.
36ce0 6f 6e 20 6c 65 76 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 on.level.$level,.even.though.$pa
36d00 63 6b 61 67 65 20 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 ckage.was.previously.decided.as.
36d20 22 2e 28 69 6e 74 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 ".(int).$previousDecision.".".);
36d40 0a 7d 0a 0a 69 66 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 .}..if.($literal.>.0).{.$this->d
36d60 65 63 69 73 69 6f 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 ecisionMap[$packageId].=.$level;
36d80 0a 7d 20 65 6c 73 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 .}.else.{.$this->decisionMap[$pa
36da0 63 6b 61 67 65 49 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 ckageId].=.-$level;.}.}.}.<?php.
36dc0 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 65 ...........namespace.Composer\De
36de0 70 65 6e 64 65 6e 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 pendencyResolver;.........class.
36e00 52 75 6c 65 57 61 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 RuleWatchNode.{.public.$watch1;.
36e20 70 75 62 6c 69 63 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 public.$watch2;..protected.$rule
36e40 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 72 ;.......public.function.__constr
36e60 75 63 74 28 24 72 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 uct($rule).{.$this->rule.=.$rule
36e80 3b 0a 0a 24 6c 69 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 ;..$literals.=.$rule->getLiteral
36ea0 73 28 29 3b 0a 0a 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 s();..$this->watch1.=.count($lit
36ec0 65 72 61 6c 73 29 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 erals).>.0.?.$literals[0].:.0;.$
36ee0 74 68 69 73 2d 3e 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 this->watch2.=.count($literals).
36f00 3e 20 31 20 3f 20 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 >.1.?.$literals[1].:.0;.}.......
36f20 0a 0a 0a 70 75 62 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 ...public.function.watch2OnHighe
36f40 73 74 28 44 65 63 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 st(Decisions.$decisions).{.$lite
36f60 72 61 6c 73 20 3d 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 rals.=.$this->rule->getLiterals(
36f80 29 3b 0a 0a 0a 20 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 );....if.($literals.<.3).{.retur
36fa0 6e 3b 0a 7d 0a 0a 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 n;.}..$watchLevel.=.0;..foreach.
36fc0 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 6c 65 76 65 6c ($literals.as.$literal).{.$level
36fe0 20 3d 20 24 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 6c 69 .=.$decisions->decisionLevel($li
37000 74 65 72 61 6c 29 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 teral);..if.($level.>.$watchLeve
37020 6c 29 20 7b 0a 24 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 l).{.$this->rule->watch2.=.$lite
37040 72 61 6c 3b 0a 24 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 ral;.$watchLevel.=.$level;.}.}.}
37060 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 75 6c 65 28 29 .......public.function.getRule()
37080 0a 7b 0a 72 65 74 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 .{.return.$this->rule;.}........
370a0 70 75 62 6c 69 63 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 public.function.getOtherWatch($l
370c0 69 74 65 72 61 6c 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 iteral).{.if.($this->watch1.==.$
370e0 6c 69 74 65 72 61 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 literal).{.return.$this->watch2;
37100 0a 7d 20 65 6c 73 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 .}.else.{.return.$this->watch1;.
37120 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 6f 76 65 57 }.}........public.function.moveW
37140 61 74 63 68 28 24 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 atch($from,.$to).{.if.($this->wa
37160 74 63 68 31 20 3d 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 tch1.==.$from).{.$this->watch1.=
37180 20 24 74 6f 3b 0a 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 .$to;.}.else.{.$this->watch2.=.$
371a0 74 6f 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 to;.}.}.}.<?php............names
371c0 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
371e0 3b 0a 0a 0a 0a 0a 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 ;.....class.SolverProblemsExcept
37200 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 6f 6e 0a 7b 0a ion.extends.\RuntimeException.{.
37220 70 72 6f 74 65 63 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 protected.$problems;.protected.$
37240 69 6e 73 74 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 installedMap;..public.function._
37260 5f 63 6f 6e 73 74 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 _construct(array.$problems,.arra
37280 79 20 24 69 6e 73 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 y.$installedMap).{.$this->proble
372a0 6d 73 20 3d 20 24 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 ms.=.$problems;.$this->installed
372c0 4d 61 70 20 3d 20 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 Map.=.$installedMap;..parent::__
372e0 63 6f 6e 73 74 72 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 construct($this->createMessage()
37300 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 63 72 65 61 74 65 4d );.}..protected.function.createM
37320 65 73 73 61 67 65 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 essage().{.$text.=."\n";.foreach
37340 20 28 24 74 68 69 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 .($this->problems.as.$i.=>.$prob
37360 6c 65 6d 29 20 7b 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 lem).{.$text..=."..Problem.".($i
37380 2b 31 29 2e 24 70 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 +1).$problem->getPrettyString($t
373a0 68 69 73 2d 3e 69 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 his->installedMap)."\n";.}..if.(
373c0 73 74 72 70 6f 73 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 strpos($text,.'could.not.be.foun
373e0 64 27 29 20 7c 7c 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 d').||.strpos($text,.'no.matchin
37400 67 20 70 61 63 6b 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 g.package.found')).{.$text..=."\
37420 6e 50 6f 74 65 6e 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 nPotential.causes:\n.-.A.typo.in
37440 20 74 68 65 20 70 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 .the.package.name\n.-.The.packag
37460 65 20 69 73 20 6e 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 e.is.not.available.in.a.stable-e
37480 6e 6f 75 67 68 20 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 nough.version.according.to.your.
374a0 6d 69 6e 69 6d 75 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 minimum-stability.setting\n...se
374c0 65 20 68 74 74 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 e.https://groups.google.com/d/to
374e0 70 69 63 2f 63 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 pic/composer-dev/_g3ASeIFlrc/dis
37500 63 75 73 73 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 5c 6e 22 3b 0a 7d 0a cussion.for.more.details.\n";.}.
37520 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .return.$text;.}..public.functio
37540 6e 20 67 65 74 50 72 6f 62 6c 65 6d 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getProblems().{.return.$this->
37560 70 72 6f 62 6c 65 6d 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 problems;.}.}.<?php............n
37580 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 6f amespace.Composer\DependencyReso
375a0 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 41 6c 69 61 lver;..use.Composer\Package\Alia
375c0 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 sPackage;.use.Composer\Dependenc
375e0 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 yResolver\Operation;.....class.T
37600 72 61 6e 73 61 63 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a ransaction.{.protected.$policy;.
37620 70 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 protected.$pool;.protected.$inst
37640 61 6c 6c 65 64 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a alledMap;.protected.$decisions;.
37660 70 72 6f 74 65 63 74 65 64 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 0a 70 75 62 6c 69 63 20 protected.$transaction;..public.
37680 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6c 69 63 79 2c 20 24 70 function.__construct($policy,.$p
376a0 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a ool,.$installedMap,.$decisions).
376c0 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 {.$this->policy.=.$policy;.$this
376e0 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 ->pool.=.$pool;.$this->installed
37700 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 Map.=.$installedMap;.$this->deci
37720 73 69 6f 6e 73 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 sions.=.$decisions;.$this->trans
37740 61 63 74 69 6f 6e 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 action.=.array();.}..public.func
37760 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d tion.getOperations().{.$installM
37780 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 eansUpdateMap.=.$this->findUpdat
377a0 65 73 28 29 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e es();..$updateMap.=.array();.$in
377c0 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 stallMap.=.array();.$uninstallMa
377e0 70 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 64 65 p.=.array();..foreach.($this->de
37800 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 20 7b 0a 24 6c cisions.as.$i.=>.$decision).{.$l
37820 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 73 3a 3a 44 45 iteral.=.$decision[Decisions::DE
37840 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 CISION_LITERAL];.$reason.=.$deci
37860 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 4f 4e 5d sion[Decisions::DECISION_REASON]
37880 3b 0a 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 69 74 65 72 ;..$package.=.$this->pool->liter
378a0 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 alToPackage($literal);....if.(($
378c0 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 3d 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e literal.>.0).==.(isset($this->in
378e0 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 29 5d 29 29 29 stalledMap[$package->getId()])))
37900 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 .{.continue;.}..if.($literal.>.0
37920 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 ).{.if.(isset($installMeansUpdat
37940 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b 61 67 eMap[abs($literal)]).&&.!$packag
37960 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 7b 0a 0a 24 73 e.instanceof.AliasPackage).{..$s
37980 6f 75 72 63 65 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 ource.=.$installMeansUpdateMap[a
379a0 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b bs($literal)];..$updateMap[$pack
379c0 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 63 6b 61 67 65 27 age->getId()].=.array(.'package'
379e0 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 73 6f 75 72 63 .=>.$package,.'source'.=>.$sourc
37a00 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e e,.'reason'.=>.$reason,.);....un
37a20 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 28 24 set($installMeansUpdateMap[abs($
37a40 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 73 6f 75 72 63 literal)]);.$ignoreRemove[$sourc
37a60 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 20 7b 0a 24 69 6e e->getId()].=.true;.}.else.{.$in
37a80 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 61 72 stallMap[$package->getId()].=.ar
37aa0 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 65 61 ray(.'package'.=>.$package,.'rea
37ac0 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 son'.=>.$reason,.);.}.}.}..forea
37ae0 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 24 64 ch.($this->decisions.as.$i.=>.$d
37b00 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 73 69 6f 6e 5b ecision).{.$literal.=.$decision[
37b20 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 3b 0a 24 70 Decisions::DECISION_LITERAL];.$p
37b40 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 6f 50 ackage.=.$this->pool->literalToP
37b60 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 ackage($literal);..if.($literal.
37b80 3c 3d 20 30 20 26 26 0a 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 <=.0.&&.isset($this->installedMa
37ba0 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 20 26 26 0a 21 69 73 73 65 74 28 p[$package->getId()]).&&.!isset(
37bc0 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d $ignoreRemove[$package->getId()]
37be0 29 29 20 7b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 )).{.$uninstallMap[$package->get
37c00 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
37c20 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 7d kage,.'reason'.=>.$reason,.);..}
37c40 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 .}..$this->transactionFromMaps($
37c60 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 75 6e 69 6e 73 74 61 installMap,.$updateMap,.$uninsta
37c80 6c 6c 4d 61 70 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 llMap);..return.$this->transacti
37ca0 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 6e 73 61 on;.}..protected.function.transa
37cc0 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 ctionFromMaps($installMap,.$upda
37ce0 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 0a 7b 0a 24 71 75 65 75 65 20 3d teMap,.$uninstallMap).{.$queue.=
37d00 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6f 70 65 72 61 74 69 6f 6e 29 .array_map(function.($operation)
37d20 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b .{.return.$operation['package'];
37d40 0a 7d 2c 0a 24 74 68 69 73 2d 3e 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 .},.$this->findRootPackages($ins
37d60 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 29 3b 0a 0a 24 76 69 73 69 74 65 tallMap,.$updateMap).);..$visite
37d80 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 d.=.array();..while.(!empty($que
37da0 75 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 ue)).{.$package.=.array_pop($que
37dc0 75 65 29 3b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 ue);.$packageId.=.$package->getI
37de0 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 d();..if.(!isset($visited[$packa
37e00 67 65 49 64 5d 29 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 geId])).{.array_push($queue,.$pa
37e20 63 6b 61 67 65 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 ckage);..if.($package.instanceof
37e40 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 .AliasPackage).{.array_push($que
37e60 75 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 20 65 ue,.$package->getAliasOf());.}.e
37e80 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 lse.{.foreach.($package->getRequ
37ea0 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 ires().as.$link).{.$possibleRequ
37ec0 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 ires.=.$this->pool->whatProvides
37ee0 28 24 6c 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 ($link->getTarget(),.$link->getC
37f00 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c onstraint());..foreach.($possibl
37f20 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 61 72 72 61 79 5f 70 eRequires.as.$require).{.array_p
37f40 75 73 68 28 24 71 75 65 75 65 2c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 76 ush($queue,.$require);.}.}.}..$v
37f60 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 isited[$package->getId()].=.true
37f80 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 ;.}.else.{.if.(isset($installMap
37fa0 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 [$packageId])).{.$this->install(
37fc0 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 .$installMap[$packageId]['packag
37fe0 65 27 5d 2c 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 e'],.$installMap[$packageId]['re
38000 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 ason'].);.unset($installMap[$pac
38020 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 kageId]);.}.if.(isset($updateMap
38040 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 28 0a [$packageId])).{.$this->update(.
38060 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d $updateMap[$packageId]['source']
38080 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 ,.$updateMap[$packageId]['packag
380a0 65 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 e'],.$updateMap[$packageId]['rea
380c0 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 son'].);.unset($updateMap[$packa
380e0 67 65 49 64 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 74 61 geId]);.}.}.}..foreach.($uninsta
38100 6c 6c 4d 61 70 20 61 73 20 24 75 6e 69 6e 73 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e llMap.as.$uninstall).{.$this->un
38120 69 6e 73 74 61 6c 6c 28 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 install($uninstall['package'],.$
38140 75 6e 69 6e 73 74 61 6c 6c 5b 27 72 65 61 73 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 uninstall['reason']);.}.}..prote
38160 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 cted.function.findRootPackages($
38180 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 installMap,.$updateMap).{.$packa
381a0 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 3b 0a ges.=.$installMap.+.$updateMap;.
381c0 24 72 6f 6f 74 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 $roots.=.$packages;..foreach.($p
381e0 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 ackages.as.$packageId.=>.$operat
38200 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 ion).{.$package.=.$operation['pa
38220 63 6b 61 67 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 ckage'];..if.(!isset($roots[$pac
38240 6b 61 67 65 49 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 kageId])).{.continue;.}..foreach
38260 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 73 20 24 6c 69 .($package->getRequires().as.$li
38280 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 74 68 69 73 2d nk).{.$possibleRequires.=.$this-
382a0 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
382c0 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());
382e0 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 73 20 61 73 20 ..foreach.($possibleRequires.as.
38300 24 72 65 71 75 69 72 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 $require).{.unset($roots[$requir
38320 65 2d 3e 67 65 74 49 64 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f e->getId()]);.}.}.}..return.$roo
38340 74 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 66 69 6e 64 55 70 ts;.}..protected.function.findUp
38360 64 61 74 65 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 dates().{.$installMeansUpdateMap
38380 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 64 65 63 .=.array();..foreach.($this->dec
383a0 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 20 7b 0a 24 6c 69 isions.as.$i.=>.$decision).{.$li
383c0 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 73 3a 3a 44 45 43 teral.=.$decision[Decisions::DEC
383e0 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 20 24 74 68 69 73 ISION_LITERAL];.$package.=.$this
38400 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 69 74 65 72 61 ->pool->literalToPackage($litera
38420 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 69 l);..if.($package.instanceof.Ali
38440 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 asPackage).{.continue;.}....if.(
38460 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e $literal.<=.0.&&.isset($this->in
38480 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 29 5d 29 29 20 stalledMap[$package->getId()])).
384a0 7b 0a 24 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 {.$updates.=.$this->policy->find
384c0 55 70 64 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 UpdatePackages($this->pool,.$thi
384e0 73 2d 3e 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 24 6c 69 s->installedMap,.$package);..$li
38500 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 terals.=.array($package->getId()
38520 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 61 74 65 );..foreach.($updates.as.$update
38540 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 75 70 64 61 74 65 2d 3e 67 65 74 49 64 ).{.$literals[].=.$update->getId
38560 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 75 70 ();.}..foreach.($literals.as.$up
38580 64 61 74 65 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 dateLiteral).{.if.($updateLitera
385a0 6c 20 21 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 l.!==.$literal).{.$installMeansU
385c0 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 5d 20 3d 20 pdateMap[abs($updateLiteral)].=.
385e0 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 $package;.}.}.}.}..return.$insta
38600 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 llMeansUpdateMap;.}..protected.f
38620 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f unction.install($package,.$reaso
38640 6e 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 41 6c 69 n).{.if.($package.instanceof.Ali
38660 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 asPackage).{.return.$this->markA
38680 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 73 6f 6e 29 liasInstalled($package,.$reason)
386a0 3b 0a 7d 0a 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 77 20 ;.}..$this->transaction[].=.new.
386c0 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b Operation\InstallOperation($pack
386e0 61 67 65 2c 20 24 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 age,.$reason);.}..protected.func
38700 74 69 6f 6e 20 75 70 64 61 74 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 tion.update($from,.$to,.$reason)
38720 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 77 20 4f 70 .{.$this->transaction[].=.new.Op
38740 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 66 72 6f 6d 2c 20 24 eration\UpdateOperation($from,.$
38760 74 6f 2c 20 24 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 to,.$reason);.}..protected.funct
38780 69 6f 6e 20 75 6e 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 ion.uninstall($package,.$reason)
387a0 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 41 6c 69 61 73 .{.if.($package.instanceof.Alias
387c0 50 61 63 6b 61 67 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 Package).{.return.$this->markAli
387e0 61 73 55 6e 69 6e 73 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 asUninstalled($package,.$reason)
38800 3b 0a 7d 0a 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 77 20 ;.}..$this->transaction[].=.new.
38820 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 Operation\UninstallOperation($pa
38840 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ckage,.$reason);.}..protected.fu
38860 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 nction.markAliasInstalled($packa
38880 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f ge,.$reason).{.$this->transactio
388a0 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 49 6e 73 n[].=.new.Operation\MarkAliasIns
388c0 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f talledOperation($package,.$reaso
388e0 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 61 72 6b 41 6c n);.}..protected.function.markAl
38900 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e iasUninstalled($package,.$reason
38920 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 77 20 4f ).{.$this->transaction[].=.new.O
38940 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 peration\MarkAliasUninstalledOpe
38960 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 7d 0a 3c ration($package,.$reason);.}.}.<
38980 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
389a0 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 3b er\DependencyResolver\Operation;
389c0 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
389e0 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 terface;.......class.UninstallOp
38a00 65 72 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 eration.extends.SolverOperation.
38a20 7b 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 0a 0a 0a 70 75 62 {.protected.$package;........pub
38a40 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
38a60 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 Interface.$package,.$reason.=.nu
38a80 6c 6c 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 65 61 73 6f ll).{.parent::__construct($reaso
38aa0 6e 29 3b 0a 0a 24 74 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 n);..$this->package.=.$package;.
38ac0 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 50 61 63 6b 61 }.......public.function.getPacka
38ae0 67 65 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 3b 0a 7d 0a ge().{.return.$this->package;.}.
38b00 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 70 65 ......public.function.getJobType
38b20 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 ().{.return.'uninstall';.}.....p
38b40 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 0a 72 65 ublic.function.__toString().{.re
38b60 74 75 72 6e 20 27 55 6e 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b turn.'Uninstalling.'.$this->pack
38b80 61 67 65 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 73 2d age->getPrettyName().'.('.$this-
38ba0 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 29 2e 27 >formatVersion($this->package).'
38bc0 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
38be0 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
38c00 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\
38c20 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 55 70 PackageInterface;.......class.Up
38c40 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 dateOperation.extends.SolverOper
38c60 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 ation.{.protected.$initialPackag
38c80 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a e;.protected.$targetPackage;....
38ca0 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 74 .....public.function.__construct
38cc0 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 63 6b (PackageInterface.$initial,.Pack
38ce0 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 72 65 61 73 6f 6e 20 3d 20 ageInterface.$target,.$reason.=.
38d00 6e 75 6c 6c 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 65 61 null).{.parent::__construct($rea
38d20 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 son);..$this->initialPackage.=.$
38d40 69 6e 69 74 69 61 6c 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 20 3d 20 initial;.$this->targetPackage.=.
38d60 24 74 61 72 67 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 $target;.}.......public.function
38d80 20 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 .getInitialPackage().{.return.$t
38da0 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 his->initialPackage;.}.......pub
38dc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 0a lic.function.getTargetPackage().
38de0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 3b 0a 7d {.return.$this->targetPackage;.}
38e00 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 4a 6f 62 54 79 70 .......public.function.getJobTyp
38e20 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 75 70 64 61 74 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 e().{.return.'update';.}.....pub
38e40 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 0a 72 65 74 75 lic.function.__toString().{.retu
38e60 72 6e 20 27 55 70 64 61 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 rn.'Updating.'.$this->initialPac
38e80 6b 61 67 65 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 73 kage->getPrettyName().'.('.$this
38ea0 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 ->formatVersion($this->initialPa
38ec0 63 6b 61 67 65 29 2e 27 29 20 74 6f 20 27 2e 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 ckage).').to.'..$this->targetPac
38ee0 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 20 27 20 28 27 2e 24 74 68 69 kage->getPrettyName()..'.('.$thi
38f00 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 s->formatVersion($this->targetPa
38f20 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ckage).')';.}.}.<?php...........
38f40 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 63 79 52 65 .namespace.Composer\DependencyRe
38f60 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 6d 70 6f 73 65 72 5c solver\Operation;..use.Composer\
38f80 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 Package\AliasPackage;.......clas
38fa0 73 20 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 20 65 78 s.MarkAliasInstalledOperation.ex
38fc0 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 65 tends.SolverOperation.{.protecte
38fe0 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 69 d.$package;........public.functi
39000 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 on.__construct(AliasPackage.$pac
39020 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 65 6e 74 3a 3a kage,.$reason.=.null).{.parent::
39040 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 73 2d 3e 70 61 __construct($reason);..$this->pa
39060 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 75 62 6c 69 63 ckage.=.$package;.}.......public
39080 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 74 75 72 6e 20 .function.getPackage().{.return.
390a0 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 6c 69 63 20 66 $this->package;.}.......public.f
390c0 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 72 6e 20 27 6d unction.getJobType().{.return.'m
390e0 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 arkAliasInstalled';.}.....public
39100 20 66 75 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 .function.__toString().{.return.
39120 27 4d 61 72 6b 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 'Marking.'.$this->package->getPr
39140 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 65 72 ettyName().'.('.$this->formatVer
39160 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 69 6e 73 74 61 sion($this->package).').as.insta
39180 6c 6c 65 64 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 lled,.alias.of.'.$this->package-
391a0 3e 67 65 74 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 >getAliasOf()->getPrettyName().'
391c0 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 69 73 2d 3e .('.$this->formatVersion($this->
391e0 70 61 63 6b 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 package->getAliasOf()).')';.}.}.
39200 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
39220 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
39240 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
39260 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 4f 70 65 nterface;.......class.InstallOpe
39280 72 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 ration.extends.SolverOperation.{
392a0 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 0a 0a 0a 70 75 62 6c .protected.$package;........publ
392c0 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 49 ic.function.__construct(PackageI
392e0 6e 74 65 72 66 61 63 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 nterface.$package,.$reason.=.nul
39300 6c 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 65 61 73 6f 6e l).{.parent::__construct($reason
39320 29 3b 0a 0a 24 74 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 7d );..$this->package.=.$package;.}
39340 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 63 6b 61 67 .......public.function.getPackag
39360 65 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 3b 0a 7d 0a 0a e().{.return.$this->package;.}..
39380 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 70 65 28 .....public.function.getJobType(
393a0 29 0a 7b 0a 72 65 74 75 72 6e 20 27 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ).{.return.'install';.}.....publ
393c0 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 0a 72 65 74 75 72 ic.function.__toString().{.retur
393e0 6e 20 27 49 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 n.'Installing.'.$this->package->
39400 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 73 2d 3e 66 6f 72 6d getPrettyName().'.('.$this->form
39420 61 74 56 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 atVersion($this->package).')';.}
39440 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
39460 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
39480 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 56 65 72 73 69 ion;..use.Composer\Package\Versi
394a0 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 50 on\VersionParser;.use.Composer\P
394c0 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 61 ackage\PackageInterface;.......a
394e0 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 20 69 6d bstract.class.SolverOperation.im
39500 70 6c 65 6d 65 6e 74 73 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 plements.OperationInterface.{.pr
39520 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 otected.$reason;.......public.fu
39540 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c nction.__construct($reason.=.nul
39560 6c 29 0a 7b 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 7d 0a l).{.$this->reason.=.$reason;.}.
39580 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 6e 28 ......public.function.getReason(
395a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 70 72 6f ).{.return.$this->reason;.}..pro
395c0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 tected.function.formatVersion(Pa
395e0 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
39600 6e 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 n.VersionParser::formatVersion($
39620 70 61 63 6b 61 67 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 package);.}.}.<?php............n
39640 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 6f amespace.Composer\DependencyReso
39660 6c 76 65 72 5c 4f 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 lver\Operation;..use.Composer\Pa
39680 63 6b 61 67 65 5c 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 ckage\AliasPackage;.......class.
396a0 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 20 65 78 MarkAliasUninstalledOperation.ex
396c0 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 65 tends.SolverOperation.{.protecte
396e0 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 69 d.$package;........public.functi
39700 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 20 24 70 61 63 on.__construct(AliasPackage.$pac
39720 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 65 6e 74 3a 3a kage,.$reason.=.null).{.parent::
39740 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 73 2d 3e 70 61 __construct($reason);..$this->pa
39760 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 75 62 6c 69 63 ckage.=.$package;.}.......public
39780 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 74 75 72 6e 20 .function.getPackage().{.return.
397a0 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 6c 69 63 20 66 $this->package;.}.......public.f
397c0 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 72 6e 20 27 6d unction.getJobType().{.return.'m
397e0 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c arkAliasUninstalled';.}.....publ
39800 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 0a 72 65 74 75 72 ic.function.__toString().{.retur
39820 6e 20 27 4d 61 72 6b 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 n.'Marking.'.$this->package->get
39840 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
39860 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 20 61 73 20 75 6e 69 ersion($this->package).').as.uni
39880 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b nstalled,.alias.of.'.$this->pack
398a0 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 age->getAliasOf()->getPrettyName
398c0 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
398e0 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a is->package->getAliasOf()).')';.
39900 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
39920 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 72 61 omposer\DependencyResolver\Opera
39940 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 70 65 72 61 74 69 6f 6e 49 tion;.......interface.OperationI
39960 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.
39980 67 65 74 4a 6f 62 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 getJobType();.......public.funct
399a0 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ion.getReason();.......public.fu
399c0 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a nction.__toString();.}.<?php....
399e0 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
39a00 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 5c 50 61 63 dencyResolver;..use.Composer\Pac
39a20 6b 61 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 kage\BasePackage;.use.Composer\P
39a40 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 74 72 ackage\LinkConstraint\LinkConstr
39a60 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 52 65 70 6f aintInterface;.use.Composer\Repo
39a80 73 69 74 6f 72 79 5c 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 sitory\RepositoryInterface;.use.
39aa0 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 74 65 52 65 70 Composer\Repository\CompositeRep
39ac0 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
39ae0 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 63 65 3b 0a 75 \InstalledRepositoryInterface;.u
39b00 73 65 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 se.Composer\Repository\PlatformR
39b20 65 70 6f 73 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 70 epository;........class.Pool.{.p
39b40 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 rotected.$repositories.=.array()
39b60 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b ;.protected.$packages.=.array();
39b80 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 .protected.$packageByName.=.arra
39ba0 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c y();.protected.$acceptableStabil
39bc0 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 ities;.protected.$stabilityFlags
39be0 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 24 ;..public.function.__construct($
39c00 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 72 72 minimumStability.=.'stable',.arr
39c20 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 7b 0a ay.$stabilityFlags.=.array()).{.
39c40 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 74 61 $stabilities.=.BasePackage::$sta
39c60 62 69 6c 69 74 69 65 73 3b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 bilities;.$this->acceptableStabi
39c80 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 lities.=.array();.foreach.(BaseP
39ca0 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 20 61 73 20 24 73 74 61 62 69 6c 69 ackage::$stabilities.as.$stabili
39cc0 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3c 3d 20 42 61 ty.=>.$value).{.if.($value.<=.Ba
39ce0 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d sePackage::$stabilities[$minimum
39d00 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 Stability]).{.$this->acceptableS
39d20 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3d 20 24 76 61 6c 75 65 3b tabilities[$stability].=.$value;
39d40 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 73 74 .}.}.$this->stabilityFlags.=.$st
39d60 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 75 6e abilityFlags;.}.......public.fun
39d80 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 74 6f 72 79 49 6e ction.addRepository(RepositoryIn
39da0 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 terface.$repo).{.if.($repo.insta
39dc0 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 7b 0a 24 72 65 nceof.CompositeRepository).{.$re
39de0 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 73 28 29 3b 0a pos.=.$repo->getRepositories();.
39e00 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 70 6f 29 3b 0a }.else.{.$repos.=.array($repo);.
39e20 7d 0a 0a 24 69 64 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 }..$id.=.count($this->packages).
39e40 2b 20 31 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 29 20 7b +.1;.foreach.($repos.as.$repo).{
39e60 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 3b 0a .$this->repositories[].=.$repo;.
39e80 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 6c 61 74 .$exempt.=.$repo.instanceof.Plat
39ea0 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 6e 63 65 formRepository.||.$repo.instance
39ec0 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 63 65 3b of.InstalledRepositoryInterface;
39ee0 0a 66 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 .foreach.($repo->getPackages().a
39f00 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e s.$package).{.$name.=.$package->
39f20 67 65 74 4e 61 6d 65 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 getName();.$stability.=.$package
39f40 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 0a 0a 20 24 65 78 65 6d 70 74 ->getStability();.if.(...$exempt
39f60 0a 0a 20 7c 7c 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c ...||.(!isset($this->stabilityFl
39f80 61 67 73 5b 24 6e 61 6d 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 63 63 65 ags[$name]).&&.isset($this->acce
39fa0 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 79 5d 29 29 0a ptableStabilities[$stability])).
39fc0 0a 20 7c 7c 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 ..||.(isset($this->stabilityFlag
39fe0 73 5b 24 6e 61 6d 65 5d 29 0a 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 s[$name]).&&.BasePackage::$stabi
3a000 6c 69 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 lities[$stability].<=.$this->sta
3a020 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 0a 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 bilityFlags[$name].).).{.$packag
3a040 65 2d 3e 73 65 74 49 64 28 24 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 e->setId($id++);.$this->packages
3a060 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 [].=.$package;..foreach.($packag
3a080 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d e->getNames().as.$name).{.$this-
3a0a0 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 >packageByName[$name][].=.$packa
3a0c0 67 65 3b 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 ge;.}.}.}.}.}..public.function.g
3a0e0 65 74 50 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 etPriority(RepositoryInterface.$
3a100 72 65 70 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 repo).{.$priority.=.array_search
3a120 28 24 72 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 ($repo,.$this->repositories,.tru
3a140 65 29 3b 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 e);..if.(false.===.$priority).{.
3a160 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 22 43 6f 75 throw.new.\RuntimeException("Cou
3a180 6c 64 20 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 ld.not.determine.repository.prio
3a1a0 72 69 74 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 rity..The.repository.was.not.reg
3a1c0 69 73 74 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 istered.in.the.pool.");.}..retur
3a1e0 6e 20 2d 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 n.-$priority;.}........public.fu
3a200 6e 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e nction.packageById($id).{.return
3a220 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 3b 0a 7d 0a 0a 0a 0a .$this->packages[$id.-.1];.}....
3a240 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 61 78 49 64 28 29 0a 7b 0a ...public.function.getMaxId().{.
3a260 72 65 74 75 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 return.count($this->packages);.}
3a280 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 77 68 61 74 50 72 ..........public.function.whatPr
3a2a0 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 ovides($name,.LinkConstraintInte
3a2c0 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 69 66 20 28 rface.$constraint.=.null).{.if.(
3a2e0 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d !isset($this->packageByName[$nam
3a300 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 63 61 6e 64 69 e])).{.return.array();.}..$candi
3a320 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 dates.=.$this->packageByName[$na
3a340 6d 65 5d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 me];..if.(null.===.$constraint).
3a360 7b 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 72 65 73 75 6c 74 {.return.$candidates;.}..$result
3a380 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 .=.array();..foreach.($candidate
3a3a0 73 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 64 69 64 61 74 s.as.$candidate).{.if.($candidat
3a3c0 65 2d 3e 6d 61 74 63 68 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 e->matches($name,.$constraint)).
3a3e0 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 {.$result[].=.$candidate;.}.}..r
3a400 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eturn.$result;.}..public.functio
3a420 6e 20 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 0a 7b 0a 24 n.literalToPackage($literal).{.$
3a440 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 0a 0a 72 65 74 75 packageId.=.abs($literal);..retu
3a460 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 rn.$this->packageById($packageId
3a480 29 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 53 );.}..public.function.literalToS
3a4a0 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 65 72 tring($literal).{.return.($liter
3a4c0 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c 69 74 al.>.0.?.'+'.:.'-')...$this->lit
3a4e0 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 7d 0a 0a 70 75 62 6c eralToPackage($literal);.}..publ
3a500 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e ic.function.literalToPrettyStrin
3a520 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 61 g($literal,.$installedMap).{.$pa
3a540 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 ckage.=.$this->literalToPackage(
3a560 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 $literal);..if.(isset($installed
3a580 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 24 70 72 65 66 Map[$package->getId()])).{.$pref
3a5a0 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 72 ix.=.($literal.>.0.?.'keep'.:.'r
3a5c0 65 6d 6f 76 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 emove');.}.else.{.$prefix.=.($li
3a5e0 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 20 teral.>.0.?.'install'.:.'don\'t.
3a600 69 6e 73 74 61 6c 6c 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 27 install');.}..return.$prefix.'.'
3a620 2e 24 70 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 0a .$package->getPrettyString();.}.
3a640 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
3a660 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
3a680 61 73 73 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 ass.Rule.{.const.RULE_INTERNAL_A
3a6a0 4c 4c 4f 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 LLOW_UPDATE.=.1;.const.RULE_JOB_
3a6c0 49 4e 53 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 INSTALL.=.2;.const.RULE_JOB_REMO
3a6e0 56 45 20 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 VE.=.3;.const.RULE_PACKAGE_CONFL
3a700 49 43 54 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 ICT.=.6;.const.RULE_PACKAGE_REQU
3a720 49 52 45 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 IRES.=.7;.const.RULE_PACKAGE_OBS
3a740 4f 4c 45 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 OLETES.=.8;.const.RULE_INSTALLED
3a760 5f 50 41 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 _PACKAGE_OBSOLETES.=.9;.const.RU
3a780 4c 45 5f 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 LE_PACKAGE_SAME_NAME.=.10;.const
3a7a0 20 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 45 53 .RULE_PACKAGE_IMPLICIT_OBSOLETES
3a7c0 20 3d 20 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 .=.11;.const.RULE_LEARNED.=.12;.
3a7e0 63 6f 6e 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 const.RULE_PACKAGE_ALIAS.=.13;..
3a800 70 72 6f 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 protected.$pool;..protected.$dis
3a820 61 62 6c 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 abled;.protected.$literals;.prot
3a840 65 63 74 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 ected.$type;.protected.$id;..pro
3a860 74 65 63 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 tected.$job;..protected.$ruleHas
3a880 68 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 h;..public.function.__construct(
3a8a0 50 6f 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 2c 20 24 72 65 Pool.$pool,.array.$literals,.$re
3a8c0 61 73 6f 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 ason,.$reasonData,.$job.=.null).
3a8e0 7b 0a 24 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 {.$this->pool.=.$pool;....sort($
3a900 6c 69 74 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 literals);..$this->literals.=.$l
3a920 69 74 65 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 iterals;.$this->reason.=.$reason
3a940 3b 0a 24 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 ;.$this->reasonData.=.$reasonDat
3a960 61 3b 0a 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 a;..$this->disabled.=.false;..$t
3a980 68 69 73 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 his->job.=.$job;..$this->type.=.
3a9a0 2d 31 3b 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 -1;..$this->ruleHash.=.substr(md
3a9c0 35 28 69 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 5(implode(',',.$this->literals))
3a9e0 2c 20 30 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 ,.0,.5);.}..public.function.getH
3aa00 61 73 68 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 ash().{.return.$this->ruleHash;.
3aa20 7d 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 69 64 29 0a 7b 0a }..public.function.setId($id).{.
3aa40 24 74 68 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 $this->id.=.$id;.}..public.funct
3aa60 69 6f 6e 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 ion.getId().{.return.$this->id;.
3aa80 7d 0a 0a 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 }..public.function.getJob().{.re
3aaa0 74 75 72 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 turn.$this->job;.}..........publ
3aac0 69 63 20 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 ic.function.equals(Rule.$rule).{
3aae0 0a 69 66 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 .if.($this->ruleHash.!==.$rule->
3ab00 72 75 6c 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 ruleHash).{.return.false;.}..if.
3ab20 28 63 6f 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 (count($this->literals).!=.count
3ab40 28 24 72 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 ($rule->literals)).{.return.fals
3ab60 65 3b 0a 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 e;.}..for.($i.=.0,.$n.=.count($t
3ab80 68 69 73 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 his->literals);.$i.<.$n;.$i++).{
3aba0 0a 69 66 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 .if.($this->literals[$i].!==.$ru
3abc0 6c 65 2d 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 le->literals[$i]).{.return.false
3abe0 3b 0a 7d 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 ;.}.}..return.true;.}..public.fu
3ac00 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 2d 3e 74 nction.setType($type).{.$this->t
3ac20 79 70 65 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 ype.=.$type;.}..public.function.
3ac40 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 74 79 70 65 3b 0a getType().{.return.$this->type;.
3ac60 7d 0a 0a 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 }..public.function.disable().{.$
3ac80 74 68 69 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 this->disabled.=.true;.}..public
3aca0 20 66 75 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 .function.enable().{.$this->disa
3acc0 62 6c 65 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 bled.=.false;.}..public.function
3ace0 20 69 73 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 .isDisabled().{.return.$this->di
3ad00 73 61 62 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 sabled;.}..public.function.isEna
3ad20 62 6c 65 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 bled().{.return.!$this->disabled
3ad40 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 69 74 65 72 61 6c 73 ;.}..public.function.getLiterals
3ad60 28 29 0a 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 ().{.return.$this->literals;.}..
3ad80 70 75 62 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 public.function.isAssertion().{.
3ada0 72 65 74 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 return.1.===.count($this->litera
3adc0 6c 73 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 50 72 65 74 74 ls);.}..public.function.getPrett
3ade0 79 53 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 yString(array.$installedMap.=.ar
3ae00 72 61 79 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 ray()).{.$ruleText.=.'';.foreach
3ae20 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 3e 20 24 6c 69 74 65 .($this->literals.as.$i.=>.$lite
3ae40 72 61 6c 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 ral).{.if.($i.!=.0).{.$ruleText.
3ae60 2e 3d 20 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 .=.'|';.}.$ruleText..=.$this->po
3ae80 6f 6c 2d 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 ol->literalToPrettyString($liter
3aea0 61 6c 2c 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 al,.$installedMap);.}..switch.($
3aec0 74 68 69 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 this->reason).{.case.self::RULE_
3aee0 49 4e 54 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 INTERNAL_ALLOW_UPDATE:.return.$r
3af00 75 6c 65 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 uleText;..case.self::RULE_JOB_IN
3af20 53 54 41 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 STALL:.return."Install.command.r
3af40 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 3a 3a 52 55 ule.($ruleText)";..case.self::RU
3af60 4c 45 5f 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 LE_JOB_REMOVE:.return."Remove.co
3af80 6d 6d 61 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 mmand.rule.($ruleText)";..case.s
3afa0 65 6c 66 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 elf::RULE_PACKAGE_CONFLICT:.$pac
3afc0 6b 61 67 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 kage1.=.$this->pool->literalToPa
3afe0 63 6b 61 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 ckage($this->literals[0]);.$pack
3b000 61 67 65 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 age2.=.$this->pool->literalToPac
3b020 6b 61 67 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 kage($this->literals[1]);..retur
3b040 6e 20 24 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 n.$package1->getPrettyString().'
3b060 20 63 6f 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 .conflicts.with.'.$package2->get
3b080 50 72 65 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 PrettyString().'.';..case.self::
3b0a0 52 55 4c 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 RULE_PACKAGE_REQUIRES:.$literals
3b0c0 20 3d 20 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 .=.$this->literals;.$sourceLiter
3b0e0 61 6c 20 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 al.=.array_shift($literals);.$so
3b100 75 72 63 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 urcePackage.=.$this->pool->liter
3b120 61 6c 54 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 alToPackage($sourceLiteral);..$r
3b140 65 71 75 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 equires.=.array();.foreach.($lit
3b160 65 72 61 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 erals.as.$literal).{.$requires[]
3b180 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 65 .=.$this->pool->literalToPackage
3b1a0 28 24 6c 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 ($literal);.}..$text.=.$this->re
3b1c0 61 73 6f 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 asonData->getPrettyString($sourc
3b1e0 65 50 61 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 ePackage);.if.($requires).{.$req
3b200 75 69 72 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 uireText.=.array();.foreach.($re
3b220 71 75 69 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 quires.as.$require).{.$requireTe
3b240 78 74 5b 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 xt[].=.$require->getPrettyString
3b260 28 29 3b 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 ();.}.$text..=.'.->.satisfiable.
3b280 62 79 20 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 by.'.implode(',.',.$requireText)
3b2a0 2e 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 6e 6f 20 .'.';.}.else.{.$text..=.'.->.no.
3b2c0 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 0a 72 65 74 matching.package.found.';.}..ret
3b2e0 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b urn.$text;..case.self::RULE_PACK
3b300 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b AGE_OBSOLETES:.return.$ruleText;
3b320 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 5f 50 41 43 4b 41 .case.self::RULE_INSTALLED_PACKA
3b340 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a GE_OBSOLETES:.return.$ruleText;.
3b360 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d case.self::RULE_PACKAGE_SAME_NAM
3b380 45 3a 0a 24 74 65 78 74 20 3d 20 22 43 61 6e 20 6f 6e 6c 79 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 E:.$text.=."Can.only.install.one
3b3a0 20 6f 66 3a 20 22 3b 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f .of:.";..$packages.=.array();.fo
3b3c0 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 3e 20 reach.($this->literals.as.$i.=>.
3b3e0 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d $literal).{.$packages[].=.$this-
3b400 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 69 74 65 72 61 6c >pool->literalToPackage($literal
3b420 29 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 )->getPrettyString();.}..return.
3b440 24 74 65 78 74 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 73 29 2e 27 $text.implode(',.',.$packages).'
3b460 2e 27 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c .';.case.self::RULE_PACKAGE_IMPL
3b480 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 ICIT_OBSOLETES:.return.$ruleText
3b4a0 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 3a 0a 72 65 74 75 72 ;.case.self::RULE_LEARNED:.retur
3b4c0 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e 3a 20 27 2e 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 n.'Conclusion:.'.$ruleText;.case
3b4e0 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 3a 0a 72 65 74 75 72 .self::RULE_PACKAGE_ALIAS:.retur
3b500 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 n.$ruleText;.}.}.......public.fu
3b520 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 nction.__toString().{.$result.=.
3b540 28 24 74 68 69 73 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 ($this->isDisabled()).?.'disable
3b560 64 28 27 20 3a 20 27 28 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 d('.:.'(';..foreach.($this->lite
3b580 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 69 66 20 28 24 69 rals.as.$i.=>.$literal).{.if.($i
3b5a0 20 21 3d 20 30 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 .!=.0).{.$result..=.'|';.}.$resu
3b5c0 6c 74 20 2e 3d 20 24 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 lt..=.$this->pool->literalToStri
3b5e0 6e 67 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b ng($literal);.}..$result..=.')';
3b600 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 0a 0a 0a 0a 0a ..return.$result;.}.}.<?php.....
3b620 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
3b640 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 5c 50 61 63 6b encyResolver;..use.Composer\Pack
3b660 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 6d 70 6f 73 age\PackageInterface;.use.Compos
3b680 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 0a 0a 0a 0a 63 6c 61 er\Package\AliasPackage;.....cla
3b6a0 73 73 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 ss.RuleSetGenerator.{.protected.
3b6c0 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 $policy;.protected.$pool;.protec
3b6e0 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f ted.$rules;.protected.$jobs;.pro
3b700 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 tected.$installedMap;..public.fu
3b720 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 nction.__construct(PolicyInterfa
3b740 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d ce.$policy,.Pool.$pool).{.$this-
3b760 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.=
3b780 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .$pool;.}................protect
3b7a0 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 ed.function.createRequireRule(Pa
3b7c0 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 61 72 72 61 79 20 24 ckageInterface.$package,.array.$
3b7e0 70 72 6f 76 69 64 65 72 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 providers,.$reason,.$reasonData.
3b800 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 =.null).{.$literals.=.array(-$pa
3b820 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 ckage->getId());..foreach.($prov
3b840 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f iders.as.$provider).{...if.($pro
3b860 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c vider.===.$package).{.return.nul
3b880 6c 3b 0a 7d 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 l;.}.$literals[].=.$provider->ge
3b8a0 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d tId();.}..return.new.Rule($this-
3b8c0 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 >pool,.$literals,.$reason,.$reas
3b8e0 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 onData);.}..............protecte
3b900 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c d.function.createInstallOneOfRul
3b920 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 e(array.$packages,.$reason,.$job
3b940 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ).{.$literals.=.array();.foreach
3b960 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 6c 69 74 65 .($packages.as.$package).{.$lite
3b980 72 61 6c 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 rals[].=.$package->getId();.}..r
3b9a0 65 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 eturn.new.Rule($this->pool,.$lit
3b9c0 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d erals,.$reason,.$job['packageNam
3b9e0 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 e'],.$job);.}.............protec
3ba00 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 ted.function.createRemoveRule(Pa
3ba20 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 72 65 61 73 6f 6e ckageInterface.$package,.$reason
3ba40 2c 20 24 6a 6f 62 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d ,.$job).{.return.new.Rule($this-
3ba60 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 >pool,.array(-$package->getId())
3ba80 2c 20 24 72 65 61 73 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 ,.$reason,.$job['packageName'],.
3baa0 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 $job);.}................protecte
3bac0 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 d.function.createConflictRule(Pa
3bae0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 67 65 49 ckageInterface.$issuer,.PackageI
3bb00 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 nterface.$provider,.$reason,.$re
3bb20 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 75 65 72 asonData.=.null).{...if.($issuer
3bb40 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d .===.$provider).{.return.null;.}
3bb60 0a 0a 72 65 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 ..return.new.Rule($this->pool,.a
3bb80 72 72 61 79 28 2d 24 69 73 73 75 65 72 2d 3e 67 65 74 49 64 28 29 2c 20 2d 24 70 72 6f 76 69 64 rray(-$issuer->getId(),.-$provid
3bba0 65 72 2d 3e 67 65 74 49 64 28 29 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 er->getId()),.$reason,.$reasonDa
3bbc0 74 61 29 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 74 69 6f ta);.}...........private.functio
3bbe0 6e 20 61 64 64 52 75 6c 65 28 24 74 79 70 65 2c 20 52 75 6c 65 20 24 6e 65 77 52 75 6c 65 20 3d n.addRule($type,.Rule.$newRule.=
3bc00 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 6e 65 77 52 75 6c 65 20 7c 7c 20 24 74 68 69 73 2d .null).{.if.(!$newRule.||.$this-
3bc20 3e 72 75 6c 65 73 2d 3e 63 6f 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 >rules->containsEqual($newRule))
3bc40 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 .{.return;.}..$this->rules->add(
3bc60 24 6e 65 77 52 75 6c 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 $newRule,.$type);.}..protected.f
3bc80 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 unction.addRulesForPackage(Packa
3bca0 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 77 6f 72 6b 51 75 65 geInterface.$package).{.$workQue
3bcc0 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e ue.=.new.\SplQueue;.$workQueue->
3bce0 65 6e 71 75 65 75 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 enqueue($package);..while.(!$wor
3bd00 6b 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 65 20 3d 20 kQueue->isEmpty()).{.$package.=.
3bd20 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 $workQueue->dequeue();.if.(isset
3bd40 28 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 ($this->addedMap[$package->getId
3bd60 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 ()])).{.continue;.}..$this->adde
3bd80 64 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 74 72 75 65 3b 0a dMap[$package->getId()].=.true;.
3bda0 0a 66 6f 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 .foreach.($package->getRequires(
3bdc0 29 20 61 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 ).as.$link).{.$possibleRequires.
3bde0 3d 20 24 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 =.$this->pool->whatProvides($lin
3be00 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 74 72 k->getTarget(),.$link->getConstr
3be20 61 69 6e 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 aint());..$this->addRule(RuleSet
3be40 3a 3a 54 59 50 45 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 ::TYPE_PACKAGE,.$rule.=.$this->c
3be60 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 reateRequireRule($package,.$poss
3be80 69 62 6c 65 52 65 71 75 69 72 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 ibleRequires,.Rule::RULE_PACKAGE
3bea0 5f 52 45 51 55 49 52 45 53 2c 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 _REQUIRES,.$link));..foreach.($p
3bec0 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 29 20 7b 0a 24 ossibleRequires.as.$require).{.$
3bee0 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a workQueue->enqueue($require);.}.
3bf00 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 43 6f 6e 66 6c 69 63 }..foreach.($package->getConflic
3bf20 74 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 ts().as.$link).{.$possibleConfli
3bf40 63 74 73 20 3d 20 24 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 cts.=.$this->pool->whatProvides(
3bf60 24 6c 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 $link->getTarget(),.$link->getCo
3bf80 6e 73 74 72 61 69 6e 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 nstraint());..foreach.($possible
3bfa0 43 6f 6e 66 6c 69 63 74 73 20 61 73 20 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d Conflicts.as.$conflict).{.$this-
3bfc0 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 47 45 2c 20 >addRule(RuleSet::TYPE_PACKAGE,.
3bfe0 24 74 68 69 73 2d 3e 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 $this->createConflictRule($packa
3c000 67 65 2c 20 24 63 6f 6e 66 6c 69 63 74 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 ge,.$conflict,.Rule::RULE_PACKAG
3c020 45 5f 43 4f 4e 46 4c 49 43 54 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 E_CONFLICT,.$link));.}.}....$isI
3c040 6e 73 74 61 6c 6c 65 64 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c nstalled.=.(isset($this->install
3c060 65 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 3b 0a 0a 66 6f 72 edMap[$package->getId()]));..for
3c080 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 each.($package->getReplaces().as
3c0a0 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 .$link).{.$obsoleteProviders.=.$
3c0c0 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->
3c0e0 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
3c100 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 t());..foreach.($obsoleteProvide
3c120 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 6f 76 69 64 65 72 rs.as.$provider).{.if.($provider
3c140 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 0a 7d 0a 0a 69 66 .===.$package).{.continue;.}..if
3c160 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 62 6c 65 46 6f 72 41 .(!$this->obsoleteImpossibleForA
3c180 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 29 20 7b 0a 24 72 65 lias($package,.$provider)).{.$re
3c1a0 61 73 6f 6e 20 3d 20 28 24 69 73 49 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 ason.=.($isInstalled).?.Rule::RU
3c1c0 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 20 3a LE_INSTALLED_PACKAGE_OBSOLETES.:
3c1e0 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 .Rule::RULE_PACKAGE_OBSOLETES;.$
3c200 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 50 41 43 4b this->addRule(RuleSet::TYPE_PACK
3c220 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 AGE,.$this->createConflictRule($
3c240 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 package,.$provider,.$reason,.$li
3c260 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 nk));.}.}.}..$obsoleteProviders.
3c280 3d 20 24 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 70 61 63 =.$this->pool->whatProvides($pac
3c2a0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 kage->getName(),.null);..foreach
3c2c0 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 64 65 .($obsoleteProviders.as.$provide
3c2e0 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 65 29 r).{.if.($provider.===.$package)
3c300 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e .{.continue;.}..if.(($package.in
3c320 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 stanceof.AliasPackage).&&.$packa
3c340 67 65 2d 3e 67 65 74 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 ge->getAliasOf().===.$provider).
3c360 7b 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 5f 50 {.$this->addRule(RuleSet::TYPE_P
3c380 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 52 65 71 ACKAGE,.$rule.=.$this->createReq
3c3a0 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 uireRule($package,.array($provid
3c3c0 65 72 29 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 er),.Rule::RULE_PACKAGE_ALIAS,.$
3c3e0 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 package));.}.elseif.(!$this->obs
3c400 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 65 oleteImpossibleForAlias($package
3c420 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 70 61 63 6b ,.$provider)).{.$reason.=.($pack
3c440 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 age->getName().==.$provider->get
3c460 4e 61 6d 65 28 29 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d Name()).?.Rule::RULE_PACKAGE_SAM
3c480 45 5f 4e 41 4d 45 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c E_NAME.:.Rule::RULE_PACKAGE_IMPL
3c4a0 49 43 49 54 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 65 28 52 ICIT_OBSOLETES;.$this->addRule(R
3c4c0 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 65 20 3d 20 24 74 uleSet::TYPE_PACKAGE,.$rule.=.$t
3c4e0 68 69 73 2d 3e 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 his->createConflictRule($package
3c500 2c 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 ,.$provider,.$reason,.$package))
3c520 3b 0a 7d 0a 7d 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 6f 62 ;.}.}.}.}..protected.function.ob
3c540 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
3c560 65 2c 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 e,.$provider).{.$packageIsAlias.
3c580 3d 20 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 =.$package.instanceof.AliasPacka
3c5a0 67 65 3b 0a 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 ge;.$providerIsAlias.=.$provider
3c5c0 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f .instanceof.AliasPackage;..$impo
3c5e0 73 73 69 62 6c 65 20 3d 20 28 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 ssible.=.(.($packageIsAlias.&&.$
3c600 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 package->getAliasOf().===.$provi
3c620 64 65 72 29 20 7c 7c 0a 28 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 der).||.($providerIsAlias.&&.$pr
3c640 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 61 63 6b 61 67 ovider->getAliasOf().===.$packag
3c660 65 29 20 7c 7c 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 e).||.($packageIsAlias.&&.$provi
3c680 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 6c 69 61 derIsAlias.&&.$provider->getAlia
3c6a0 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 sOf().===.$package->getAliasOf()
3c6c0 29 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a ).);..return.$impossible;.}.....
3c6e0 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 73 46 6f 72 ....private.function.addRulesFor
3c700 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 UpdatePackages(PackageInterface.
3c720 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f $package).{.$updates.=.$this->po
3c740 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e licy->findUpdatePackages($this->
3c760 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 70 61 63 6b pool,.$this->installedMap,.$pack
3c780 61 67 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 70 64 61 74 65 73 20 61 73 20 24 75 70 64 age);..foreach.($updates.as.$upd
3c7a0 61 74 65 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 65 ate).{.$this->addRulesForPackage
3c7c0 28 24 75 70 64 61 74 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 ($update);.}.}..protected.functi
3c7e0 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 on.addRulesForJobs().{.foreach.(
3c800 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 $this->jobs.as.$job).{.switch.($
3c820 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 job['cmd']).{.case.'install':.if
3c840 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 .($job['packages']).{.foreach.($
3c860 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 job['packages'].as.$package).{.i
3c880 66 20 28 21 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 f.(!isset($this->installedMap[$p
3c8a0 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 ackage->getId()])).{.$this->addR
3c8c0 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 24 ulesForPackage($package);.}.}..$
3c8e0 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 rule.=.$this->createInstallOneOf
3c900 52 75 6c 65 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 2c 20 52 75 6c 65 3a 3a 52 55 4c Rule($job['packages'],.Rule::RUL
3c920 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 E_JOB_INSTALL,.$job);.$this->add
3c940 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a Rule(RuleSet::TYPE_JOB,.$rule);.
3c960 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 0a 20 0a 20 66 6f 72 65 }.break;.case.'remove':.....fore
3c980 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 ach.($job['packages'].as.$packag
3c9a0 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 e).{.$rule.=.$this->createRemove
3c9c0 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 Rule($package,.Rule::RULE_JOB_RE
3c9e0 4d 4f 56 45 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 MOVE,.$job);.$this->addRule(Rule
3ca00 53 65 74 3a 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 Set::TYPE_JOB,.$rule);.}.break;.
3ca20 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 52 75 6c 65 73 46 }.}.}..public.function.getRulesF
3ca40 6f 72 28 24 6a 6f 62 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 or($jobs,.$installedMap).{.$this
3ca60 2d 3e 6a 6f 62 73 20 3d 20 24 6a 6f 62 73 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e ->jobs.=.$jobs;.$this->rules.=.n
3ca80 65 77 20 52 75 6c 65 53 65 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 ew.RuleSet;.$this->installedMap.
3caa0 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 =.$installedMap;..foreach.($this
3cac0 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
3cae0 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 his->addRulesForPackage($package
3cb00 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 );.$this->addRulesForUpdatePacka
3cb20 67 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 ges($package);.}..$this->addRule
3cb40 73 46 6f 72 4a 6f 62 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 sForJobs();..return.$this->rules
3cb60 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
3cb80 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 0a .Composer\DependencyResolver;...
3cba0 0a 0a 63 6c 61 73 73 20 44 65 62 75 67 53 6f 6c 76 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 ..class.DebugSolver.extends.Solv
3cbc0 65 72 0a 7b 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 44 65 63 er.{.protected.function.printDec
3cbe0 69 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 isionMap().{.echo."\nDecisionMap
3cc00 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 73 69 6f 6e 4d :.\n";.foreach.($this->decisionM
3cc20 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 ap.as.$packageId.=>.$level).{.if
3cc40 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a .($packageId.===.0).{.continue;.
3cc60 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 }.if.($level.>.0).{.echo.'....+'
3cc80 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 28 24 70 61 63 ...$this->pool->packageById($pac
3cca0 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c kageId)."\n";.}.elseif.($level.<
3ccc0 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2d 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c .0).{.echo.'....-'...$this->pool
3cce0 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 0a ->packageById($packageId)."\n";.
3cd00 7d 20 65 6c 73 65 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 }.else.{.echo.'....?'...$this->p
3cd20 6f 6f 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 ool->packageById($packageId)."\n
3cd40 22 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ";.}.}.echo."\n";.}..protected.f
3cd60 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 unction.printDecisionQueue().{.e
3cd80 63 68 6f 20 22 44 65 63 69 73 69 6f 6e 51 75 65 75 65 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 cho."DecisionQueue:.\n";.foreach
3cda0 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 .($this->decisionQueue.as.$i.=>.
3cdc0 24 6c 69 74 65 72 61 6c 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d $literal).{.echo.'....'...$this-
3cde0 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)
3ce00 20 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 ...'.'...$this->decisionQueueWhy
3ce20 5b 24 69 5d 2e 22 20 6c 65 76 65 6c 20 22 2e 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 [$i].".level.".$this->decisionMa
3ce40 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 2e 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c p[abs($literal)]."\n";.}.echo."\
3ce60 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 57 n";.}..protected.function.printW
3ce80 61 74 63 68 65 73 28 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a atches().{.echo."\nWatches:\n";.
3cea0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 foreach.($this->watches.as.$lite
3cec0 72 61 6c 49 64 20 3d 3e 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 ralId.=>.$watch).{.echo.'..'.$th
3cee0 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c is->literalFromId($literalId)."\
3cf00 6e 22 3b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c n";.$queue.=.array(array('....',
3cf20 20 24 77 61 74 63 68 29 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 .$watch));..while.(!empty($queue
3cf40 29 29 20 7b 0a 6c 69 73 74 28 24 69 6e 64 65 6e 74 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 )).{.list($indent,.$watch).=.arr
3cf60 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 ay_pop($queue);..echo.$indent.$w
3cf80 61 74 63 68 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d atch;..if.($watch).{.echo.'.[id=
3cfa0 27 2e 24 77 61 74 63 68 2d 3e 67 65 74 49 64 28 29 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 '.$watch->getId().',watch1='.$th
3cfc0 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 63 68 31 is->literalFromId($watch->watch1
3cfe0 29 2e 27 2c 77 61 74 63 68 32 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 ).',watch2='.$this->literalFromI
3d000 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 32 29 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 d($watch->watch2)."]";.}..echo."
3d020 5c 6e 22 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 \n";..if.($watch.&&.($watch->nex
3d040 74 31 20 3d 3d 20 24 77 61 74 63 68 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d t1.==.$watch.||.$watch->next2.==
3d060 20 24 77 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d .$watch)).{.if.($watch->next1.==
3d080 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a .$watch).{.echo.$indent."....1.*
3d0a0 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 RECURSION*";.}.if.($watch->next2
3d0c0 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 .==.$watch).{.echo.$indent."....
3d0e0 32 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 2.*RECURSION*";.}.}.elseif.($wat
3d100 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e ch.&&.($watch->next1.||.$watch->
3d120 6e 65 78 74 32 29 29 20 7b 0a 24 69 6e 64 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 next2)).{.$indent.=.str_replace(
3d140 61 72 72 61 79 28 27 31 27 2c 20 27 32 27 29 2c 20 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a array('1',.'2'),.'.',.$indent);.
3d160 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e .array_push($queue,.array($inden
3d180 74 2e 27 20 20 20 20 32 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 t.'....2.',.$watch->next2));.arr
3d1a0 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 ay_push($queue,.array($indent.'.
3d1c0 20 20 20 31 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 ...1.',.$watch->next1));.}.}..ec
3d1e0 68 6f 20 22 5c 6e 22 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 ho."\n";.}.}.}.<?php............
3d200 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
3d220 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 olver;.....class.RuleSetIterator
3d240 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 .implements.\Iterator.{.protecte
3d260 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f d.$rules;.protected.$types;..pro
3d280 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 4f 66 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 tected.$currentOffset;.protected
3d2a0 20 24 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e .$currentType;.protected.$curren
3d2c0 74 54 79 70 65 4f 66 66 73 65 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f tTypeOffset;..public.function.__
3d2e0 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d construct(array.$rules).{.$this-
3d300 3e 72 75 6c 65 73 20 3d 20 24 72 75 6c 65 73 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 >rules.=.$rules;.$this->types.=.
3d320 61 72 72 61 79 5f 6b 65 79 73 28 24 72 75 6c 65 73 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e array_keys($rules);.sort($this->
3d340 74 79 70 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 types);..$this->rewind();.}..pub
3d360 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.current().{.return.
3d380 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]
3d3a0 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 [$this->currentOffset];.}..publi
3d3c0 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d c.function.key().{.return.$this-
3d3e0 3e 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >currentType;.}..public.function
3d400 20 6e 65 78 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b .next().{.$this->currentOffset++
3d420 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 ;..if.(!isset($this->rules[$this
3d440 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 ->currentType])).{.return;.}..if
3d460 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 .($this->currentOffset.>=.sizeof
3d480 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
3d4a0 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a ])).{.$this->currentOffset.=.0;.
3d4c0 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 73 65 74 2b 2b .do.{.$this->currentTypeOffset++
3d4e0 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 24 74 68 69 73 ;..if.(!isset($this->types[$this
3d500 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 68 69 73 2d 3e ->currentTypeOffset])).{.$this->
3d520 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 0a 24 74 68 69 currentType.=.-1;.break;.}..$thi
3d540 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 65 73 5b 24 74 s->currentType.=.$this->types[$t
3d560 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 77 68 69 6c 65 his->currentTypeOffset];.}.while
3d580 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 3e 63 75 72 72 .(isset($this->types[$this->curr
3d5a0 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 24 74 68 69 73 entTypeOffset]).&&.!sizeof($this
3d5c0 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 29 29 3b 0a 7d ->rules[$this->currentType]));.}
3d5e0 0a 7d 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().{.$
3d600 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d this->currentOffset.=.0;..$this-
3d620 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e >currentTypeOffset.=.-1;.$this->
3d640 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 currentType.=.-1;..do.{.$this->c
3d660 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 28 urrentTypeOffset++;..if.(!isset(
3d680 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 4f $this->types[$this->currentTypeO
3d6a0 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 20 ffset])).{.$this->currentType.=.
3d6c0 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 65 -1;.break;.}..$this->currentType
3d6e0 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 79 .=.$this->types[$this->currentTy
3d700 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 2d peOffset];.}.while.(isset($this-
3d720 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 5d >types[$this->currentTypeOffset]
3d740 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 2d ).&&.!sizeof($this->rules[$this-
3d760 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >currentType]));.}..public.funct
3d780 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 ion.valid().{.return.isset($this
3d7a0 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 29 0a 26 26 20 ->rules[$this->currentType]).&&.
3d7c0 69 73 73 65 74 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 isset($this->rules[$this->curren
3d7e0 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d tType][$this->currentOffset]);.}
3d800 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
3d820 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;......
3d840 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 ....class.RuleWatchChain.extends
3d860 20 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 6e 6b 65 64 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 .\SplDoublyLinkedList.{.protecte
3d880 64 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 d.$offset.=.0;.......public.func
3d8a0 74 69 6f 6e 20 73 65 65 6b 28 24 6f 66 66 73 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 tion.seek($offset).{.$this->rewi
3d8c0 6e 64 28 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b nd();.for.($i.=.0;.$i.<.$offset;
3d8e0 20 24 69 2b 2b 2c 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .$i++,.$this->next());.}........
3d900 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 29 0a 7b 0a 24 6f 66 ..public.function.remove().{.$of
3d920 66 73 65 74 20 3d 20 24 74 68 69 73 2d 3e 6b 65 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 fset.=.$this->key();.$this->offs
3d940 65 74 55 6e 73 65 74 28 24 6f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f etUnset($offset);.$this->seek($o
3d960 66 66 73 65 74 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 ffset);.}.}.<?php............nam
3d980 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
3d9a0 65 72 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 65 70 er;..use.Composer\Repository\Rep
3d9c0 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 ositoryInterface;.....class.Solv
3d9e0 65 72 0a 7b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a er.{.const.BRANCH_LITERALS.=.0;.
3da00 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 const.BRANCH_LEVEL.=.1;..protect
3da20 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f ed.$policy;.protected.$pool;.pro
3da40 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 tected.$installed;.protected.$ru
3da60 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 les;.protected.$ruleSetGenerator
3da80 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 ;.protected.$updateAll;..protect
3daa0 65 64 20 24 61 64 64 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ed.$addedMap.=.array();.protecte
3dac0 64 20 24 75 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 d.$updateMap.=.array();.protecte
3dae0 64 20 24 77 61 74 63 68 47 72 61 70 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 d.$watchGraph;.protected.$decisi
3db00 6f 6e 73 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 3b 0a 0a 70 ons;.protected.$installedMap;..p
3db20 72 6f 74 65 63 74 65 64 20 24 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 rotected.$propagateIndex;.protec
3db40 74 65 64 20 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 ted.$branches.=.array();.protect
3db60 65 64 20 24 70 72 6f 62 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ed.$problems.=.array();.protecte
3db80 64 20 24 6c 65 61 72 6e 65 64 50 6f 6f 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 d.$learnedPool.=.array();..publi
3dba0 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 6c 69 63 79 49 6e 74 c.function.__construct(PolicyInt
3dbc0 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f erface.$policy,.Pool.$pool,.Repo
3dbe0 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 29 0a 7b 0a 24 74 sitoryInterface.$installed).{.$t
3dc00 68 69 73 2d 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 his->policy.=.$policy;.$this->po
3dc20 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 ol.=.$pool;.$this->installed.=.$
3dc40 69 6e 73 74 61 6c 6c 65 64 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 installed;.$this->ruleSetGenerat
3dc60 6f 72 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 or.=.new.RuleSetGenerator($polic
3dc80 79 2c 20 24 70 6f 6f 6c 29 3b 0a 7d 0a 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e y,.$pool);.}....private.function
3dca0 20 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 73 28 29 0a 7b 0a .makeAssertionRuleDecisions().{.
3dcc0 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 $decisionStart.=.count($this->de
3dce0 63 69 73 69 6f 6e 73 29 20 2d 20 31 3b 0a 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d cisions).-.1;..for.($ruleIndex.=
3dd00 20 30 3b 20 24 72 75 6c 65 49 6e 64 65 78 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 .0;.$ruleIndex.<.count($this->ru
3dd20 6c 65 73 29 3b 20 24 72 75 6c 65 49 6e 64 65 78 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 les);.$ruleIndex++).{.$rule.=.$t
3dd40 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 28 24 72 75 6c 65 49 6e 64 65 78 29 his->rules->ruleById($ruleIndex)
3dd60 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 ;..if.(!$rule->isAssertion().||.
3dd80 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b $rule->isDisabled()).{.continue;
3dda0 0a 7d 0a 0a 24 6c 69 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 .}..$literals.=.$rule->getLitera
3ddc0 6c 73 28 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a ls();.$literal.=.$literals[0];..
3dde0 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 if.(!$this->decisions->decided(a
3de00 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e bs($literal))).{.$this->decision
3de20 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 s->decide($literal,.1,.$rule);.c
3de40 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 ontinue;.}..if.($this->decisions
3de60 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 75 65 3b ->satisfy($literal)).{.continue;
3de80 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 .}....if.(RuleSet::TYPE_LEARNED.
3dea0 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 ===.$rule->getType()).{.$rule->d
3dec0 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 isable();.continue;.}..$conflict
3dee0 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 52 75 6c .=.$this->decisions->decisionRul
3df00 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 e($literal);..if.($conflict.&&.R
3df20 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 uleSet::TYPE_PACKAGE.===.$confli
3df40 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 ct->getType()).{..$problem.=.new
3df60 20 50 72 6f 62 6c 65 6d 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 .Problem;..$problem->addRule($ru
3df80 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 69 63 74 le);.$problem->addRule($conflict
3dfa0 29 3b 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 75 6c 65 29 3b );.$this->disableProblem($rule);
3dfc0 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 6c 65 6d 3b 0a 63 .$this->problems[].=.$problem;.c
3dfe0 6f 6e 74 69 6e 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 ontinue;.}....$problem.=.new.Pro
3e000 62 6c 65 6d 3b 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 blem;.$problem->addRule($rule);.
3e020 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 0a 0a $problem->addRule($conflict);...
3e040 20 0a 20 66 6f 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 ...foreach.($this->rules->getIte
3e060 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 20 61 73 20 24 ratorFor(RuleSet::TYPE_JOB).as.$
3e080 61 73 73 65 72 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 69 assertRule).{.if.($assertRule->i
3e0a0 73 44 69 73 61 62 6c 65 64 28 29 20 7c 7c 20 21 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 69 73 41 sDisabled().||.!$assertRule->isA
3e0c0 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 61 73 73 65 ssertion()).{.continue;.}..$asse
3e0e0 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 2d 3e 67 65 rtRuleLiterals.=.$assertRule->ge
3e100 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 20 tLiterals();.$assertRuleLiteral.
3e120 3d 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 61 =.$assertRuleLiterals[0];..if.(a
3e140 62 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 28 24 61 73 73 65 72 74 52 75 6c 65 bs($literal).!==.abs($assertRule
3e160 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 Literal)).{.continue;.}..$proble
3e180 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 74 68 69 73 2d 3e m->addRule($assertRule);.$this->
3e1a0 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 7d 0a 24 disableProblem($assertRule);.}.$
3e1c0 74 68 69 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 0a 24 74 this->problems[].=.$problem;..$t
3e1e0 68 69 73 2d 3e 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 his->resetToOffset($decisionStar
3e200 74 29 3b 0a 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 t);.$ruleIndex.=.-1;.}.}..protec
3e220 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 ted.function.setupInstalledMap()
3e240 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 .{.$this->installedMap.=.array()
3e260 3b 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 2d 3e 67 65 74 ;.foreach.($this->installed->get
3e280 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 24 74 68 69 73 2d Packages().as.$package).{.$this-
3e2a0 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 29 5d >installedMap[$package->getId()]
3e2c0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e .=.$package;.}..foreach.($this->
3e2e0 6a 6f 62 73 20 61 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 jobs.as.$job).{.switch.($job['cm
3e300 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 d']).{.case.'update':.foreach.($
3e320 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 job['packages'].as.$package).{.i
3e340 66 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 61 70 5b 24 70 61 f.(isset($this->installedMap[$pa
3e360 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 ckage->getId()])).{.$this->updat
3e380 65 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 74 72 75 65 3b 0a eMap[$package->getId()].=.true;.
3e3a0 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 }.}.break;..case.'update-all':.f
3e3c0 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 70 20 61 73 20 24 oreach.($this->installedMap.as.$
3e3e0 70 61 63 6b 61 67 65 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 package).{.$this->updateMap[$pac
3e400 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a kage->getId()].=.true;.}.break;.
3e420 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b .case.'install':.if.(!$job['pack
3e440 61 67 65 73 27 5d 29 20 7b 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d ages']).{.$problem.=.new.Problem
3e460 28 29 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 ();.$problem->addRule(new.Rule($
3e480 74 68 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 this->pool,.array(),.null,.null,
3e4a0 20 24 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 .$job));.$this->problems[].=.$pr
3e4c0 6f 62 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 oblem;.}.break;.}.}.}..public.fu
3e4e0 6e 63 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 nction.solve(Request.$request).{
3e500 0a 24 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 .$this->jobs.=.$request->getJobs
3e520 28 29 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 ();..$this->setupInstalledMap();
3e540 0a 0a 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 ..$this->decisions.=.new.Decisio
3e560 6e 73 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 ns($this->pool);..$this->rules.=
3e580 20 24 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 .$this->ruleSetGenerator->getRul
3e5a0 65 73 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 esFor($this->jobs,.$this->instal
3e5c0 6c 65 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 ledMap);.$this->watchGraph.=.new
3e5e0 20 52 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 .RuleWatchGraph;..foreach.($this
3e600 2d 3e 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 ->rules.as.$rule).{.$this->watch
3e620 47 72 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 Graph->insert(new.RuleWatchNode(
3e640 24 72 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 $rule));.}...$this->makeAssertio
3e660 6e 52 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 nRuleDecisions();..$this->runSat
3e680 28 74 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 (true);....foreach.($this->insta
3e6a0 6c 6c 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 lledMap.as.$packageId.=>.$void).
3e6c0 7b 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 63 69 64 65 {.if.($this->decisions->undecide
3e6e0 64 28 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 d($packageId)).{.$this->decision
3e700 73 2d 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 s->decide(-$packageId,.1,.null);
3e720 0a 7d 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 .}.}..if.($this->problems).{.thr
3e740 6f 77 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 ow.new.SolverProblemsException($
3e760 74 68 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 this->problems,.$this->installed
3e780 4d 61 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 Map);.}..$transaction.=.new.Tran
3e7a0 73 61 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 saction($this->policy,.$this->po
3e7c0 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 74 68 69 73 2d 3e ol,.$this->installedMap,.$this->
3e7e0 64 65 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 decisions);..return.$transaction
3e800 2d 3e 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 ->getOperations();.}..protected.
3e820 66 75 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 function.literalFromId($id).{.$p
3e840 61 63 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 ackage.=.$this->pool->packageByI
3e860 64 28 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 d(abs($id));..return.new.Literal
3e880 28 24 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 ($package,.$id.>.0);.}..........
3e8a0 70 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 protected.function.propagate($le
3e8c0 76 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 vel).{.while.($this->decisions->
3e8e0 76 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 validOffset($this->propagateInde
3e900 78 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 x)).{.$decision.=.$this->decisio
3e920 6e 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 ns->atOffset($this->propagateInd
3e940 65 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 ex);..$conflict.=.$this->watchGr
3e960 61 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 aph->propagateLiteral(.$decision
3e980 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 5d 2c 0a 24 [Decisions::DECISION_LITERAL],.$
3e9a0 6c 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 level,.$this->decisions.);..$thi
3e9c0 73 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 s->propagateIndex++;..if.($confl
3e9e0 69 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 ict).{.return.$conflict;.}.}..re
3ea00 74 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 turn.null;.}.....private.functio
3ea20 6e 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 n.revert($level).{.while.(!$this
3ea40 2d 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 ->decisions->isEmpty()).{.$liter
3ea60 61 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 al.=.$this->decisions->lastLiter
3ea80 61 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 al();..if.($this->decisions->und
3eaa0 65 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 ecided($literal)).{.break;.}..$d
3eac0 65 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 ecisionLevel.=.$this->decisions-
3eae0 3e 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 >decisionLevel($literal);..if.($
3eb00 64 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 decisionLevel.<=.$level).{.break
3eb20 3b 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 ;.}..$this->decisions->revertLas
3eb40 74 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 t();.$this->propagateIndex.=.cou
3eb60 6e 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 nt($this->decisions);.}..while.(
3eb80 21 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 !empty($this->branches).&&.$this
3eba0 2d 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 ->branches[count($this->branches
3ebc0 29 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 ).-.1][self::BRANCH_LEVEL].>=.$l
3ebe0 65 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 evel).{.array_pop($this->branche
3ec00 73 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 s);.}.}.................private.
3ec20 66 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 function.setPropagateLearn($leve
3ec40 6c 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 l,.$literal,.$disableRules,.Rule
3ec60 20 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 .$rule).{.$level++;..$this->deci
3ec80 73 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 sions->decide($literal,.$level,.
3eca0 24 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 $rule);..while.(true).{.$rule.=.
3ecc0 24 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 $this->propagate($level);..if.(!
3ece0 24 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 $rule).{.break;.}..if.($level.==
3ed00 20 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 .1).{.return.$this->analyzeUnsol
3ed20 76 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 vable($rule,.$disableRules);.}..
3ed40 0a 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 ..list($learnLiteral,.$newLevel,
3ed60 20 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 .$newRule,.$why).=.$this->analyz
3ed80 65 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 e($level,.$rule);..if.($newLevel
3eda0 20 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 .<=.0.||.$newLevel.>=.$level).{.
3edc0 74 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 throw.new.SolverBugException(."T
3ede0 72 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 rying.to.revert.to.invalid.level
3ee00 20 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 .".(int).$newLevel.".from.level.
3ee20 22 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 ".(int).$level.".".);.}.elseif.(
3ee40 21 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 !$newRule).{.throw.new.SolverBug
3ee60 45 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 Exception(."No.rule.was.learned.
3ee80 66 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 from.analyzing.$rule.at.level.$l
3eea0 65 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 evel.".);.}..$level.=.$newLevel;
3eec0 0a 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 ..$this->revert($level);..$this-
3eee0 3e 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 >rules->add($newRule,.RuleSet::T
3ef00 59 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 YPE_LEARNED);..$this->learnedWhy
3ef20 5b 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 [$newRule->getId()].=.$why;..$ru
3ef40 6c 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 leNode.=.new.RuleWatchNode($newR
3ef60 75 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 ule);.$ruleNode->watch2OnHighest
3ef80 28 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 ($this->decisions);.$this->watch
3efa0 47 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 Graph->insert($ruleNode);..$this
3efc0 2d 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 ->decisions->decide($learnLitera
3efe0 6c 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 l,.$level,.$newRule);.}..return.
3f000 24 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 $level;.}..private.function.sele
3f020 63 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 ctAndInstall($level,.array.$deci
3f040 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 20 52 75 6c 65 20 24 sionQueue,.$disableRules,.Rule.$
3f060 72 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 rule).{...$literals.=.$this->pol
3f080 69 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 icy->selectPreferedPackages($thi
3f0a0 73 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 s->pool,.$this->installedMap,.$d
3f0c0 65 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 ecisionQueue);..$selectedLiteral
3f0e0 20 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 .=.array_shift($literals);....if
3f100 20 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 .(count($literals)).{.$this->bra
3f120 6e 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 nches[].=.array($literals,.$leve
3f140 6c 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 l);.}..return.$this->setPropagat
3f160 65 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 eLearn($level,.$selectedLiteral,
3f180 20 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 .$disableRules,.$rule);.}..prote
3f1a0 63 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 cted.function.analyze($level,.$r
3f1c0 75 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 ule).{.$analyzedRule.=.$rule;.$r
3f1e0 75 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 uleLevel.=.1;.$num.=.0;.$l1num.=
3f200 20 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 .0;.$seen.=.array();.$learnedLit
3f220 65 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 erals.=.array(null);..$decisionI
3f240 64 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 d.=.count($this->decisions);..$t
3f260 68 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 his->learnedPool[].=.array();..w
3f280 68 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 hile.(true).{.$this->learnedPool
3f2a0 5b 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 [count($this->learnedPool).-.1][
3f2c0 5d 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 ].=.$rule;..foreach.($rule->getL
3f2e0 69 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 iterals().as.$literal).{...if.($
3f300 74 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 this->decisions->satisfy($litera
3f320 6c 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 l)).{.continue;.}..if.(isset($se
3f340 65 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 en[abs($literal)])).{.continue;.
3f360 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 65 3b 0a 0a }.$seen[abs($literal)].=.true;..
3f380 24 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 $l.=.$this->decisions->decisionL
3f3a0 65 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 evel($literal);..if.(1.===.$l).{
3f3c0 0a 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 .$l1num++;.}.elseif.($level.===.
3f3e0 24 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 $l).{.$num++;.}.else.{...$learne
3f400 64 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 dLiterals[].=.$literal;..if.($l.
3f420 3e 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 >.$ruleLevel).{.$ruleLevel.=.$l;
3f440 0a 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 .}.}.}..$l1retry.=.true;.while.(
3f460 24 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 $l1retry).{.$l1retry.=.false;..i
3f480 66 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 f.(!$num.&&.!--$l1num).{...break
3f4a0 20 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 .2;.}..while.(true).{.if.($decis
3f4c0 69 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 ionId.<=.0).{.throw.new.SolverBu
3f4e0 67 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 gException(."Reached.invalid.dec
3f500 69 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 ision.id.$decisionId.while.looki
3f520 6e 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 ng.through.$rule.for.a.literal.p
3f540 72 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 resent.in.the.analyzed.rule.$ana
3f560 6c 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 lyzedRule.".);.}..$decisionId--;
3f580 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 73 2d 3e ..$decision.=.$this->decisions->
3f5a0 61 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 atOffset($decisionId);.$literal.
3f5c0 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_
3f5e0 4c 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 LITERAL];..if.(isset($seen[abs($
3f600 6c 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 literal)])).{.break;.}.}..unset(
3f620 24 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 $seen[abs($literal)]);..if.($num
3f640 20 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 .&&.0.===.--$num).{.$learnedLite
3f660 72 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 rals[0].=.-abs($literal);..if.(!
3f680 24 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 $l1num).{.break.2;.}..foreach.($
3f6a0 6c 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 learnedLiterals.as.$i.=>.$learne
3f6c0 64 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 dLiteral).{.if.($i.!==.0).{.unse
3f6e0 74 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 t($seen[abs($learnedLiteral)]);.
3f700 7d 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 }.}...$l1num++;.$l1retry.=.true;
3f720 0a 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 .}.}..$decision.=.$this->decisio
3f740 6e 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 ns->atOffset($decisionId);.$rule
3f760 20 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 .=.$decision[Decisions::DECISION
3f780 5f 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 _REASON];.}..$why.=.count($this-
3f7a0 3e 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 >learnedPool).-.1;..if.(!$learne
3f7c0 64 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 dLiterals[0]).{.throw.new.Solver
3f7e0 42 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 BugException(."Did.not.find.a.le
3f800 61 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 arnable.literal.in.analyzed.rule
3f820 20 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 .$analyzedRule.".);.}..$newRule.
3f840 3d 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 =.new.Rule($this->pool,.$learned
3f860 4c 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 Literals,.Rule::RULE_LEARNED,.$w
3f880 68 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 hy);..return.array($learnedLiter
3f8a0 61 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 als[0],.$ruleLevel,.$newRule,.$w
3f8c0 68 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 hy);.}..private.function.analyze
3f8e0 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 63 6f 6e 66 6c 69 UnsolvableRule($problem,.$confli
3f900 63 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 ctRule).{.$why.=.$conflictRule->
3f920 67 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 getId();..if.($conflictRule->get
3f940 54 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 Type().==.RuleSet::TYPE_LEARNED)
3f960 20 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 .{.$learnedWhy.=.$this->learnedW
3f980 68 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 hy[$why];.$problemRules.=.$this-
3f9a0 3e 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 >learnedPool[$learnedWhy];..fore
3f9c0 61 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 ach.($problemRules.as.$problemRu
3f9e0 6c 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 le).{.$this->analyzeUnsolvableRu
3fa00 6c 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 le($problem,.$problemRule);.}..r
3fa20 65 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 eturn;.}..if.($conflictRule->get
3fa40 54 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 Type().==.RuleSet::TYPE_PACKAGE)
3fa60 20 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 .{...return;.}..$problem->nextSe
3fa80 63 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 ction();.$problem->addRule($conf
3faa0 6c 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 lictRule);.}..private.function.a
3fac0 6e 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 nalyzeUnsolvable($conflictRule,.
3fae0 24 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 $disableRules).{.$problem.=.new.
3fb00 50 72 6f 62 6c 65 6d 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 Problem;.$problem->addRule($conf
3fb20 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 lictRule);..$this->analyzeUnsolv
3fb40 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 74 52 75 6c 65 ableRule($problem,.$conflictRule
3fb60 29 3b 0a 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 6c 65 6d );..$this->problems[].=.$problem
3fb80 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 ;..$seen.=.array();.$literals.=.
3fba0 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 $conflictRule->getLiterals();..f
3fbc0 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 20 7b oreach.($literals.as.$literal).{
3fbe0 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 ...if.($this->decisions->satisfy
3fc00 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b ($literal)).{.continue;.}.$seen[
3fc20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 abs($literal)].=.true;.}..foreac
3fc40 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 64 65 63 69 73 69 6f 6e h.($this->decisions.as.$decision
3fc60 29 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 ).{.$literal.=.$decision[Decisio
3fc80 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 ns::DECISION_LITERAL];....if.(!i
3fca0 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f sset($seen[abs($literal)])).{.co
3fcc0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 ntinue;.}..$why.=.$decision[Deci
3fce0 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 72 6f 62 6c sions::DECISION_REASON];..$probl
3fd00 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 77 68 79 29 3b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a em->addRule($why);.$this->analyz
3fd20 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 77 68 79 29 3b eUnsolvableRule($problem,.$why);
3fd40 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 77 68 79 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 ..$literals.=.$why->getLiterals(
3fd60 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 20 24 6c 69 74 65 72 );..foreach.($literals.as.$liter
3fd80 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 6f 6e 73 2d 3e 73 61 al).{...if.($this->decisions->sa
3fda0 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 75 65 3b 0a 7d 0a 24 tisfy($literal)).{.continue;.}.$
3fdc0 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 7d 0a 7d 0a seen[abs($literal)].=.true;.}.}.
3fde0 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 .if.($disableRules).{.foreach.($
3fe00 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 72 6f 62 this->problems[count($this->prob
3fe20 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e lems).-.1].as.$reason).{.$this->
3fe40 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 29 3b disableProblem($reason['rule']);
3fe60 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c 76 65 72 28 29 3b 0a 0a 72 65 74 75 72 .}..$this->resetSolver();..retur
3fe80 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e n.1;.}..return.0;.}..private.fun
3fea0 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 77 68 79 29 0a 7b 0a 24 6a 6f ction.disableProblem($why).{.$jo
3fec0 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 4a 6f 62 28 29 3b 0a 0a 69 66 20 28 21 24 6a 6f 62 29 20 b.=.$why->getJob();..if.(!$job).
3fee0 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a {.$why->disable();..return;.}...
3ff00 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 .foreach.($this->rules.as.$rule)
3ff20 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 29 .{.if.($job.===.$rule->getJob())
3ff40 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 .{.$rule->disable();.}.}.}..priv
3ff60 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 53 6f 6c 76 65 72 28 29 0a 7b 0a 24 74 68 ate.function.resetSolver().{.$th
3ff80 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 28 29 3b 0a 0a 24 74 68 69 73 2d 3e is->decisions->reset();..$this->
3ffa0 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 propagateIndex.=.0;.$this->branc
3ffc0 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 44 69 73 hes.=.array();..$this->enableDis
3ffe0 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 ableLearnedRules();.$this->makeA
40000 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ssertionRuleDecisions();.}......
40020 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 69 73 61 62 6c ...private.function.enableDisabl
40040 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 eLearnedRules().{.foreach.($this
40060 2d 3e 72 75 6c 65 73 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 ->rules->getIteratorFor(RuleSet:
40080 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 77 68 79 20 :TYPE_LEARNED).as.$rule).{.$why.
400a0 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 72 75 6c 65 2d 3e 67 65 74 49 64 =.$this->learnedWhy[$rule->getId
400c0 28 29 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 6c 65 61 72 ()];.$problemRules.=.$this->lear
400e0 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d nedPool[$why];..$foundDisabled.=
40100 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 .false;.foreach.($problemRules.a
40120 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 70 72 6f 62 6c 65 6d 52 75 s.$problemRule).{.if.($problemRu
40140 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c le->isDisabled()).{.$foundDisabl
40160 65 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 66 6f 75 6e ed.=.true;.break;.}.}..if.($foun
40180 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 dDisabled.&&.$rule->isEnabled())
401a0 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 .{.$rule->disable();.}.elseif.(!
401c0 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 69 73 44 69 73 61 62 $foundDisabled.&&.$rule->isDisab
401e0 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a led()).{.$rule->enable();.}.}.}.
40200 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 53 61 74 28 24 64 69 73 61 62 6c .private.function.runSat($disabl
40220 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 eRules.=.true).{.$this->propagat
40240 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 eIndex.=.0;....................$
40260 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 24 64 65 63 69 73 69 decisionQueue.=.array();.$decisi
40280 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 69 onSupplementQueue.=.array();.$di
402a0 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 sableRules.=.array();..$level.=.
402c0 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 24 69 1;.$systemLevel.=.$level.+.1;.$i
402e0 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b nstalledPos.=.0;..while.(true).{
40300 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 ..if.(1.===.$level).{.$conflictR
40320 75 6c 65 20 3d 20 24 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 ule.=.$this->propagate($level);.
40340 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 20 7b 0a 69 66 if.(null.!==.$conflictRule).{.if
40360 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 .($this->analyzeUnsolvable($conf
40380 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 lictRule,.$disableRules)).{.cont
403a0 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 65 76 inue;.}..return;.}.}....if.($lev
403c0 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d el.<.$systemLevel).{.$iterator.=
403e0 20 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 46 6f 72 28 52 75 .$this->rules->getIteratorFor(Ru
40400 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 leSet::TYPE_JOB);.foreach.($iter
40420 61 74 6f 72 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 45 6e ator.as.$rule).{.if.($rule->isEn
40440 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 abled()).{.$decisionQueue.=.arra
40460 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 y();.$noneSatisfied.=.true;..for
40480 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 20 61 73 20 24 6c each.($rule->getLiterals().as.$l
404a0 69 74 65 72 61 6c 29 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 iteral).{.if.($this->decisions->
404c0 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 satisfy($literal)).{.$noneSatisf
404e0 69 65 64 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6c 69 74 65 72 ied.=.false;.break;.}.if.($liter
40500 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 al.>.0.&&.$this->decisions->unde
40520 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 cided($literal)).{.$decisionQueu
40540 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 e[].=.$literal;.}.}..if.($noneSa
40560 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 65 29 tisfied.&&.count($decisionQueue)
40580 29 20 7b 0a 0a 20 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c ).{.....if.(count($this->install
405a0 65 64 29 20 21 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 29 29 20 ed).!=.count($this->updateMap)).
405c0 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 {.$prunedQueue.=.array();.foreac
405e0 68 20 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b h.($decisionQueue.as.$literal).{
40600 0a 69 66 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 61 70 5b 61 .if.(isset($this->installedMap[a
40620 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 5b 5d bs($literal)])).{.$prunedQueue[]
40640 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 .=.$literal;.if.(isset($this->up
40660 64 61 74 65 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 72 75 6e dateMap[abs($literal)])).{.$prun
40680 65 64 51 75 65 75 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 72 65 61 6b 3b edQueue.=.$decisionQueue;.break;
406a0 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 75 6e 65 64 51 .}.}.}.$decisionQueue.=.$prunedQ
406c0 75 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 ueue;.}.}..if.($noneSatisfied.&&
406e0 20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 24 6f 4c 65 76 .count($decisionQueue)).{..$oLev
40700 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 2d 3e 73 65 6c el.=.$level;.$level.=.$this->sel
40720 65 63 74 41 6e 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 ectAndInstall($level,.$decisionQ
40740 75 65 75 65 2c 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 ueue,.$disableRules,.$rule);..if
40760 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 .(0.===.$level).{.return;.}.if.(
40780 24 6c 65 76 65 6c 20 3c 3d 20 24 6f 4c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a $level.<=.$oLevel).{.break;.}.}.
407a0 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a }.}..$systemLevel.=.$level.+.1;.
407c0 0a 0a 20 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 69 74 65 72 61 ...$iterator->next();.if.($itera
407e0 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 tor->valid()).{.continue;.}.}..i
40800 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 0a 24 73 79 73 f.($level.<.$systemLevel).{.$sys
40820 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 temLevel.=.$level;.}..for.($i.=.
40840 30 2c 20 24 6e 20 3d 20 30 3b 20 24 6e 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 0,.$n.=.0;.$n.<.count($this->rul
40860 65 73 29 3b 20 24 69 2b 2b 2c 20 24 6e 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 20 63 6f 75 es);.$i++,.$n++).{.if.($i.==.cou
40880 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 nt($this->rules)).{.$i.=.0;.}..$
408a0 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 49 64 28 24 69 rule.=.$this->rules->ruleById($i
408c0 29 3b 0a 24 6c 69 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 );.$literals.=.$rule->getLiteral
408e0 73 28 29 3b 0a 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b s();..if.($rule->isDisabled()).{
40900 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 .continue;.}..$decisionQueue.=.a
40920 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c rray();..............foreach.($l
40940 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 iterals.as.$literal).{.if.($lite
40960 72 61 6c 20 3c 3d 20 30 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e ral.<=.0).{.if.(!$this->decision
40980 73 2d 3e 64 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 s->decidedInstall(abs($literal))
409a0 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 ).{.continue.2;...}.}.else.{.if.
409c0 28 24 74 68 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 ($this->decisions->decidedInstal
409e0 6c 28 61 62 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 l(abs($literal))).{.continue.2;.
40a00 0a 20 7d 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 63 69 ..}.if.($this->decisions->undeci
40a20 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 ded(abs($literal))).{.$decisionQ
40a40 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 ueue[].=.$literal;.}.}.}....if.(
40a60 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e count($decisionQueue).<.2).{.con
40a80 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 tinue;.}..$oLevel.=.$level;.$lev
40aa0 65 6c 20 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 el.=.$this->selectAndInstall($le
40ac0 76 65 6c 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 vel,.$decisionQueue,.$disableRul
40ae0 65 73 2c 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 es,.$rule);..if.(0.===.$level).{
40b00 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 6e 20 3d 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c .return;.}....$n.=.-1;.}..if.($l
40b20 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b evel.<.$systemLevel).{.continue;
40b40 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 .}....if.(count($this->branches)
40b60 29 20 7b 0a 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c ).{..$lastLiteral.=.null;.$lastL
40b80 65 76 65 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 evel.=.null;.$lastBranchIndex.=.
40ba0 30 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 0;.$lastBranchOffset.=.0;.$l.=.0
40bc0 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 ;..for.($i.=.count($this->branch
40be0 65 73 29 20 2d 20 31 3b 20 24 69 20 3e 3d 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 es).-.1;.$i.>=.0;.$i--).{.list($
40c00 6c 69 74 65 72 61 6c 73 2c 20 24 6c 29 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b literals,.$l).=.$this->branches[
40c20 24 69 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6f 66 66 $i];..foreach.($literals.as.$off
40c40 73 65 74 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 set.=>.$literal).{.if.($literal.
40c60 26 26 20 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 69 73 69 &&.$literal.>.0.&&.$this->decisi
40c80 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 20 3e 20 24 ons->decisionLevel($literal).>.$
40ca0 6c 20 2b 20 31 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c l.+.1).{.$lastLiteral.=.$literal
40cc0 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 ;.$lastBranchIndex.=.$i;.$lastBr
40ce0 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 65 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c anchOffset.=.$offset;.$lastLevel
40d00 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 .=.$l;.}.}.}..if.($lastLiteral).
40d20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 {.unset($this->branches[$lastBra
40d40 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 54 45 52 41 4c 53 5d nchIndex][self::BRANCH_LITERALS]
40d60 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 5d 29 3b 0a 61 72 72 61 79 5f 76 61 6c 75 [$lastBranchOffset]);.array_valu
40d80 65 73 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e es($this->branches[$lastBranchIn
40da0 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 29 3b 0a 0a 24 dex][self::BRANCH_LITERALS]);..$
40dc0 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 level.=.$lastLevel;.$this->rever
40de0 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 t($level);..$why.=.$this->decisi
40e00 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c ons->lastReason();..$oLevel.=.$l
40e20 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 evel;.$level.=.$this->setPropaga
40e40 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 61 6c 2c 20 24 64 teLearn($level,.$lastLiteral,.$d
40e60 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 isableRules,.$why);..if.($level.
40e80 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d ==.0).{.return;.}..continue;.}.}
40ea0 0a 0a 62 72 65 61 6b 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 ..break;.}.}.}.<?php............
40ec0 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
40ee0 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 4c 69 6e olver;..use.Composer\Package\Lin
40f00 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 66 kConstraint\LinkConstraintInterf
40f20 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 6f 74 65 63 74 ace;.....class.Request.{.protect
40f40 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c ed.$jobs;.protected.$pool;..publ
40f60 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
40f80 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 24 74 68 69 73 ol).{.$this->pool.=.$pool;.$this
40fa0 2d 3e 6a 6f 62 73 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 ->jobs.=.array();.}..public.func
40fc0 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 tion.install($packageName,.LinkC
40fe0 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 3d onstraintInterface.$constraint.=
41000 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 4e .null).{.$this->addJob($packageN
41020 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a ame,.'install',.$constraint);.}.
41040 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 70 61 63 6b 61 67 65 .public.function.update($package
41060 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 63 Name,.LinkConstraintInterface.$c
41080 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 6f onstraint.=.null).{.$this->addJo
410a0 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 63 6f 6e 73 74 b($packageName,.'update',.$const
410c0 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 72 65 6d 6f 76 raint);.}..public.function.remov
410e0 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 49 6e e($packageName,.LinkConstraintIn
41100 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 24 74 terface.$constraint.=.null).{.$t
41120 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 72 65 6d 6f 76 his->addJob($packageName,.'remov
41140 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 e',.$constraint);.}..protected.f
41160 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6d unction.addJob($packageName,.$cm
41180 64 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 63 6f 6e 73 d,.LinkConstraintInterface.$cons
411a0 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 traint.=.null).{.$packageName.=.
411c0 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 70 61 63 6b 61 strtolower($packageName);.$packa
411e0 67 65 73 20 3d 20 24 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 ges.=.$this->pool->whatProvides(
41200 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 24 74 68 $packageName,.$constraint);..$th
41220 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 73 27 20 3d is->jobs[].=.array(.'packages'.=
41240 3e 20 24 70 61 63 6b 61 67 65 73 2c 0a 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c 0a 27 70 61 63 >.$packages,.'cmd'.=>.$cmd,.'pac
41260 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 kageName'.=>.$packageName,.'cons
41280 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 29 3b 0a 7d 0a 0a 70 75 traint'.=>.$constraint,.);.}..pu
412a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 41 6c 6c 28 29 0a 7b 0a 24 74 68 69 blic.function.updateAll().{.$thi
412c0 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 63 6d 64 27 20 3d 3e 20 27 75 70 64 61 s->jobs[].=.array('cmd'.=>.'upda
412e0 74 65 2d 61 6c 6c 27 2c 20 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b te-all',.'packages'.=>.array());
41300 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 28 29 0a 7b 0a .}..public.function.getJobs().{.
41320 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a return.$this->jobs;.}.}.<?php...
41340 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
41360 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 62 ndencyResolver;.......class.Prob
41380 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 53 65 65 6e 3b lem.{.....protected.$reasonSeen;
413a0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 61 72 72 61 79 ......protected.$reasons.=.array
413c0 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a 0a 0a ();..protected.$section.=.0;....
413e0 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.
41400 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-
41420 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
41440 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(),.));.
41460 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
41480 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;.}.
414a0 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
414c0 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
414e0 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
41500 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
41520 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
41540 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
41560 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)
41580 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
415a0 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.&&.
415c0 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
415e0 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.
41600 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'],
41620 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['
41640 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
41660 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
41680 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).
416a0 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
416c0 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....-.
416e0 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
41700 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
41720 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']).'.
41740 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d '.$error.'.';.}..return."\n....-
41760 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 6a 6f 62 5b 27 70 .The.requested.package.".$job['p
41780 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
417a0 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 63 6f 75 6c 64 Text($job['constraint']).'.could
417c0 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 73 61 67 65 73 20 .not.be.found.';.}.}..$messages.
417e0 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 6f 6e 73 20 61 73 =.array();..foreach.($reasons.as
41800 20 24 72 65 61 73 6f 6e 29 20 7b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 .$reason).{..$rule.=.$reason['ru
41820 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 3b 0a 0a 69 66 le'];.$job.=.$reason['job'];..if
41840 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 69 73 2d 3e 6a .($job).{.$messages[].=.$this->j
41860 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 72 75 6c 65 29 obToText($job);.}.elseif.($rule)
41880 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 65 29 20 7b 0a .{.if.($rule.instanceof.Rule).{.
418a0 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 74 74 79 53 74 $messages[].=.$rule->getPrettySt
418c0 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 0a 72 65 74 75 ring($installedMap);.}.}.}..retu
418e0 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 20 20 2d 20 22 rn."\n....-.".implode("\n....-."
41900 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 65 63 74 65 64 ,.$messages);.}........protected
41920 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 65 61 73 6f 6e .function.addReason($id,.$reason
41940 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 6e 53 65 65 6e ).{.if.(!isset($this->reasonSeen
41960 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 5b 24 69 64 5d [$id])).{.$this->reasonSeen[$id]
41980 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 69 73 2d 3e 73 .=.true;.$this->reasons[$this->s
419a0 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 75 62 6c 69 63 ection][].=.$reason;.}.}..public
419c0 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 74 68 69 73 2d .function.nextSection().{.$this-
419e0 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 74 65 64 20 66 >section++;.}........protected.f
41a00 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 77 69 74 63 68 unction.jobToText($job).{.switch
41a20 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 61 6c 6c 27 3a .($job['cmd']).{.case.'install':
41a40 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 65 74 75 72 6e .if.(!$job['packages']).{.return
41a60 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 66 79 20 69 6e .'No.package.found.to.satisfy.in
41a80 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 61 63 6b 61 67 stall.request.for.'.$job['packag
41aa0 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 54 65 78 74 28 eName'].$this->constraintToText(
41ac0 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 75 72 6e 20 27 $job['constraint']);.}..return.'
41ae0 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 24 6a 6f 62 5b Installation.request.for.'.$job[
41b00 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 74 'packageName'].$this->constraint
41b20 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 2d 3e 20 ToText($job['constraint']).'.->.
41b40 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 50 61 63 6b 61 satisfiable.by.'.$this->getPacka
41b60 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 27 3b 0a 63 61 geList($job['packages']).'.';.ca
41b80 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 20 72 65 71 75 se.'update':.return.'Update.requ
41ba0 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 27 5d 2e 24 74 est.for.'.$job['packageName'].$t
41bc0 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 27 63 6f 6e 73 his->constraintToText($job['cons
41be0 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 27 3a 0a 72 65 traint']).'.';.case.'remove':.re
41c00 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 2e 24 6a 6f 62 turn.'Removal.request.for.'.$job
41c20 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
41c40 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 27 3b 0a tToText($job['constraint']).'';.
41c60 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 63 6d 64 27 5d }..return.'Job(cmd='.$job['cmd']
41c80 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 61 6d 65 27 5d .',.target='.$job['packageName']
41ca0 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 61 63 6b 61 67 .',.packages=['.$this->getPackag
41cc0 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 27 3b 0a 7d 0a eList($job['packages']).'])';.}.
41ce0 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 61 67 65 4c 69 .protected.function.getPackageLi
41d00 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 6f 64 65 28 27 st($packages).{.return.implode('
41d20 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 28 66 75 6e 63 ,.',.array_unique(array_map(func
41d40 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 61 63 6b 61 67 tion.($package).{.return.$packag
41d60 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 61 63 6b 61 67 e->getPrettyString();.},.$packag
41d80 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 66 75 6e 63 74 es.)));.}........protected.funct
41da0 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 72 61 69 6e 74 ion.constraintToText($constraint
41dc0 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 27 20 27 2e 24 ).{.return.($constraint).?.'.'.$
41de0 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 28 29 20 3a 20 constraint->getPrettyString().:.
41e00 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 73 70 61 '';.}.}.<?php............namespa
41e20 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;.
41e40 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 72 61 70 68 0a ...........class.RuleWatchGraph.
41e60 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 61 72 72 61 79 {.protected.$watchChains.=.array
41e80 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 63 74 69 6f 6e ();..............public.function
41ea0 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 29 0a 7b 0a 69 .insert(RuleWatchNode.$node).{.i
41ec0 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 72 74 69 6f 6e f.($node->getRule()->isAssertion
41ee0 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 72 72 61 79 28 ()).{.return;.}..foreach.(array(
41f00 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 32 29 20 61 73 $node->watch1,.$node->watch2).as
41f20 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 69 73 2d 3e 77 .$literal).{.if.(!isset($this->w
41f40 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 68 69 73 2d 3e atchChains[$literal])).{.$this->
41f60 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 20 52 75 6c 65 watchChains[$literal].=.new.Rule
41f80 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 43 68 61 69 6e WatchChain;.}..$this->watchChain
41fa0 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 3b 0a 7d 0a 7d s[$literal]->unshift($node);.}.}
41fc0 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 62 6c 69 63 20 .........................public.
41fe0 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 64 65 63 69 64 function.propagateLiteral($decid
42000 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 6e 73 29 0a 7b edLiteral,.$level,.$decisions).{
42020 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 4c 69 74 65 72 .......$literal.=.-$decidedLiter
42040 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 68 43 68 61 69 al;..if.(!isset($this->watchChai
42060 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 6c 3b 0a 7d 0a ns[$literal])).{.return.null;.}.
42080 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 73 5b 24 6c 69 .$chain.=.$this->watchChains[$li
420a0 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 77 68 69 6c 65 teral];..$chain->rewind();.while
420c0 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 3d 20 24 63 68 .($chain->valid()).{.$node.=.$ch
420e0 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 20 3d 20 24 6e ain->current();.$otherWatch.=.$n
42100 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 29 3b 0a 0a 69 ode->getOtherWatch($literal);..i
42120 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 61 62 6c 65 64 f.(!$node->getRule()->isDisabled
42140 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 24 6f 74 68 65 ().&&.!$decisions->satisfy($othe
42160 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 24 6e 6f 64 65 rWatch)).{.$ruleLiterals.=.$node
42180 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 0a 0a 24 61 6c ->getRule()->getLiterals();..$al
421a0 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 69 6c 74 65 72 ternativeLiterals.=.array_filter
421c0 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 72 75 6c 65 4c ($ruleLiterals,.function.($ruleL
421e0 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 65 72 57 61 74 iteral).use.($literal,.$otherWat
42200 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 69 74 65 72 61 ch,.$decisions).{.return.$litera
42220 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 72 57 61 74 63 l.!==.$ruleLiteral.&&.$otherWatc
42240 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 69 73 69 6f 6e h.!==.$ruleLiteral.&&.!$decision
42260 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 7d 29 3b 0a 0a s->conflict($ruleLiteral);.});..
42280 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 0a 72 65 73 65 if.($alternativeLiterals).{.rese
422a0 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 68 69 73 2d 3e t($alternativeLiterals);.$this->
422c0 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 28 24 61 6c 74 moveWatch($literal,.current($alt
422e0 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 63 6f 6e 74 69 ernativeLiterals),.$node);.conti
42300 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 66 6c 69 63 74 nue;.}..if.($decisions->conflict
42320 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 64 65 2d 3e 67 ($otherWatch)).{.return.$node->g
42340 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 63 69 64 65 28 etRule();.}..$decisions->decide(
42360 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 3e 67 65 74 52 $otherWatch,.$level,.$node->getR
42380 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 7d 0a 0a 72 65 ule());.}..$chain->next();.}..re
423a0 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 65 63 74 65 64 turn.null;.}...........protected
423c0 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 74 65 72 61 6c .function.moveWatch($fromLiteral
423e0 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 21 69 73 73 65 ,.$toLiteral,.$node).{.if.(!isse
42400 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 65 72 61 6c 5d t($this->watchChains[$toLiteral]
42420 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 4c 69 74 65 72 )).{.$this->watchChains[$toLiter
42440 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 0a 0a 24 6e 6f al].=.new.RuleWatchChain;.}..$no
42460 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 20 24 74 6f 4c de->moveWatch($fromLiteral,.$toL
42480 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 5b 24 66 72 6f iteral);.$this->watchChains[$fro
424a0 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 3e 77 61 74 63 mLiteral]->remove();.$this->watc
424c0 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 74 28 24 6e 6f hChains[$toLiteral]->unshift($no
424e0 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 61 6d 65 73 70 de);.}.}.<?php............namesp
42500 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 72 5c 4a 73 6f 6e ace.Composer;..use.Composer\Json
42520 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 4f 5c 49 4f 49 6e 74 \JsonFile;.use.Composer\IO\IOInt
42540 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\
42560 43 6f 6d 70 6f 73 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 ComposerRepository;.use.Composer
42580 5c 52 65 70 6f 73 69 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 \Repository\RepositoryManager;.u
425a0 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 72 se.Composer\Util\ProcessExecutor
425c0 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 6c 65 73 79 ;.use.Composer\Util\RemoteFilesy
425e0 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a stem;.........class.Factory.{...
42600 0a 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 43 6f .public.static.function.createCo
42620 6e 66 69 67 28 29 0a 7b 0a 0a 20 69 66 20 28 21 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 nfig().{...if.(!$home.=.getenv('
42640 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 27 29 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 COMPOSER_HOME')).{.if.(defined('
42660 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 24 PHP_WINDOWS_VERSION_MAJOR')).{.$
42680 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 20 2e 20 27 2f 43 6f 6d home.=.getenv('APPDATA')...'/Com
426a0 70 6f 73 65 72 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 poser';.}.else.{.$home.=.getenv(
426c0 27 48 4f 4d 45 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 0a 0a 20 69 'HOME')...'/.composer';.}.}....i
426e0 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 74 61 63 63 f.(!file_exists($home...'/.htacc
42700 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 20 7b 0a 40 ess')).{.if.(!is_dir($home)).{.@
42720 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 40 66 69 6c mkdir($home,.0777,.true);.}.@fil
42740 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 61 63 63 65 e_put_contents($home...'/.htacce
42760 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 6f 6e 66 69 ss',.'Deny.from.all');.}..$confi
42780 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 2d 3e 6d 65 g.=.new.Config();....$config->me
427a0 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 27 68 6f 6d rge(array('config'.=>.array('hom
427c0 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 20 4a 73 6f e'.=>.$home)));..$file.=.new.Jso
427e0 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 0a 69 66 20 nFile($home.'/config.json');.if.
42800 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 3e 6d 65 72 ($file->exists()).{.$config->mer
42820 67 65 28 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f ge($file->read());.}..return.$co
42840 6e 66 69 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 43 6f 6d 70 nfig;.}..public.function.getComp
42860 6f 73 65 72 46 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 oserFile().{.return.getenv('COMP
42880 4f 53 45 52 27 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 OSER').?:.'composer.json';.}..pu
428a0 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 44 65 66 61 75 blic.static.function.createDefau
428c0 6c 74 52 65 70 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 ltRepositories(IOInterface.$io.=
428e0 20 6e 75 6c 6c 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 .null,.Config.$config.=.null,.Re
42900 70 6f 73 69 74 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 positoryManager.$rm.=.null).{.$r
42920 65 70 6f 73 20 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 epos.=.array();..if.(!$config).{
42940 0a 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 6e 66 69 67 28 .$config.=.static::createConfig(
42960 29 3b 0a 7d 0a 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 );.}.if.(!$rm).{.if.(!$io).{.thr
42980 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
429a0 28 27 54 68 69 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 ('This.function.requires.either.
429c0 61 6e 20 49 4f 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 an.IOInterface.or.a.RepositoryMa
429e0 6e 61 67 65 72 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 nager');.}.$factory.=.new.static
42a00 3b 0a 24 72 6d 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 ;.$rm.=.$factory->createReposito
42a20 72 79 4d 61 6e 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 ryManager($io,.$config);.}..fore
42a40 61 63 68 20 28 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 ach.($config->getRepositories().
42a60 61 73 20 24 69 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 as.$index.=>.$repo).{.if.(!is_ar
42a80 72 61 79 28 24 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 ray($repo)).{.throw.new.\Unexpec
42aa0 74 65 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 tedValueException('Repository.'.
42ac0 24 69 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 $index.'.('.json_encode($repo).'
42ae0 29 20 73 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 ).should.be.an.array,.'.gettype(
42b00 24 72 65 70 6f 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 $repo).'.given');.}.if.(!isset($
42b20 72 65 70 6f 5b 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 repo['type'])).{.throw.new.\Unex
42b40 70 65 63 74 65 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 pectedValueException('Repository
42b60 20 27 2e 24 69 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 .'.$index.'.('.json_encode($repo
42b80 29 2e 27 29 20 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 ).').must.have.a.type.defined');
42ba0 0a 7d 0a 24 6e 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 .}.$name.=.is_int($index).&&.iss
42bc0 65 74 28 24 72 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 et($repo['url']).?.preg_replace(
42be0 27 7b 5e 68 74 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 '{^https?://}i',.'',.$repo['url'
42c00 5d 29 20 3a 20 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 ]).:.$index;.while.(isset($repos
42c20 5b 24 6e 61 6d 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 [$name])).{.$name..=.'2';.}.$rep
42c40 6f 73 5b 24 6e 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 os[$name].=.$rm->createRepositor
42c60 79 28 24 72 65 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 y($repo['type'],.$repo);.}..retu
42c80 72 6e 20 24 72 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 rn.$repos;.}...........public.fu
42ca0 6e 63 74 69 6f 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 nction.createComposer(IOInterfac
42cc0 65 20 24 69 6f 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 e.$io,.$localConfig.=.null).{...
42ce0 69 66 20 28 6e 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 if.(null.===.$localConfig).{.$lo
42d00 63 61 6c 43 6f 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 calConfig.=.$this->getComposerFi
42d20 6c 65 28 29 3b 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 le();.}..if.(is_string($localCon
42d40 66 69 67 29 29 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 fig)).{.$composerFile.=.$localCo
42d60 6e 66 69 67 3b 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 nfig;.$file.=.new.JsonFile($loca
42d80 6c 43 6f 6e 66 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 lConfig,.new.RemoteFilesystem($i
42da0 6f 29 29 3b 0a 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 o));..if.(!$file->exists()).{.if
42dc0 20 28 24 6c 6f 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 .($localConfig.===.'composer.jso
42de0 6e 27 29 20 7b 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 n').{.$message.=.'Composer.could
42e00 20 6e 6f 74 20 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 .not.find.a.composer.json.file.i
42e20 6e 20 27 2e 67 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 n.'.getcwd();.}.else.{.$message.
42e40 3d 20 27 43 6f 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 =.'Composer.could.not.find.the.c
42e60 6f 6e 66 69 67 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 onfig.file:.'.$localConfig;.}.$i
42e80 6e 73 74 72 75 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 nstructions.=.'To.initialize.a.p
42ea0 72 6f 6a 65 63 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 roject,.please.create.a.composer
42ec0 2e 6a 73 6f 6e 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 .json.file.as.described.in.the.h
42ee0 74 74 70 3a 2f 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 ttp://getcomposer.org/."Getting.
42f00 53 74 61 72 74 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 Started".section';.throw.new.\In
42f20 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 67 65 2e validArgumentException($message.
42f40 50 48 50 5f 45 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 PHP_EOL.$instructions);.}..$file
42f60 2d 3e 76 61 6c 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 ->validateSchema(JsonFile::LAX_S
42f80 43 48 45 4d 41 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 CHEMA);.$localConfig.=.$file->re
42fa0 61 64 28 29 3b 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 ad();.}....$config.=.static::cre
42fc0 61 74 65 43 6f 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 ateConfig();.$config->merge($loc
42fe0 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 alConfig);..$vendorDir.=.$config
43000 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 3d 20 24 ->get('vendor-dir');.$binDir.=.$
43020 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 50 72 6f 63 65 config->get('bin-dir');....Proce
43040 73 73 45 78 65 63 75 74 6f 72 3a 3a 73 65 74 54 69 6d 65 6f 75 74 28 28 69 6e 74 29 20 24 63 6f ssExecutor::setTimeout((int).$co
43060 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 29 29 3b 0a 0a nfig->get('process-timeout'));..
43080 0a 20 24 72 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d ..$rm.=.$this->createRepositoryM
430a0 61 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 74 68 69 73 2d 3e anager($io,.$config);....$this->
430c0 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 addLocalRepository($rm,.$vendorD
430e0 69 72 29 3b 0a 0a 0a 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f ir);....$loader.=.new.Package\Lo
43100 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e ader\RootPackageLoader($rm,.$con
43120 66 69 67 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 fig);.$package.=.$loader->load($
43140 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 localConfig);....$dm.=.$this->cr
43160 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 0a 0a 20 24 69 6d eateDownloadManager($io);....$im
43180 20 3d 20 24 74 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 .=.$this->createInstallationMana
431a0 67 65 72 28 24 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 ger($config);....$composer.=.new
431c0 20 43 6f 6d 70 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 .Composer();.$composer->setConfi
431e0 67 28 24 63 6f 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 g($config);.$composer->setPackag
43200 65 28 24 70 61 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 e($package);.$composer->setRepos
43220 69 74 6f 72 79 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 itoryManager($rm);.$composer->se
43240 74 44 6f 77 6e 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 tDownloadManager($dm);.$composer
43260 2d 3e 73 65 74 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 ->setInstallationManager($im);..
43280 0a 20 24 74 68 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 ..$this->createDefaultInstallers
432a0 28 24 69 6d 2c 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 ($im,.$composer,.$io);....$this-
432c0 3e 70 75 72 67 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 >purgePackages($rm,.$im);....if.
432e0 28 69 73 73 65 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 (isset($composerFile)).{.$lockFi
43300 6c 65 20 3d 20 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 le.=."json".===.pathinfo($compos
43320 65 72 46 69 6c 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 erFile,.PATHINFO_EXTENSION).?.su
43340 62 73 74 72 28 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 bstr($composerFile,.0,.-4).'lock
43360 27 0a 3a 20 24 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 '.:.$composerFile...'.lock';.$lo
43380 63 6b 65 72 20 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 cker.=.new.Package\Locker(new.Js
433a0 6f 6e 46 69 6c 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 onFile($lockFile,.new.RemoteFile
433c0 73 79 73 74 65 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 system($io)),.$rm,.$im,.md5_file
433e0 28 24 63 6f 6d 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 ($composerFile));.$composer->set
43400 4c 6f 63 6b 65 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 Locker($locker);.}..return.$comp
43420 6f 73 65 72 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 oser;.}.......protected.function
43440 20 63 72 65 61 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 .createRepositoryManager(IOInter
43460 66 61 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 72 6d 20 face.$io,.Config.$config).{.$rm.
43480 3d 20 6e 65 77 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 =.new.RepositoryManager($io,.$co
434a0 6e 66 69 67 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 nfig);.$rm->setRepositoryClass('
434c0 63 6f 6d 70 6f 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 composer',.'Composer\Repository\
434e0 43 6f 6d 70 6f 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 ComposerRepository');.$rm->setRe
43500 70 6f 73 69 74 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 positoryClass('vcs',.'Composer\R
43520 65 70 6f 73 69 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 epository\VcsRepository');.$rm->
43540 73 65 74 52 65 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 setRepositoryClass('package',.'C
43560 6f 6d 70 6f 73 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 omposer\Repository\PackageReposi
43580 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 73 28 tory');.$rm->setRepositoryClass(
435a0 27 70 65 61 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 50 65 61 'pear',.'Composer\Repository\Pea
435c0 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 6f 72 rRepository');.$rm->setRepositor
435e0 79 43 6c 61 73 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 yClass('git',.'Composer\Reposito
43600 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
43620 73 69 74 6f 72 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 sitoryClass('svn',.'Composer\Rep
43640 6f 73 69 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 ository\VcsRepository');.$rm->se
43660 74 52 65 70 6f 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 tRepositoryClass('hg',.'Composer
43680 5c 52 65 70 6f 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 \Repository\VcsRepository');..re
436a0 74 75 72 6e 20 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 turn.$rm;.}......protected.funct
436c0 69 6f 6e 20 61 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 ion.addLocalRepository(Repositor
436e0 79 4d 61 6e 61 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 yManager.$rm,.$vendorDir).{.$rm-
43700 3e 73 65 74 4c 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 >setLocalRepository(new.Reposito
43720 72 79 5c 49 6e 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 ry\InstalledFilesystemRepository
43740 28 6e 65 77 20 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 (new.JsonFile($vendorDir.'/compo
43760 73 65 72 2f 69 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 ser/installed.json')));.$rm->set
43780 4c 6f 63 61 6c 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 LocalDevRepository(new.Repositor
437a0 79 5c 49 6e 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 y\InstalledFilesystemRepository(
437c0 6e 65 77 20 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 new.JsonFile($vendorDir.'/compos
437e0 65 72 2f 69 6e 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 er/installed_dev.json')));.}....
43800 0a 0a 70 75 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 ..public.function.createDownload
43820 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 64 6d 20 3d Manager(IOInterface.$io).{.$dm.=
43840 20 6e 65 77 20 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 28 .new.Downloader\DownloadManager(
43860 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 69 74 27 2c 20 6e 65 77 );.$dm->setDownloader('git',.new
43880 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b .Downloader\GitDownloader($io));
438a0 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e 65 77 20 44 .$dm->setDownloader('svn',.new.D
438c0 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 ownloader\SvnDownloader($io));.$
438e0 64 6d 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 dm->setDownloader('hg',.new.Down
43900 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e loader\HgDownloader($io));.$dm->
43920 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 44 6f 77 6e 6c 6f 61 setDownloader('zip',.new.Downloa
43940 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 der\ZipDownloader($io));.$dm->se
43960 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 tDownloader('tar',.new.Downloade
43980 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 r\TarDownloader($io));.$dm->setD
439a0 6f 77 6e 6c 6f 61 64 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 ownloader('phar',.new.Downloader
439c0 5c 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 \PharDownloader($io));.$dm->setD
439e0 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 65 72 ownloader('file',.new.Downloader
43a00 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 \FileDownloader($io));..return.$
43a20 64 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 63 72 dm;.}......protected.function.cr
43a40 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 eateInstallationManager(Config.$
43a60 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 config).{.return.new.Installer\I
43a80 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 nstallationManager($config->get(
43aa0 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 'vendor-dir'));.}.......protecte
43ac0 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 d.function.createDefaultInstalle
43ae0 72 73 28 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 rs(Installer\InstallationManager
43b00 20 24 69 6d 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 .$im,.Composer.$composer,.IOInte
43b20 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e rface.$io).{.$im->addInstaller(n
43b40 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 28 24 69 ew.Installer\LibraryInstaller($i
43b60 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e o,.$composer,.null));.$im->addIn
43b80 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 50 65 61 72 49 6e 73 74 61 6c staller(new.Installer\PearInstal
43ba0 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 70 65 61 72 2d 6c 69 62 72 61 72 ler($io,.$composer,.'pear-librar
43bc0 79 27 29 29 3b 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 y'));.$im->addInstaller(new.Inst
43be0 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 aller\InstallerInstaller($io,.$c
43c00 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 omposer));.$im->addInstaller(new
43c20 20 49 6e 73 74 61 6c 6c 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 28 .Installer\MetapackageInstaller(
43c40 24 69 6f 29 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 6f 6e $io));.}......protected.function
43c60 20 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 .purgePackages(Repository\Reposi
43c80 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 toryManager.$rm,.Installer\Insta
43ca0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 llationManager.$im).{.foreach.($
43cc0 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 rm->getLocalRepositories().as.$r
43ce0 65 70 6f 29 20 7b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 epo).{..foreach.($repo->getPacka
43d00 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 69 6d 2d 3e 69 ges().as.$package).{.if.(!$im->i
43d20 73 50 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 sPackageInstalled($repo,.$packag
43d40 65 29 29 20 7b 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 e)).{.$repo->removePackage($pack
43d60 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 age);.}.}.}.}........public.stat
43d80 69 63 20 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 ic.function.create(IOInterface.$
43da0 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d io,.$config.=.null).{.$factory.=
43dc0 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 6f 72 79 2d .new.static();..return.$factory-
43de0 3e 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d >createComposer($io,.$config);.}
43e00 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
43e20 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 mposer\Util;.....class.Filesyste
43e40 6d 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 44 69 72 65 63 74 m.{.public.function.removeDirect
43e60 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 ory($directory).{.if.(!is_dir($d
43e80 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 irectory)).{.return.true;.}..if.
43ea0 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 55 (defined('PHP_WINDOWS_VERSION_BU
43ec0 49 4c 44 27 29 29 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 64 69 72 20 2f ILD')).{.$cmd.=.sprintf('rmdir./
43ee0 53 20 2f 51 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 72 65 61 6c 70 61 74 S./Q.%s',.escapeshellarg(realpat
43f00 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6d 64 20 3d h($directory)));.}.else.{.$cmd.=
43f20 20 73 70 72 69 6e 74 66 28 27 72 6d 20 2d 72 66 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c .sprintf('rm.-rf.%s',.escapeshel
43f40 6c 61 72 67 28 24 64 69 72 65 63 74 6f 72 79 29 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 larg($directory));.}..$result.=.
43f60 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 2d 3e 65 78 65 63 75 74 65 28 24 63 6d $this->getProcess()->execute($cm
43f80 64 29 20 3d 3d 3d 20 30 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a d).===.0;....clearstatcache();..
43fa0 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 26 26 20 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 return.$result.&&.!is_dir($direc
43fc0 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 73 75 72 65 tory);.}..public.function.ensure
43fe0 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 DirectoryExists($directory).{.if
44000 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 69 66 20 28 66 69 6c .(!is_dir($directory)).{.if.(fil
44020 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 e_exists($directory)).{.throw.ne
44040 77 20 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 w.\RuntimeException(.$directory.
44060 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 74 6f 72 79 2e '.exists.and.is.not.a.directory.
44080 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 6d 6b 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 30 37 '.);.}.if.(!mkdir($directory,.07
440a0 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 77,.true)).{.throw.new.\RuntimeE
440c0 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 xception(.$directory.'.does.not.
440e0 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 74 65 64 2e 27 exist.and.could.not.be.created.'
44100 0a 29 3b 0a 7d 0a 7d 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 .);.}.}.}..........public.functi
44120 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 on.findShortestPath($from,.$to,.
44140 24 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 $directories.=.false).{.if.(!$th
44160 69 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 is->isAbsolutePath($from).||.!$t
44180 68 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 his->isAbsolutePath($to)).{.thro
441a0 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(
441c0 27 66 72 6f 6d 20 61 6e 64 20 74 6f 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 'from.and.to.must.be.absolute.pa
441e0 74 68 73 27 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 72 74 72 69 6d 28 ths');.}..$from.=.lcfirst(rtrim(
44200 73 74 72 74 72 28 24 66 72 6f 6d 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 3b 0a strtr($from,.'\\',.'/'),.'/'));.
44220 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 72 74 72 69 6d 28 73 74 72 74 72 28 24 74 6f 2c 20 27 $to.=.lcfirst(rtrim(strtr($to,.'
44240 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 63 74 6f 72 \\',.'/'),.'/'));..if.($director
44260 69 65 73 29 20 7b 0a 24 66 72 6f 6d 20 2e 3d 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 27 3b 0a 7d ies).{.$from..=.'/dummy_file';.}
44280 0a 0a 69 66 20 28 64 69 72 6e 61 6d 65 28 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 6e 61 6d 65 ..if.(dirname($from).===.dirname
442a0 28 24 74 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 74 ($to)).{.return.'./'.basename($t
442c0 6f 29 3b 0a 7d 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 o);.}..$commonPath.=.$to;.while.
442e0 28 73 74 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 21 3d 3d 20 (strpos($from,.$commonPath).!==.
44300 30 20 26 26 20 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 0.&&.'/'.!==.$commonPath.&&.!pre
44320 67 5f 6d 61 74 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 g_match('{^[a-z]:/?$}i',.$common
44340 50 61 74 68 29 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 Path).&&.'.'.!==.$commonPath).{.
44360 24 63 6f 6d 6d 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 $commonPath.=.strtr(dirname($com
44380 6d 6f 6e 50 61 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 monPath),.'\\',.'/');.}..if.(0.!
443a0 3d 3d 20 73 74 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 ==.strpos($from,.$commonPath).||
443c0 20 27 2f 27 20 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 .'/'.===.$commonPath.||.'.'.===.
443e0 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d 0a 0a 24 63 $commonPath).{.return.$to;.}..$c
44400 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 ommonPath.=.rtrim($commonPath,.'
44420 2f 27 29 20 2e 20 27 2f 27 3b 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 /')...'/';.$sourcePathDepth.=.su
44440 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 bstr_count(substr($from,.strlen(
44460 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 $commonPath)),.'/');.$commonPath
44480 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2e 2e 2f 27 2c 20 24 73 6f 75 72 63 65 Code.=.str_repeat('../',.$source
444a0 50 61 74 68 44 65 70 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 PathDepth);..return.($commonPath
444c0 43 6f 64 65 20 2e 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f Code...substr($to,.strlen($commo
444e0 6e 50 61 74 68 29 29 29 20 3f 3a 20 27 2e 2f 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 nPath))).?:.'./';.}..........pub
44500 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 74 68 43 6f 64 lic.function.findShortestPathCod
44520 65 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 6c e($from,.$to,.$directories.=.fal
44540 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 68 se).{.if.(!$this->isAbsolutePath
44560 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 74 ($from).||.!$this->isAbsolutePat
44580 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 75 h($to)).{.throw.new.\InvalidArgu
445a0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 66 72 6f 6d 20 61 6e 64 20 74 6f 20 6d 75 73 74 20 mentException('from.and.to.must.
445c0 62 65 20 61 62 73 6f 6c 75 74 65 20 70 61 74 68 73 27 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d 20 be.absolute.paths');.}..$from.=.
445e0 6c 63 66 69 72 73 74 28 73 74 72 74 72 28 24 66 72 6f 6d 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 lcfirst(strtr($from,.'\\',.'/'))
44600 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 73 74 72 74 72 28 24 74 6f 2c 20 27 5c 5c 27 2c ;.$to.=.lcfirst(strtr($to,.'\\',
44620 20 27 2f 27 29 29 3b 0a 0a 69 66 20 28 24 66 72 6f 6d 20 3d 3d 3d 20 24 74 6f 29 20 7b 0a 72 65 .'/'));..if.($from.===.$to).{.re
44640 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3f 20 27 5f 5f 44 49 52 5f 5f 27 20 3a 20 turn.$directories.?.'__DIR__'.:.
44660 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f '__FILE__';.}..$commonPath.=.$to
44680 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 ;.while.(strpos($from,.$commonPa
446a0 74 68 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 th).!==.0.&&.'/'.!==.$commonPath
446c0 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c .&&.!preg_match('{^[a-z]:/?$}i',
446e0 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e .$commonPath).&&.'.'.!==.$common
44700 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e Path).{.$commonPath.=.strtr(dirn
44720 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a ame($commonPath),.'\\',.'/');.}.
44740 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e .if.(0.!==.strpos($from,.$common
44760 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 Path).||.'/'.===.$commonPath.||.
44780 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 '.'.===.$commonPath).{.return.va
447a0 72 5f 65 78 70 6f 72 74 28 24 74 6f 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 r_export($to,.true);.}..$commonP
447c0 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 ath.=.rtrim($commonPath,.'/')...
447e0 27 2f 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 '/';.if.(strpos($to,.$from.'/').
44800 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 ===.0).{.return.'__DIR__...'.var
44820 5f 65 78 70 6f 72 74 28 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d _export(substr($to,.strlen($from
44840 29 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 )),.true);.}.$sourcePathDepth.=.
44860 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 substr_count(substr($from,.strle
44880 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f n($commonPath)),.'/').+.$directo
448a0 72 69 65 73 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 ries;.$commonPathCode.=.str_repe
448c0 61 74 28 27 64 69 72 6e 61 6d 65 28 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 at('dirname(',.$sourcePathDepth)
448e0 2e 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 .'__DIR__'.str_repeat(')',.$sour
44900 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 cePathDepth);.$relTarget.=.subst
44920 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 r($to,.strlen($commonPath));..re
44940 74 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 turn.$commonPathCode...(strlen($
44960 72 65 6c 54 61 72 67 65 74 29 20 3f 20 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f relTarget).?.'.'...var_export('/
44980 27 20 2e 20 24 72 65 6c 54 61 72 67 65 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a '...$relTarget,.true).:.'');.}..
449a0 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 62 73 6f 6c 75 74 65 ......public.function.isAbsolute
449c0 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 Path($path).{.return.substr($pat
449e0 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 h,.0,.1).===.'/'.||.substr($path
44a00 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ,.1,.1).===.':';.}..protected.fu
44a20 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 nction.getProcess().{.return.new
44a40 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .ProcessExecutor;.}.}.<?php.....
44a60 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 69 6c 3b 0a .......namespace.Composer\Util;.
44a80 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 50 .use.Symfony\Component\Process\P
44aa0 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f rocess;.....class.ProcessExecuto
44ac0 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 r.{.protected.static.$timeout.=.
44ae0 33 30 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 300;..protected.$captureOutput;.
44b00 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a protected.$errorOutput;.........
44b20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 ..public.function.execute($comma
44b40 6e 64 2c 20 26 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c nd,.&$output.=.null,.$cwd.=.null
44b60 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 3d 20 63 6f 75 6e 74 ).{.$this->captureOutput.=.count
44b80 28 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 29 20 3e 20 31 3b 0a 24 74 68 69 73 2d 3e 65 72 (func_get_args()).>.1;.$this->er
44ba0 72 6f 72 4f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 rorOutput.=.null;.$process.=.new
44bc0 20 50 72 6f 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 63 77 64 2c 20 6e 75 6c 6c 2c 20 6e .Process($command,.$cwd,.null,.n
44be0 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d 65 6f 75 74 28 29 29 3b 0a 0a 24 63 61 ull,.static::getTimeout());..$ca
44c00 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 20 3f 20 llback.=.is_callable($output).?.
44c20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 48 61 $output.:.array($this,.'outputHa
44c40 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b ndler');.$process->run($callback
44c60 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 26 26 20 );..if.($this->captureOutput.&&.
44c80 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 !is_callable($output)).{.$output
44ca0 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 .=.$process->getOutput();.}..$th
44cc0 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 is->errorOutput.=.$process->getE
44ce0 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e rrorOutput();..return.$process->
44d00 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f getExitCode();.}..public.functio
44d20 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 n.splitLines($output).{.return.(
44d40 28 73 74 72 69 6e 67 29 20 24 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 20 3f 20 61 72 72 61 79 (string).$output.===.'').?.array
44d60 28 29 20 3a 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 2c 20 24 6f 75 74 70 ().:.preg_split('{\r?\n}',.$outp
44d80 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 20 67 65 74 ut);.}.......public.function.get
44da0 45 72 72 6f 72 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 65 72 ErrorOutput().{.return.$this->er
44dc0 72 6f 72 4f 75 74 70 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 75 rorOutput;.}..public.function.ou
44de0 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 0a 7b 0a 69 66 tputHandler($type,.$buffer).{.if
44e00 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 7b 0a 72 65 74 75 72 6e .($this->captureOutput).{.return
44e20 3b 0a 7d 0a 0a 65 63 68 6f 20 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 ;.}..echo.$buffer;.}..public.sta
44e40 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 tic.function.getTimeout().{.retu
44e60 72 6e 20 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 rn.static::$timeout;.}..public.s
44e80 74 61 74 69 63 20 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 tatic.function.setTimeout($timeo
44ea0 75 74 29 0a 7b 0a 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 ut).{.static::$timeout.=.$timeou
44ec0 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 70 61 63 t;.}.}.<?php............namespac
44ee0 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 5c 43 e.Composer\Util;..use.Composer\C
44f00 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 49 6e 74 65 72 omposer;.use.Composer\IO\IOInter
44f20 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 5c 54 72 face;.use.Composer\Downloader\Tr
44f40 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d 6f ansportException;.....class.Remo
44f60 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 teFilesystem.{.private.$io;.priv
44f80 61 74 65 20 24 66 69 72 73 74 43 61 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 4d 61 ate.$firstCall;.private.$bytesMa
44fa0 78 3b 0a 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 x;.private.$originUrl;.private.$
44fc0 66 69 6c 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 fileUrl;.private.$fileName;.priv
44fe0 61 74 65 20 24 72 65 73 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b 0a ate.$result;.private.$progress;.
45000 70 72 69 76 61 74 65 20 24 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 private.$lastProgress;.......pub
45020 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
45040 66 61 63 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 0a face.$io).{.$this->io.=.$io;.}..
45060 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 63 6f 70 79 28 24 ..........public.function.copy($
45080 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 originUrl,.$fileUrl,.$fileName,.
450a0 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 28 24 $progress.=.true).{.$this->get($
450c0 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 originUrl,.$fileUrl,.$fileName,.
450e0 24 70 72 6f 67 72 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c $progress);..return.$this->resul
45100 74 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 20 67 t;.}...........public.function.g
45120 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c etContents($originUrl,.$fileUrl,
45140 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 28 .$progress.=.true).{.$this->get(
45160 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f $originUrl,.$fileUrl,.null,.$pro
45180 67 72 65 73 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 75 6c 74 3b 0a 7d gress);..return.$this->result;.}
451a0 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 67 ............protected.function.g
451c0 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 66 69 6c 65 4e 61 et($originUrl,.$fileUrl,.$fileNa
451e0 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 me.=.null,.$progress.=.true).{.$
45200 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 72 65 73 75 6c this->bytesMax.=.0;.$this->resul
45220 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 6f 72 t.=.null;.$this->originUrl.=.$or
45240 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 3d 20 24 66 69 6c 65 55 iginUrl;.$this->fileUrl.=.$fileU
45260 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 20 3d 20 24 66 69 6c 65 4e 61 6d 65 3b rl;.$this->fileName.=.$fileName;
45280 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 3b 0a 24 74 .$this->progress.=.$progress;.$t
452a0 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6f 70 74 69 his->lastProgress.=.null;..$opti
452c0 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f ons.=.$this->getOptionsForUrl($o
452e0 72 69 67 69 6e 55 72 6c 29 3b 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 riginUrl);.$ctx.=.StreamContextF
45300 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 73 2c 20 61 72 72 actory::getContext($options,.arr
45320 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 28 24 74 68 69 73 ay('notification'.=>.array($this
45340 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 74 68 69 73 2d 3e ,.'callbackGet')));..if.($this->
45360 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 74 65 28 22 20 20 progress).{.$this->io->write("..
45380 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 6e 6e 65 63 74 69 ..Downloading:.<comment>connecti
453a0 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 7d 0a 0a 24 72 65 on...</comment>",.false);.}..$re
453c0 73 75 6c 74 20 3d 20 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 55 sult.=.@file_get_contents($fileU
453e0 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 rl,.false,.$ctx);....if.(!empty(
45400 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 20 26 26 20 70 72 65 $http_response_header[0]).&&.pre
45420 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 34 30 34 7d 69 27 2c 20 24 68 74 74 g_match('{^HTTP/\S+.404}i',.$htt
45440 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 72 65 73 75 6c 74 p_response_header[0])).{.$result
45460 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 65 .=.false;.}....if.(false.!==.$re
45480 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 29 sult.&&.extension_loaded('zlib')
454a0 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 27 .&&.substr($fileUrl,.0,.4).===.'
454c0 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 63 http').{.$decode.=.false;.foreac
454e0 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 61 h.($http_response_header.as.$hea
45500 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 74 der).{.if.(preg_match('{^content
45520 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 29 -encoding:.*gzip.*$}i',.$header)
45540 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 20 ).{.$decode.=.true;.continue;.}.
45560 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 20 elseif.(preg_match('{^HTTP/}i',.
45580 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 7d $header)).{.$decode.=.false;.}.}
455a0 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 6d ..if.($decode).{.if.(version_com
455c0 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 29 pare(PHP_VERSION,.'5.4.0',.'>=')
455e0 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 6c ).{.$result.=.zlib_decode($resul
45600 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 65 t);.}.else.{...$result.=.file_ge
45620 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 61 t_contents('compress.zlib://data
45640 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 34 :application/octet-stream;base64
45660 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 0a ,'.base64_encode($result));.}.}.
45680 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 2d }..if.($this->progress).{.$this-
456a0 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 3a >io->overwrite("....Downloading:
456c0 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 0a .<comment>100%</comment>");.}...
456e0 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 21 .if.(false.!==.$result.&&.null.!
45700 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 ==.$fileName).{.$result.=.(bool)
45720 20 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 .@file_put_contents($fileName,.$
45740 72 65 73 75 6c 74 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 result);.if.(false.===.$result).
45760 7b 0a 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 27 {.throw.new.TransportException('
45780 54 68 65 20 22 27 2e 24 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f The."'.$fileUrl.'".file.could.no
457a0 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 0a t.be.written.to.'.$fileName);.}.
457c0 7d 0a 0a 0a 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 }....if.(null.===.$this->result)
457e0 20 7b 0a 24 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 .{.$this->result.=.$result;.}..i
45800 66 20 28 66 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 74 68 f.(false.===.$this->result).{.th
45820 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 20 row.new.TransportException('The.
45840 22 27 2e 24 66 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 "'.$fileUrl.'".file.could.not.be
45860 20 64 6f 77 6e 6c 6f 61 64 65 64 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 .downloaded');.}.}............pr
45880 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 62 61 63 6b 47 65 74 28 24 6e 6f otected.function.callbackGet($no
458a0 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 2c 20 24 73 65 76 65 72 69 74 79 2c 20 24 6d 65 73 73 tificationCode,.$severity,.$mess
458c0 61 67 65 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 65 2c 20 24 62 79 74 65 73 54 72 61 6e 73 66 65 age,.$messageCode,.$bytesTransfe
458e0 72 72 65 64 2c 20 24 62 79 74 65 73 4d 61 78 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6e 6f 74 69 rred,.$bytesMax).{.switch.($noti
45900 66 69 63 61 74 69 6f 6e 43 6f 64 65 29 20 7b 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 ficationCode).{.case.STREAM_NOTI
45920 46 59 5f 46 41 49 4c 55 52 45 3a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 FY_FAILURE:.throw.new.TransportE
45940 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e xception('The."'.$this->fileUrl.
45960 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 6c 6f 61 64 65 64 20 '".file.could.not.be.downloaded.
45980 28 27 2e 74 72 69 6d 28 24 6d 65 73 73 61 67 65 29 2e 27 29 27 2c 20 24 6d 65 73 73 61 67 65 43 ('.trim($message).')',.$messageC
459a0 6f 64 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 ode);.break;..case.STREAM_NOTIFY
459c0 5f 41 55 54 48 5f 52 45 51 55 49 52 45 44 3a 0a 69 66 20 28 34 30 31 20 3d 3d 3d 20 24 6d 65 73 _AUTH_REQUIRED:.if.(401.===.$mes
459e0 73 61 67 65 43 6f 64 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e sageCode).{.if.(!$this->io->isIn
45a00 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 teractive()).{.$message.=."The.'
45a20 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 72 65 71 75 "...$this->fileUrl..."'.URL.requ
45a40 69 72 65 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 5c 6e 59 6f 75 20 6d 75 73 74 20 62 ired.authentication.\nYou.must.b
45a60 65 20 75 73 69 6e 67 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6e 73 6f 6c 65 22 e.using.the.interactive.console"
45a80 3b 0a 0a 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 ;..throw.new.TransportException(
45aa0 24 6d 65 73 73 61 67 65 2c 20 34 30 31 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 $message,.401);.}..$this->io->ov
45ac0 65 72 77 72 69 74 65 28 27 20 20 20 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 erwrite('....Authentication.requ
45ae0 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 66 ired.(<info>'.parse_url($this->f
45b00 69 6c 65 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a ileUrl,.PHP_URL_HOST).'</info>):
45b20 27 29 3b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 ');.$username.=.$this->io->ask('
45b40 20 20 20 20 20 20 55 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 ......Username:.');.$password.=.
45b60 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 20 20 20 $this->io->askAndHideAnswer('...
45b80 20 20 20 50 61 73 73 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 ...Password:.');.$this->io->setA
45ba0 75 74 68 6f 72 69 7a 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 uthorization($this->originUrl,.$
45bc0 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 username,.$password);..$this->ge
45be0 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 t($this->originUrl,.$this->fileU
45c00 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 70 72 6f 67 rl,.$this->fileName,.$this->prog
45c20 72 65 73 73 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 ress);.}.break;..case.STREAM_NOT
45c40 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 73 2d 3e 62 79 74 IFY_FILE_SIZE_IS:.if.($this->byt
45c60 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 2d 3e 62 79 74 65 esMax.<.$bytesMax).{.$this->byte
45c80 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 0a 0a 63 61 73 65 sMax.=.$bytesMax;.}.break;..case
45ca0 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 66 20 28 24 74 68 .STREAM_NOTIFY_PROGRESS:.if.($th
45cc0 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 3e 70 72 6f 67 72 is->bytesMax.>.0.&&.$this->progr
45ce0 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 69 66 20 28 24 74 ess).{.$progression.=.0;..if.($t
45d00 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 72 65 73 73 69 6f his->bytesMax.>.0).{.$progressio
45d20 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 64 20 2f 20 24 74 n.=.round($bytesTransferred./.$t
45d40 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 66 20 28 28 30 20 his->bytesMax.*.100);.}..if.((0.
45d60 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 70 72 6f 67 72 65 ===.$progression.%.5).&&.$progre
45d80 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 65 73 73 29 20 7b ssion.!==.$this->lastProgress).{
45da0 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 6f 67 72 65 73 73 .$this->lastProgress.=.$progress
45dc0 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 22 20 20 20 20 44 ion;.$this->io->overwrite("....D
45de0 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 72 65 73 73 69 6f ownloading:.<comment>$progressio
45e00 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 0a 62 72 65 61 6b n%</comment>",.false);.}.}.break
45e20 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 6f 74 65 63 74 65 ;..default:.break;.}.}..protecte
45e40 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 6c 28 24 6f 72 69 d.function.getOptionsForUrl($ori
45e60 67 69 6e 55 72 6c 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 ginUrl).{.$options['http']['head
45e80 65 72 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 22 55 73 65 72 2d 41 67 65 6e 74 3a 20 43 6f 6d er'].=.sprintf(."User-Agent:.Com
45ea0 70 6f 73 65 72 2f 25 73 20 28 25 73 3b 20 25 73 3b 20 50 48 50 20 25 73 2e 25 73 2e 25 73 29 5c poser/%s.(%s;.%s;.PHP.%s.%s.%s)\
45ec0 72 5c 6e 22 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 r\n",.Composer::VERSION,.php_una
45ee0 6d 65 28 27 73 27 29 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 72 27 29 2c 0a 50 48 50 5f 4d 41 4a me('s'),.php_uname('r'),.PHP_MAJ
45f00 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 OR_VERSION,.PHP_MINOR_VERSION,.P
45f20 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 4f 4e 0a 29 3b 0a 69 66 20 28 65 78 74 65 6e 73 HP_RELEASE_VERSION.);.if.(extens
45f40 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 ion_loaded('zlib')).{.$options['
45f60 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 2e 3d 20 27 41 63 63 65 70 74 2d 45 6e 63 6f http']['header']..=.'Accept-Enco
45f80 64 69 6e 67 3a 20 67 7a 69 70 27 2e 22 5c 72 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 ding:.gzip'."\r\n";.}..if.($this
45fa0 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 6e 55 72 ->io->hasAuthorization($originUr
45fc0 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 75 74 68 l)).{.$auth.=.$this->io->getAuth
45fe0 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 74 72 20 orization($originUrl);.$authStr.
46000 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 6d 65 27 =.base64_encode($auth['username'
46020 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 0a 24 6f ]...':'...$auth['password']);.$o
46040 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 2e 3d 20 22 41 75 74 ptions['http']['header']..=."Aut
46060 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 24 61 75 74 68 53 74 72 5c 72 5c 6e 22 3b horization:.Basic.$authStr\r\n";
46080 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .}..return.$options;.}.}.<?php..
460a0 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 69 ..........namespace.Composer\Uti
460c0 6c 3b 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c 61 73 73 20 53 74 72 65 61 6d 43 6f 6e 74 65 l;.......final.class.StreamConte
460e0 78 74 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 xtFactory.{.........public.stati
46100 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 78 74 28 61 72 72 61 79 20 24 64 65 66 c.function.getContext(array.$def
46120 61 75 6c 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 64 65 aultOptions.=.array(),.array.$de
46140 66 61 75 6c 74 50 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6f 70 74 69 6f 6e faultParams.=.array()).{.$option
46160 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a s.=.array('http'.=>.array());...
46180 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 .if.(!empty($_SERVER['HTTP_PROXY
461a0 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f ']).||.!empty($_SERVER['http_pro
461c0 78 79 27 5d 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 xy'])).{...$proxy.=.parse_url(!e
461e0 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 mpty($_SERVER['http_proxy']).?.$
46200 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 _SERVER['http_proxy'].:.$_SERVER
46220 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 ['HTTP_PROXY']);.}..if.(!empty($
46240 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 3d 20 28 69 73 73 65 74 28 24 70 72 proxy)).{.$proxyURL.=.(isset($pr
46260 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 oxy['scheme']).?.$proxy['scheme'
46280 5d 20 3a 20 27 27 29 20 2e 20 27 3a 2f 2f 27 3b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 69 73 ].:.'')...'://';.$proxyURL..=.is
462a0 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 68 6f set($proxy['host']).?.$proxy['ho
462c0 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 6f st'].:.'';..if.(isset($proxy['po
462e0 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 22 20 2e 20 24 70 72 6f rt'])).{.$proxyURL..=.":"...$pro
46300 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 3a 2f 2f 27 20 xy['port'];.}.elseif.('http://'.
46320 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 37 29 29 20 7b 0a 24 70 ==.substr($proxyURL,.0,.7)).{.$p
46340 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 30 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 roxyURL..=.":80";.}.elseif.('htt
46360 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 38 ps://'.==.substr($proxyURL,.0,.8
46380 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 34 34 33 22 3b 0a 7d 0a 0a 0a 20 24 )).{.$proxyURL..=.":443";.}....$
463a0 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 68 74 proxyURL.=.str_replace(array('ht
463c0 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 3a 2f 2f 27 29 2c 20 61 72 72 61 79 28 27 74 63 70 3a tp://',.'https://'),.array('tcp:
463e0 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 2c 20 24 70 72 6f 78 79 55 52 4c 29 3b 0a 0a 69 66 20 //',.'ssl://'),.$proxyURL);..if.
46400 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 72 6f 78 79 55 52 4c 2c 20 27 73 73 6c 3a 27 29 (0.===.strpos($proxyURL,.'ssl:')
46420 20 26 26 20 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 .&&.!extension_loaded('openssl')
46440 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(
46460 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 65 78 74 'You.must.enable.the.openssl.ext
46480 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 61 20 70 72 6f 78 79 20 6f 76 65 72 20 68 74 74 70 73 ension.to.use.a.proxy.over.https
464a0 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 20 3d 20 61 72 72 61 79 28 ');.}..$options['http'].=.array(
464c0 0a 27 70 72 6f 78 79 27 20 3d 3e 20 24 70 72 6f 78 79 55 52 4c 2c 0a 27 72 65 71 75 65 73 74 5f .'proxy'.=>.$proxyURL,.'request_
464e0 66 75 6c 6c 75 72 69 27 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 fulluri'.=>.true,.);..if.(isset(
46500 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 70 72 6f 78 $proxy['user'])).{.$auth.=.$prox
46520 79 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 61 73 y['user'];.if.(isset($proxy['pas
46540 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d 20 27 3a 27 20 2e 20 24 70 72 6f 78 79 5b 27 70 s'])).{.$auth..=.':'...$proxy['p
46560 61 73 73 27 5d 3b 0a 7d 0a 24 61 75 74 68 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 ass'];.}.$auth.=.base64_encode($
46580 61 75 74 68 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 auth);....if.(isset($defaultOpti
465a0 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 ons['http']['header'])).{.$defau
465c0 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 27 5d 20 2e 3d 20 22 ltOptions['http']['header']..=."
465e0 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
46600 68 7d 5c 72 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 h}\r\n";.}.else.{.$options['http
46620 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 ']['header'].=."Proxy-Authorizat
46640 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 0a ion:.Basic.{$auth}\r\n";.}.}.}..
46660 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 $options.=.array_replace_recursi
46680 76 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a ve($options,.$defaultOptions);..
466a0 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 return.stream_context_create($op
466c0 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 tions,.$defaultParams);.}.}.<?ph
466e0 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\
46700 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b Util;.......class.ErrorHandler.{
46720 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 20 66 75 6e 63 74 69 ............public.static.functi
46740 6f 6e 20 68 61 6e 64 6c 65 28 24 6c 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 66 69 6c on.handle($level,.$message,.$fil
46760 65 2c 20 24 6c 69 6e 65 29 0a 7b 0a 0a 20 69 66 20 28 21 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 e,.$line).{...if.(!error_reporti
46780 6e 67 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 ng()).{.return;.}..if.(ini_get('
467a0 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 xdebug.scream')).{.$message..=."
467c0 5c 6e 5c 6e 57 61 72 6e 69 6e 67 3a 20 59 6f 75 20 68 61 76 65 20 78 64 65 62 75 67 2e 73 63 72 \n\nWarning:.You.have.xdebug.scr
467e0 65 61 6d 20 65 6e 61 62 6c 65 64 2c 20 74 68 65 20 77 61 72 6e 69 6e 67 20 61 62 6f 76 65 20 6d eam.enabled,.the.warning.above.m
46800 61 79 20 62 65 22 2e 0a 22 5c 6e 61 20 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 75 70 70 72 65 ay.be".."\na.legitimately.suppre
46820 73 73 65 64 20 65 72 72 6f 72 20 74 68 61 74 20 79 6f 75 20 77 65 72 65 20 6e 6f 74 20 73 75 70 ssed.error.that.you.were.not.sup
46840 70 6f 73 65 64 20 74 6f 20 73 65 65 2e 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 posed.to.see.";.}..throw.new.\Er
46860 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 6c 65 76 65 6c rorException($message,.0,.$level
46880 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ,.$file,.$line);.}.......public.
468a0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 65 74 static.function.register().{.set
468c0 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 61 72 72 61 79 28 5f 5f 43 4c 41 53 53 5f 5f 2c 20 _error_handler(array(__CLASS__,.
468e0 27 68 61 6e 64 6c 65 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 'handle'));.}.}.<?php...........
46900 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 75 73 65 20 43 .namespace.Composer\Util;..use.C
46920 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 0a 0a 63 6c omposer\Json\JsonFile;........cl
46940 61 73 73 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 0a 7b 0a 0a 0a 0a 70 ass.SpdxLicenseIdentifier.{....p
46960 72 69 76 61 74 65 20 24 69 64 65 6e 74 69 66 69 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e rivate.$identifiers;..public.fun
46980 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 2d 3e 69 6e 69 ction.__construct().{.$this->ini
469a0 74 49 64 65 6e 74 69 66 69 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tIdentifiers();.}........public.
469c0 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 function.validate($license).{.if
469e0 20 28 69 73 5f 61 72 72 61 79 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d .(is_array($license)).{.$count.=
46a00 20 63 6f 75 6e 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d .count($license);.if.($count.!==
46a20 20 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 .count(array_filter($license,.'i
46a40 73 5f 73 74 72 69 6e 67 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 s_string'))).{.throw.new.\Invali
46a60 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 dArgumentException('Array.of.str
46a80 69 6e 67 73 20 65 78 70 65 63 74 65 64 2e 27 29 3b 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 ings.expected.');.}.$license.=.$
46aa0 63 6f 75 6e 74 20 3e 20 31 20 3f 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 20 6f 72 20 27 2c 20 count.>.1.?.'('.implode('.or.',.
46ac0 24 6c 69 63 65 6e 73 65 29 2e 27 29 27 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 $license).')'.:.(string).reset($
46ae0 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 license);.}.if.(!is_string($lice
46b00 6e 73 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 nse)).{.throw.new.\InvalidArgume
46b20 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 ntException(sprintf(.'Array.or.S
46b40 74 72 69 6e 67 20 65 78 70 65 63 74 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 20 67 65 74 74 tring.expected,.%s.given.',.gett
46b60 79 70 65 28 24 6c 69 63 65 6e 73 65 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ype($license).));.}..return.$thi
46b80 73 2d 3e 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 s->isValidLicenseString($license
46ba0 29 3b 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 49 64 );.}.....private.function.initId
46bc0 65 6e 74 69 66 69 65 72 73 28 29 0a 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 entifiers().{.$jsonFile.=.new.Js
46be0 6f 6e 46 69 6c 65 28 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 onFile(__DIR__...'/../../../res/
46c00 73 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 spdx-identifier.json');.$this->i
46c20 64 65 6e 74 69 66 69 65 72 73 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a dentifiers.=.$jsonFile->read();.
46c40 7d 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 56 61 6c 69 64 }.......private.function.isValid
46c60 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b LicenseIdentifier($identifier).{
46c80 0a 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 .return.in_array($identifier,.$t
46ca0 68 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 his->identifiers);.}........priv
46cc0 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 53 74 72 69 6e ate.function.isValidLicenseStrin
46ce0 67 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 g($license).{.$tokens.=.array(.'
46d00 70 6f 27 20 3d 3e 20 27 5c 28 27 2c 0a 27 70 63 27 20 3d 3e 20 27 5c 29 27 2c 0a 27 6f 70 27 20 po'.=>.'\(',.'pc'.=>.'\)',.'op'.
46d20 3d 3e 20 27 28 3f 3a 6f 72 7c 61 6e 64 29 27 2c 0a 27 6c 69 78 27 20 3d 3e 20 27 28 3f 3a 4e 4f =>.'(?:or|and)',.'lix'.=>.'(?:NO
46d40 4e 45 7c 4e 4f 41 53 53 45 52 54 49 4f 4e 29 27 2c 0a 27 6c 69 72 27 20 3d 3e 20 27 4c 69 63 65 NE|NOASSERTION)',.'lir'.=>.'Lice
46d60 6e 73 65 52 65 66 2d 5c 64 2b 27 2c 0a 27 6c 69 63 27 20 3d 3e 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 nseRef-\d+',.'lic'.=>.'[-+_.a-zA
46d80 2d 5a 30 2d 39 5d 7b 33 2c 7d 27 2c 0a 27 77 73 27 20 3d 3e 20 27 5c 73 2b 27 2c 0a 27 5f 27 20 -Z0-9]{3,}',.'ws'.=>.'\s+',.'_'.
46da0 3d 3e 20 27 2e 27 2c 0a 29 3b 0a 0a 24 6e 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 =>.'.',.);..$next.=.function.().
46dc0 75 73 65 20 28 24 6c 69 63 65 6e 73 65 2c 20 24 74 6f 6b 65 6e 73 29 20 7b 0a 73 74 61 74 69 63 use.($license,.$tokens).{.static
46de0 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6f 66 66 73 65 74 20 3e 3d 20 73 74 .$offset.=.0;..if.($offset.>=.st
46e00 72 6c 65 6e 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d rlen($license)).{.return.null;.}
46e20 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 ..foreach.($tokens.as.$name.=>.$
46e40 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 20 3d 20 70 72 65 67 token).{.if.(false.===.$r.=.preg
46e60 5f 6d 61 74 63 68 28 27 7b 27 20 2e 20 24 74 6f 6b 65 6e 20 2e 20 27 7d 27 2c 20 24 6c 69 63 65 _match('{'...$token...'}',.$lice
46e80 6e 73 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 nse,.$matches,.PREG_OFFSET_CAPTU
46ea0 52 45 2c 20 24 6f 66 66 73 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 RE,.$offset)).{.throw.new.\Runti
46ec0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 74 74 65 72 6e 20 66 6f 72 20 74 6f 6b 65 6e 20 25 meException('Pattern.for.token.%
46ee0 73 20 66 61 69 6c 65 64 20 28 72 65 67 65 78 20 65 72 72 6f 72 29 2e 27 2c 20 24 6e 61 6d 65 29 s.failed.(regex.error).',.$name)
46f00 3b 0a 7d 0a 69 66 20 28 24 72 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a ;.}.if.($r.===.0).{.continue;.}.
46f20 69 66 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 5b 31 5d 20 21 3d 3d 20 24 6f 66 66 73 65 74 29 20 if.($matches[0][1].!==.$offset).
46f40 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 6f 66 66 73 65 74 20 2b 3d 20 73 74 72 6c 65 6e 28 {.continue;.}.$offset.+=.strlen(
46f60 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 $matches[0][0]);..return.array($
46f80 6e 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 name,.$matches[0][0]);.}..throw.
46fa0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 74 20 6c 65 61 73 74 20 new.\RuntimeException('At.least.
46fc0 74 68 65 20 6c 61 73 74 20 70 61 74 74 65 72 6e 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 2c the.last.pattern.needs.to.match,
46fe0 20 62 75 74 20 69 74 20 64 69 64 20 6e 6f 74 20 28 64 6f 74 2d 6d 61 74 63 68 2d 61 6c 6c 20 69 .but.it.did.not.(dot-match-all.i
47000 73 20 6d 69 73 73 69 6e 67 3f 29 2e 27 29 3b 0a 7d 3b 0a 0a 24 6f 70 65 6e 20 3d 20 30 3b 0a 24 s.missing?).');.};..$open.=.0;.$
47020 72 65 71 75 69 72 65 20 3d 20 31 3b 0a 24 6c 61 73 74 6f 70 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 require.=.1;.$lastop.=.null;..wh
47040 69 6c 65 20 28 6c 69 73 74 28 24 74 6f 6b 65 6e 2c 20 24 73 74 72 69 6e 67 29 20 3d 20 24 6e 65 ile.(list($token,.$string).=.$ne
47060 78 74 28 29 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 63 61 73 65 20 27 xt()).{.switch.($token).{.case.'
47080 70 6f 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 7c 7c 20 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 po':.if.($open.||.!$require).{.r
470a0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 31 3b 0a 62 72 65 61 6b 3b eturn.false;.}.$open.=.1;.break;
470c0 0a 63 61 73 65 20 27 70 63 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 21 3d 3d 20 31 20 7c 7c 20 24 .case.'pc':.if.($open.!==.1.||.$
470e0 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6c 61 73 74 6f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 require.||.!$lastop).{.return.fa
47100 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 32 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f lse;.}.$open.=.2;.break;.case.'o
47120 70 27 3a 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6f 70 65 6e 29 20 7b 0a 72 65 p':.if.($require.||.!$open).{.re
47140 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6c 61 73 74 6f 70 20 7c 7c 20 24 6c 61 73 74 6f 70 turn.false;.}.$lastop.||.$lastop
47160 20 3d 20 24 73 74 72 69 6e 67 3b 0a 69 66 20 28 24 6c 61 73 74 6f 70 20 21 3d 3d 20 24 73 74 72 .=.$string;.if.($lastop.!==.$str
47180 69 6e 67 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 ing).{.return.false;.}.$require.
471a0 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6c 69 78 27 3a 0a 69 66 20 28 24 6f 70 65 =.1;.break;.case.'lix':.if.($ope
471c0 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 67 6f 74 6f 20 6c 69 72 3b 0a 63 n).{.return.false;.}.goto.lir;.c
471e0 61 73 65 20 27 6c 69 63 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 ase.'lic':.if.(!$this->isValidLi
47200 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 censeIdentifier($string)).{.retu
47220 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 20 63 61 73 65 20 27 6c 69 72 27 3a 0a 6c 69 72 3a 0a 69 rn.false;.}...case.'lir':.lir:.i
47240 66 20 28 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 3b 0a 7d 0a f.(!$require).{.return.false;.}.
47260 24 72 65 71 75 69 72 65 20 3d 20 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 77 73 27 3a 0a $require.=.0;.break;.case.'ws':.
47280 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 5f 27 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 64 break;.case.'_':.return.false;.d
472a0 65 66 61 75 6c 74 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 efault:.throw.new.\RuntimeExcept
472c0 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 70 61 72 73 65 64 20 74 6f 6b 65 6e 3a 20 25 73 2e ion(sprintf('Unparsed.token:.%s.
472e0 27 2c 20 70 72 69 6e 74 5f 72 28 24 74 6f 6b 65 6e 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 7d 0a ',.print_r($token,.true)));.}.}.
47300 0a 72 65 74 75 72 6e 20 21 28 24 6f 70 65 6e 20 25 20 32 20 7c 7c 20 24 72 65 71 75 69 72 65 29 .return.!($open.%.2.||.$require)
47320 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
47340 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 5c 49 4f .Composer\Util;..use.Composer\IO
47360 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 0a \IOInterface;......class.Svn.{..
47380 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 72 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 ..protected.$credentials;.....pr
473a0 6f 74 65 63 74 65 64 20 24 68 61 73 41 75 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 otected.$hasAuth;.....protected.
473c0 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f $io;.....protected.$url;.....pro
473e0 74 65 63 74 65 64 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b tected.$cacheCredentials.=.true;
47400 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 70 .....protected.$process;.......p
47420 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 75 72 6c 2c ublic.function.__construct($url,
47440 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 74 6f .IOInterface.$io,.ProcessExecuto
47460 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 75 72 6c 20 r.$process.=.null).{.$this->url.
47480 3d 20 24 75 72 6c 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 =.$url;.$this->io.=.$io;.$this->
474a0 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 63 65 73 process.=.$process.?:.new.Proces
474c0 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c sExecutor;.}................publ
474e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 ic.function.execute($command,.$u
47500 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 rl,.$cwd.=.null,.$path.=.null,.$
47520 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 3d verbose.=.false).{.$svnCommand.=
47540 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 .$this->getCommand($command,.$ur
47560 6c 2c 20 24 70 61 74 68 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 3d l,.$path);.$output.=.null;.$io.=
47580 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 .$this->io;.$handler.=.function.
475a0 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c 20 ($type,.$buffer).use.(&$output,.
475c0 24 69 6f 2c 20 24 76 65 72 62 6f 73 65 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 $io,.$verbose).{.if.($type.!==.'
475e0 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 62 75 out').{.return;.}.$output..=.$bu
47600 66 66 65 72 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 ffer;.if.($verbose).{.$io->write
47620 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 3b 0a 24 73 74 61 74 75 73 20 3d ($buffer,.false);.}.};.$status.=
47640 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 73 76 6e 43 6f 6d .$this->process->execute($svnCom
47660 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 2c 20 24 63 77 64 29 3b 0a 69 66 20 28 30 20 3d 3d 3d mand,.$handler,.$cwd);.if.(0.===
47680 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 .$status).{.return.$output;.}..i
476a0 66 20 28 65 6d 70 74 79 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 f.(empty($output)).{.$output.=.$
476c0 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 28 29 3b this->process->getErrorOutput();
476e0 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 .}....if.(false.===.stripos($out
47700 70 75 74 2c 20 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 74 6f 20 put,.'Could.not.authenticate.to.
47720 73 65 72 76 65 72 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 server:')).{.throw.new.\RuntimeE
47740 78 63 65 70 74 69 6f 6e 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 xception($output);.}....if.(!$th
47760 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 74 68 72 6f 77 is->io->isInteractive()).{.throw
47780 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 .new.\RuntimeException(.'can.not
477a0 20 61 73 6b 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 .ask.for.authentication.in.non.i
477c0 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 nteractive.mode.('.$output.')'.)
477e0 3b 0a 7d 0a 0a 0a 20 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 ;.}........if.(!$this->hasAuth()
47800 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 41 75 74 68 44 61 6e 63 65 28 29 3b 0a 0a 0a 20 72 65 74 ).{.$this->doAuthDance();....ret
47820 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 urn.$this->execute($command,.$ur
47840 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 76 65 72 62 6f 73 65 29 3b 0a 7d 0a 0a 74 68 l,.$cwd,.$path,.$verbose);.}..th
47860 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 27 77 72 6f 6e row.new.\RuntimeException(.'wron
47880 67 20 63 72 65 64 65 6e 74 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 6f 75 74 70 75 g.credentials.provided.('.$outpu
478a0 74 2e 27 29 27 0a 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 t.')'.);.}.......protected.funct
478c0 69 6f 6e 20 64 6f 41 75 74 68 44 61 6e 63 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 ion.doAuthDance().{.$this->io->w
478e0 72 69 74 65 28 22 54 68 65 20 53 75 62 76 65 72 73 69 6f 6e 20 73 65 72 76 65 72 20 28 7b 24 74 rite("The.Subversion.server.({$t
47900 68 69 73 2d 3e 75 72 6c 7d 29 20 72 65 71 75 65 73 74 65 64 20 63 72 65 64 65 6e 74 69 61 6c 73 his->url}).requested.credentials
47920 3a 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 24 74 68 :");..$this->hasAuth.=.true;.$th
47940 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 74 is->credentials['username'].=.$t
47960 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 29 3b 0a 24 74 68 69 his->io->ask("Username:.");.$thi
47980 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 20 3d 20 24 74 68 s->credentials['password'].=.$th
479a0 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 22 50 61 73 73 77 6f is->io->askAndHideAnswer("Passwo
479c0 72 64 3a 20 22 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 rd:.");..$this->cacheCredentials
479e0 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 22 53 .=.$this->io->askConfirmation("S
47a00 68 6f 75 6c 64 20 53 75 62 76 65 72 73 69 6f 6e 20 63 61 63 68 65 20 74 68 65 73 65 20 63 72 65 hould.Subversion.cache.these.cre
47a20 64 65 6e 74 69 61 6c 73 3f 20 28 79 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 65 29 3b 0a 0a 72 65 dentials?.(yes/no).",.true);..re
47a40 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 72 6f 74 65 63 74 65 turn.$this;.}...........protecte
47a60 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d 64 2c 20 24 75 72 6c d.function.getCommand($cmd,.$url
47a80 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 ,.$path.=.null).{.$cmd.=.sprintf
47aa0 28 27 25 73 20 25 73 25 73 20 25 73 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e 6f 6e 2d 69 6e 74 65 ('%s.%s%s.%s',.$cmd,.'--non-inte
47ac0 72 61 63 74 69 76 65 20 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 ractive.',.$this->getCredentialS
47ae0 74 72 69 6e 67 28 29 2c 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 0a 29 3b tring(),.escapeshellarg($url).);
47b00 0a 0a 69 66 20 28 24 70 61 74 68 29 20 7b 0a 24 63 6d 64 20 2e 3d 20 27 20 27 20 2e 20 65 73 63 ..if.($path).{.$cmd..=.'.'...esc
47b20 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 apeshellarg($path);.}..return.$c
47b40 6d 64 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 69 6f 6e md;.}.........protected.function
47b60 20 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 21 24 74 .getCredentialString().{.if.(!$t
47b80 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a his->hasAuth()).{.return.'';.}..
47ba0 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 0a 27 20 25 73 2d 2d 75 73 65 72 6e 61 6d 65 20 25 return.sprintf(.'.%s--username.%
47bc0 73 20 2d 2d 70 61 73 73 77 6f 72 64 20 25 73 20 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 41 75 74 s.--password.%s.',.$this->getAut
47be0 68 43 61 63 68 65 28 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 hCache(),.escapeshellarg($this->
47c00 67 65 74 55 73 65 72 6e 61 6d 65 28 29 29 2c 0a 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 getUsername()),.escapeshellarg($
47c20 74 68 69 73 2d 3e 67 65 74 50 61 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a this->getPassword()).);.}.......
47c40 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 73 73 77 6f 72 64 28 .protected.function.getPassword(
47c60 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e ).{.if.($this->credentials.===.n
47c80 75 6c 6c 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 ull).{.throw.new.\LogicException
47ca0 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 ("No.svn.auth.detected.");.}..re
47cc0 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 turn.isset($this->credentials['p
47ce0 61 73 73 77 6f 72 64 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b assword']).?.$this->credentials[
47d00 27 70 61 73 73 77 6f 72 64 27 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 'password'].:.'';.}........prote
47d20 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 28 29 0a 7b 0a 69 66 cted.function.getUsername().{.if
47d40 20 28 24 74 68 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 .($this->credentials.===.null).{
47d60 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 22 4e 6f 20 73 .throw.new.\LogicException("No.s
47d80 76 6e 20 61 75 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 24 vn.auth.detected.");.}..return.$
47da0 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d this->credentials['username'];.}
47dc0 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 73 41 .........protected.function.hasA
47de0 75 74 68 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 68 61 73 41 uth().{.if.(null.!==.$this->hasA
47e00 75 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a uth).{.return.$this->hasAuth;.}.
47e20 0a 24 75 72 69 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 69 .$uri.=.parse_url($this->url);.i
47e40 66 20 28 65 6d 70 74 79 28 24 75 72 69 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e f.(empty($uri['user'])).{.return
47e60 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 .$this->hasAuth.=.false;.}..$thi
47e80 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 75 72 s->credentials['username'].=.$ur
47ea0 69 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 75 72 69 5b 27 70 61 73 73 i['user'];.if.(!empty($uri['pass
47ec0 27 5d 29 29 20 7b 0a 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 '])).{.$this->credentials['passw
47ee0 6f 72 64 27 5d 20 3d 20 24 75 72 69 5b 27 70 61 73 73 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ord'].=.$uri['pass'];.}..return.
47f00 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 $this->hasAuth.=.true;.}.......p
47f20 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 43 61 63 68 65 28 29 rotected.function.getAuthCache()
47f40 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c .{.return.$this->cacheCredential
47f60 73 20 3f 20 27 27 20 3a 20 27 2d 2d 6e 6f 2d 61 75 74 68 2d 63 61 63 68 65 20 27 3b 0a 7d 0a 7d s.?.''.:.'--no-auth-cache.';.}.}
47f80 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
47fa0 6f 73 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 oser;..use.Composer\Package\Pack
47fc0 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
47fe0 67 65 5c 4c 6f 63 6b 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 ge\Locker;.use.Composer\Reposito
48000 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 73 ry\RepositoryManager;.use.Compos
48020 65 72 5c 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 er\Installer\InstallationManager
48040 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
48060 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 0a 7b adManager;......class.Composer.{
48080 0a 63 6f 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 39 62 38 65 66 63 39 27 3b 0a 0a 0a 0a 0a .const.VERSION.=.'9b8efc9';.....
480a0 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c private.$package;.....private.$l
480c0 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 ocker;.....private.$repositoryMa
480e0 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 nager;.....private.$downloadMana
48100 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 ger;.....private.$installationMa
48120 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a nager;.....private.$config;.....
48140 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 63 6b 61 67 65 28 50 61 63 6b .public.function.setPackage(Pack
48160 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 73 2d 3e ageInterface.$package).{.$this->
48180 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 70 75 62 6c 69 63 package.=.$package;.}.....public
481a0 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 74 75 72 6e 20 .function.getPackage().{.return.
481c0 24 74 68 69 73 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 $this->package;.}.....public.fun
481e0 63 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 ction.setConfig(Config.$config).
48200 7b 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 0a {.$this->config.=.$config;.}....
48220 0a 70 75 62 6c 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 .public.function.getConfig().{.r
48240 65 74 75 72 6e 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 eturn.$this->config;.}.....publi
48260 63 20 66 75 6e 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 c.function.setLocker(Locker.$loc
48280 6b 65 72 29 0a 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 ker).{.$this->locker.=.$locker;.
482a0 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 6b 65 72 28 }.....public.function.getLocker(
482c0 29 0a 7b 0a 72 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 ).{.return.$this->locker;.}.....
482e0 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 6f 72 79 4d 61 6e public.function.setRepositoryMan
48300 61 67 65 72 28 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 ager(RepositoryManager.$manager)
48320 0a 7b 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 6d .{.$this->repositoryManager.=.$m
48340 61 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 67 65 anager;.}.....public.function.ge
48360 74 52 65 70 6f 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 tRepositoryManager().{.return.$t
48380 68 69 73 2d 3e 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 his->repositoryManager;.}.....pu
483a0 62 6c 69 63 20 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 blic.function.setDownloadManager
483c0 28 44 6f 77 6e 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 (DownloadManager.$manager).{.$th
483e0 69 73 2d 3e 64 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 is->downloadManager.=.$manager;.
48400 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 6f 77 6e 6c 6f 61 }.....public.function.getDownloa
48420 64 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 64 6f 77 6e 6c dManager().{.return.$this->downl
48440 6f 61 64 4d 61 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 oadManager;.}.....public.functio
48460 6e 20 73 65 74 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 n.setInstallationManager(Install
48480 61 74 69 6f 6e 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 ationManager.$manager).{.$this->
484a0 69 6e 73 74 61 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 installationManager.=.$manager;.
484c0 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 49 6e 73 74 61 6c 6c }.....public.function.getInstall
484e0 61 74 69 6f 6e 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 ationManager().{.return.$this->i
48500 6e 73 74 61 6c 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 nstallationManager;.}.}.<?php...
48520 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 4a 73 6f 6e .........namespace.Composer\Json
48540 3b 0a 0a 0a 0a 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 ;.....class.JsonManipulator.{.pr
48560 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 24 6e 65 77 6c 69 6e ivate.$contents;.private.$newlin
48580 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 69 63 20 66 75 6e 63 e;.private.$indent;..public.func
485a0 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 73 29 0a 7b 0a 24 63 tion.__construct($contents).{.$c
485c0 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 3b 0a 69 66 20 28 21 ontents.=.trim($contents);.if.(!
485e0 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 27 2c 20 24 63 6f 6e preg_match('#^\{(.*)\}$#s',.$con
48600 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 6c 69 64 41 72 67 75 tents)).{.throw.new.\InvalidArgu
48620 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 69 6c 65 20 6d 75 73 mentException('The.json.file.mus
48640 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 24 74 68 69 73 2d 3e t.be.an.object.({})');.}.$this->
48660 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 73 28 22 5c 72 5c 6e newline.=.false.!==.strpos("\r\n
48680 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 5c 6e 22 3b 0a 24 74 ",.$contents).?."\r\n":."\n";.$t
486a0 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 3b 0a 24 74 68 69 73 his->contents.=.$contents;.$this
486c0 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 75 62 6c 69 63 20 66 ->detectIndenting();.}..public.f
486e0 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 65 74 75 72 6e 20 24 unction.getContents().{.return.$
48700 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 65 77 6c 69 6e 65 3b this->contents...$this->newline;
48720 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 6e 6b 28 24 74 79 70 .}..public.function.addLink($typ
48740 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 0a 7b 0a 0a 20 69 66 e,.$package,.$constraint).{...if
48760 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 27 22 3a 5c 73 2a 5c .(!preg_match('#"'.$type.'":\s*\
48780 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 24 74 68 69 73 2d 3e {#',.$this->contents)).{.$this->
487a0 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 66 6f 72 6d 61 74 28 addMainKey($type,.$this->format(
487c0 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 61 69 6e 74 29 29 29 array($package.=>.$constraint)))
487e0 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 52 65 67 65 78 20 3d ;..return.true;.}..$linksRegex.=
48800 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 7d 5d 2b 29 28 5c 7d .'#("'.$type.'":\s*\{)([^}]+)(\}
48820 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 6e 6b 73 52 65 67 65 )#s';.if.(!preg_match($linksRege
48840 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 7b 0a 72 x,.$this->contents,.$match)).{.r
48860 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 24 6d 61 74 63 68 5b eturn.false;.}..$links.=.$match[
48880 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 65 70 6c 61 63 65 28 2];.$packageRegex.=.str_replace(
488a0 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 28 24 70 61 63 6b 61 '/',.'\\\\?/',.preg_quote($packa
488c0 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 7b 22 27 2e 24 70 61 ge));....if.(preg_match('{"'.$pa
488e0 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 6e 6b 73 29 29 20 7b ckageRegex.'"\s*:}i',.$links)).{
48900 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 22 27 2e 24 70 61 63 .$links.=.preg_replace('{"'.$pac
48920 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 5d 2b 22 7d 69 27 2c kageRegex.'"(\s*:\s*)"[^"]+"}i',
48940 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 24 31 22 .JsonFile::encode($package).'$1"
48960 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c '.$constraint.'"',.$links);.}.el
48980 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 24 23 27 seif.(preg_match('#[^\s](\s*)$#'
489a0 2c 20 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 ,.$links,.$match)).{...$links.=.
489c0 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 24 23 27 preg_replace(.'#'.$match[1].'$#'
489e0 2c 0a 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e ,.','...$this->newline...$this->
48a00 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 6c indent...$this->indent...JsonFil
48a20 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 46 69 6c e::encode($package).':.'.JsonFil
48a40 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 6d 61 74 63 68 5b e::encode($constraint)...$match[
48a60 31 5d 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 1],.$links.);.}.else.{...$links.
48a80 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 3e 69 6e 64 65 6e 74 =.$this->newline...$this->indent
48aa0 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 6c 65 3a 3a 65 6e 63 ...$this->indent...JsonFile::enc
48ac0 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 ode($package).':.'.JsonFile::enc
48ae0 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6c 69 6e 6b 73 3b 0a 7d 0a 0a 24 74 ode($constraint)...$links;.}..$t
48b00 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 6c 69 his->contents.=.preg_replace($li
48b20 6e 6b 73 52 65 67 65 78 2c 20 27 24 31 27 2e 24 6c 69 6e 6b 73 2e 27 24 33 27 2c 20 24 74 68 69 nksRegex,.'$1'.$links.'$3',.$thi
48b40 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 3b 0a 7d 0a 0a 70 s->contents);..return.true;.}..p
48b60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b 65 79 2c 20 ublic.function.addMainKey($key,.
48b80 24 63 6f 6e 74 65 6e 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 7b $content).{.if.(preg_match('#[^{
48ba0 5c 73 5d 28 5c 73 2a 29 5c 7d 24 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 \s](\s*)\}$#',.$this->contents,.
48bc0 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 $match)).{.$this->contents.=.pre
48be0 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c g_replace(.'#'.$match[1].'\}$#',
48c00 0a 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 .','...$this->newline...$this->i
48c20 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 ndent...JsonFile::encode($key)..
48c40 27 3a 20 27 2e 20 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 ':.'..$content...$this->newline.
48c60 2e 20 27 7d 27 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 20 65 6c 73 65 ..'}',.$this->contents.);.}.else
48c80 20 7b 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 70 6c 61 63 .{.$this->contents.=.preg_replac
48ca0 65 28 0a 27 23 5c 7d 24 23 27 2c 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e e(.'#\}$#',.$this->indent...Json
48cc0 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 24 63 6f 6e 74 65 6e File::encode($key)..':.'.$conten
48ce0 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 73 2d t...$this->newline...'}',.$this-
48d00 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 >contents.);.}.}..protected.func
48d20 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 tion.format($data).{.if.(is_arra
48d40 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 69 y($data)).{.reset($data);..if.(i
48d60 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 20 s_numeric(key($data))).{.return.
48d80 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 0a '['.implode(',.',.$data).']';.}.
48da0 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 6f .$out.=.'{'...$this->newline;.fo
48dc0 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 0a reach.($data.as.$key.=>.$val).{.
48de0 24 65 6c 65 6d 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 $elems[].=.$this->indent...$this
48e00 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 65 28 24 6b 65 79 ->indent...JsonFile::encode($key
48e20 29 2e 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 29 3b 0a 7d 0a 0a )..':.'.$this->format($val);.}..
48e40 72 65 74 75 72 6e 20 24 6f 75 74 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d return.$out...implode(','.$this-
48e60 3e 6e 65 77 6c 69 6e 65 2c 20 24 65 6c 65 6d 73 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 >newline,.$elems)...$this->newli
48e80 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 ne...$this->indent...'}';.}..ret
48ea0 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a urn.JsonFile::encode($data);.}..
48ec0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 63 74 49 6e 64 65 6e 74 69 protected.function.detectIndenti
48ee0 6e 67 28 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5c 73 2b 29 22 7d ng().{.if.(preg_match('{^(\s+)"}
48f00 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 24 ',.$this->contents,.$match)).{.$
48f20 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 this->indent.=.$match[1];.}.else
48f40 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 3d 20 27 20 20 20 20 27 3b 0a 7d 0a 7d 0a 7d .{.$this->indent.=.'....';.}.}.}
48f60 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
48f80 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 oser\Json;..use.Composer\Compose
48fa0 72 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 r;.use.JsonSchema\Validator;.use
48fc0 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 .Seld\JsonLint\JsonParser;.use.S
48fe0 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 eld\JsonLint\ParsingException;.u
49000 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
49020 6d 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 61 6e 73 m;.use.Composer\Downloader\Trans
49040 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e portException;........class.Json
49060 46 69 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e File.{.const.LAX_SCHEMA.=.1;.con
49080 73 74 20 53 54 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f st.STRICT_SCHEMA.=.2;..const.JSO
490a0 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 N_UNESCAPED_SLASHES.=.64;.const.
490c0 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a JSON_PRETTY_PRINT.=.128;.const.J
490e0 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 SON_UNESCAPED_UNICODE.=.256;..pr
49100 69 76 61 74 65 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 0a ivate.$path;.private.$rfs;......
49120 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 70 ..public.function.__construct($p
49140 61 74 68 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c ath,.RemoteFilesystem.$rfs.=.nul
49160 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e l).{.$this->path.=.$path;..if.(n
49180 75 6c 6c 20 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 ull.===.$rfs.&&.preg_match('{^ht
491a0 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 tps?://}i',.$path)).{.throw.new.
491c0 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 68 74 74 70 20 \InvalidArgumentException('http.
491e0 75 72 6c 73 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 urls.require.a.RemoteFilesystem.
49200 69 6e 73 74 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 instance.to.be.passed');.}.$this
49220 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ->rfs.=.$rfs;.}.....public.funct
49240 69 6f 6e 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 ion.getPath().{.return.$this->pa
49260 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 65 78 69 73 th;.}.......public.function.exis
49280 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 ts().{.return.is_file($this->pat
492a0 68 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 72 65 61 64 h);.}.......public.function.read
492c0 28 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 ().{.try.{.if.($this->rfs).{.$js
492e0 6f 6e 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 74 68 on.=.$this->rfs->getContents($th
49300 69 73 2d 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d is->path,.$this->path,.false);.}
49320 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 .else.{.$json.=.file_get_content
49340 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 s($this->path);.}.}.catch.(Trans
49360 70 6f 72 74 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 portException.$e).{.throw.new.\R
49380 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 72 65 61 64 20 untimeException('Could.not.read.
493a0 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 27 2c 20 65 69 74 68 65 72 20 79 6f 75 20 6f 72 20 74 '.$this->path.',.either.you.or.t
493c0 68 65 20 72 65 6d 6f 74 65 20 68 6f 73 74 20 69 73 20 70 72 6f 62 61 62 6c 79 20 6f 66 66 6c 69 he.remote.host.is.probably.offli
493e0 6e 65 27 2e 22 5c 6e 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 ne'."\n\n".$e->getMessage());.}.
49400 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 6e 65 catch.(\Exception.$e).{.throw.ne
49420 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 20 6e 6f 74 20 72 w.\RuntimeException('Could.not.r
49440 65 61 64 20 27 2e 24 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 ead.'.$this->path."\n\n".$e->get
49460 4d 65 73 73 61 67 65 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 Message());.}..return.static::pa
49480 72 73 65 4a 73 6f 6e 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 rseJson($json,.$this->path);.}..
494a0 0a 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 61 72 72 61 ......public.function.write(arra
494c0 79 20 24 68 61 73 68 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 y.$hash,.$options.=.448).{.$dir.
494e0 3d 20 64 69 72 6e 61 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 =.dirname($this->path);.if.(!is_
49500 64 69 72 28 24 64 69 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 dir($dir)).{.if.(file_exists($di
49520 72 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 r)).{.throw.new.\UnexpectedValue
49540 45 78 63 65 70 74 69 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 Exception(.$dir.'.exists.and.is.
49560 6e 6f 74 20 61 20 64 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 not.a.directory.'.);.}.if.(!mkdi
49580 72 28 24 64 69 72 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 r($dir,.0777,.true)).{.throw.new
495a0 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 0a 24 64 69 72 .\UnexpectedValueException(.$dir
495c0 2e 27 20 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 .'.does.not.exist.and.could.not.
495e0 62 65 20 63 72 65 61 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 be.created.'.);.}.}.file_put_con
49600 74 65 6e 74 73 28 24 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 tents($this->path,.static::encod
49620 65 28 24 68 61 73 68 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 e($hash,.$options)..($options.&.
49640 73 65 6c 66 3a 3a 4a 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 self::JSON_PRETTY_PRINT.?."\n".:
49660 20 27 27 29 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 .''));.}.........public.function
49680 20 76 61 6c 69 64 61 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 .validateSchema($schema.=.self::
496a0 53 54 52 49 43 54 5f 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 STRICT_SCHEMA).{.$content.=.file
496c0 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 24 64 61 74 _get_contents($this->path);.$dat
496e0 61 20 3d 20 6a 73 6f 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 a.=.json_decode($content);..if.(
49700 6e 75 6c 6c 20 3d 3d 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 null.===.$data.&&.'null'.!==.$co
49720 6e 74 65 6e 74 29 20 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 ntent).{.self::validateSyntax($c
49740 6f 6e 74 65 6e 74 2c 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 ontent,.$this->path);.}..$schema
49760 46 69 6c 65 20 3d 20 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 File.=.__DIR__...'/../../../res/
49780 63 6f 6d 70 6f 73 65 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 composer-schema.json';.$schemaDa
497a0 74 61 20 3d 20 6a 73 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 ta.=.json_decode(file_get_conten
497c0 74 73 28 24 73 63 68 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 ts($schemaFile));..if.($schema.=
497e0 3d 3d 20 73 65 6c 66 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 ==.self::LAX_SCHEMA).{.$schemaDa
49800 74 61 2d 3e 61 64 64 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 ta->additionalProperties.=.true;
49820 0a 24 73 63 68 65 6d 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 .$schemaData->properties->name->
49840 72 65 71 75 69 72 65 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 required.=.false;.$schemaData->p
49860 72 6f 70 65 72 74 69 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 roperties->description->required
49880 20 3d 20 66 61 6c 73 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 .=.false;.}..$validator.=.new.Va
498a0 6c 69 64 61 74 6f 72 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 lidator();.$validator->check($da
498c0 74 61 2c 20 24 73 63 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 ta,.$schemaData);....if.(!$valid
498e0 61 74 6f 72 2d 3e 69 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 ator->isValid()).{.$errors.=.arr
49900 61 79 28 29 3b 0a 66 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 ay();.foreach.((array).$validato
49920 72 2d 3e 67 65 74 45 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 r->getErrors().as.$error).{.$err
49940 6f 72 73 5b 5d 20 3d 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 ors[].=.($error['property'].?.$e
49960 72 72 6f 72 5b 27 70 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 rror['property'].'.:.'.:.'').$er
49980 72 6f 72 5b 27 6d 65 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 ror['message'];.}.throw.new.Json
499a0 56 61 6c 69 64 61 74 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 ValidationException('"'.$this->p
499c0 61 74 68 2e 27 22 20 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 ath.'".does.not.match.the.expect
499e0 65 64 20 4a 53 4f 4e 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 ed.JSON.schema',.$errors);.}..re
49a00 74 75 72 6e 20 74 72 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 turn.true;.}..............public
49a20 20 73 74 61 74 69 63 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 .static.function.encode($data,.$
49a40 6f 70 74 69 6f 6e 73 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 options.=.448).{.if.(version_com
49a60 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 3e 3d 27 29 29 20 pare(PHP_VERSION,.'5.4',.'>=')).
49a80 7b 0a 72 65 74 75 72 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 {.return.json_encode($data,.$opt
49aa0 69 6f 6e 73 29 3b 0a 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 ions);.}..$json.=.json_encode($d
49ac0 61 74 61 29 3b 0a 0a 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 ata);..$prettyPrint.=.(bool).($o
49ae0 70 74 69 6f 6e 73 20 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 ptions.&.self::JSON_PRETTY_PRINT
49b00 29 3b 0a 24 75 6e 65 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 );.$unescapeUnicode.=.(bool).($o
49b20 70 74 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 55 4e ptions.&.self::JSON_UNESCAPED_UN
49b40 49 43 4f 44 45 29 3b 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 ICODE);.$unescapeSlashes.=.(bool
49b60 29 20 28 24 6f 70 74 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 ).($options.&.self::JSON_UNESCAP
49b80 45 44 5f 53 4c 41 53 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 ED_SLASHES);..if.(!$prettyPrint.
49ba0 26 26 20 21 24 75 6e 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 &&.!$unescapeUnicode.&&.!$unesca
49bc0 70 65 53 6c 61 73 68 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 peSlashes).{.return.$json;.}..$r
49be0 65 73 75 6c 74 20 3d 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 esult.=.'';.$pos.=.0;.$strLen.=.
49c00 73 74 72 6c 65 6e 28 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 strlen($json);.$indentStr.=.'...
49c20 20 27 3b 0a 24 6e 65 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 .';.$newLine.=."\n";.$outOfQuote
49c40 73 20 3d 20 74 72 75 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 s.=.true;.$buffer.=.'';.$noescap
49c60 65 20 3d 20 74 72 75 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 e.=.true;..for.($i.=.0;.$i.<=.$s
49c80 74 72 4c 65 6e 3b 20 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 trLen;.$i++).{...$char.=.substr(
49ca0 24 6a 73 6f 6e 2c 20 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 $json,.$i,.1);....if.('"'.===.$c
49cc0 68 61 72 20 26 26 20 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 har.&&.$noescape).{.$outOfQuotes
49ce0 20 3d 20 21 24 6f 75 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 .=.!$outOfQuotes;.}..if.(!$outOf
49d00 51 75 6f 74 65 73 29 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 Quotes).{.$buffer..=.$char;.$noe
49d20 73 63 61 70 65 20 3d 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 scape.=.'\\'.===.$char.?.!$noesc
49d40 61 70 65 20 3a 20 74 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 ape.:.true;.continue;.}.elseif.(
49d60 27 27 20 21 3d 3d 20 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 ''.!==.$buffer).{.if.($unescapeS
49d80 6c 61 73 68 65 73 29 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 lashes).{.$buffer.=.str_replace(
49da0 27 5c 5c 2f 27 2c 20 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 '\\/',.'/',.$buffer);.}..if.($un
49dc0 65 73 63 61 70 65 55 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 escapeUnicode.&&.function_exists
49de0 28 27 6d 62 5f 63 6f 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 ('mb_convert_encoding')).{...$bu
49e00 66 66 65 72 20 3d 20 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 ffer.=.preg_replace_callback('/\
49e20 5c 5c 5c 75 28 5b 30 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 \\\u([0-9a-f]{4})/i',.function($
49e40 6d 61 74 63 68 29 20 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 match).{.return.mb_convert_encod
49e60 69 6e 67 28 70 61 63 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 ing(pack('H*',.$match[1]),.'UTF-
49e80 38 27 2c 20 27 55 43 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 8',.'UCS-2BE');.},.$buffer);.}..
49ea0 24 72 65 73 75 6c 74 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 $result..=.$buffer.$char;.$buffe
49ec0 72 20 3d 20 27 27 3b 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 r.=.'';.continue;.}..if.(':'.===
49ee0 20 24 63 68 61 72 29 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 .$char).{...$char..=.'.';.}.else
49f00 69 66 20 28 28 27 7d 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 if.(('}'.===.$char.||.']'.===.$c
49f20 68 61 72 29 29 20 7b 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 har)).{.$pos--;.$prevChar.=.subs
49f40 74 72 28 24 6a 73 6f 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 tr($json,.$i.-.1,.1);..if.('{'.!
49f60 3d 3d 20 24 70 72 65 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 ==.$prevChar.&&.'['.!==.$prevCha
49f80 72 29 20 7b 0a 0a 20 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 r).{.....$result..=.$newLine;.fo
49fa0 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 0a 24 72 r.($j.=.0;.$j.<.$pos;.$j++).{.$r
49fc0 65 73 75 6c 74 20 2e 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 esult..=.$indentStr;.}.}.else.{.
49fe0 0a 20 24 72 65 73 75 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 ..$result.=.rtrim($result)."\n\n
4a000 22 2e 24 69 6e 64 65 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 ".$indentStr;.}.}..$result..=.$c
4a020 68 61 72 3b 0a 0a 0a 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 har;......if.(','.===.$char.||.'
4a040 7b 27 20 3d 3d 3d 20 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 {'.===.$char.||.'['.===.$char).{
4a060 0a 24 72 65 73 75 6c 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 .$result..=.$newLine;..if.('{'.=
4a080 3d 3d 20 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 70 6f ==.$char.||.'['.===.$char).{.$po
4a0a0 73 2b 2b 3b 0a 7d 0a 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 s++;.}..for.($j.=.0;.$j.<.$pos;.
4a0c0 24 6a 2b 2b 29 20 7b 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 $j++).{.$result..=.$indentStr;.}
4a0e0 0a 7d 0a 7d 0a 0a 72 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 .}.}..return.$result;.}.........
4a100 0a 70 75 62 6c 69 63 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 .public.static.function.parseJso
4a120 6e 28 24 6a 73 6f 6e 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 n($json,.$file.=.null).{.$data.=
4a140 20 6a 73 6f 6e 5f 64 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 .json_decode($json,.true);.if.(n
4a160 75 6c 6c 20 3d 3d 3d 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 ull.===.$data.&&.JSON_ERROR_NONE
4a180 20 21 3d 3d 20 6a 73 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 .!==.json_last_error()).{.self::
4a1a0 76 61 6c 69 64 61 74 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 validateSyntax($json,.$file);.}.
4a1c0 0a 72 65 74 75 72 6e 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 .return.$data;.}...........prote
4a1e0 63 74 65 64 20 73 74 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 cted.static.function.validateSyn
4a200 74 61 78 28 24 6a 73 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 tax($json,.$file.=.null).{.$pars
4a220 65 72 20 3d 20 6e 65 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 er.=.new.JsonParser();.$result.=
4a240 20 24 70 61 72 73 65 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 .$parser->lint($json);.if.(null.
4a260 3d 3d 3d 20 24 72 65 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 ===.$result).{.if.(defined('JSON
4a280 5f 45 52 52 4f 52 5f 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 _ERROR_UTF8').&&.JSON_ERROR_UTF8
4a2a0 20 3d 3d 3d 20 6a 73 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 .===.json_last_error()).{.throw.
4a2c0 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 22 new.\UnexpectedValueException('"
4a2e0 27 2e 24 66 69 6c 65 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 '.$file.'".is.not.UTF-8,.could.n
4a300 6f 74 20 70 61 72 73 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 ot.parse.as.JSON');.}..return.tr
4a320 75 65 3b 0a 7d 0a 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 ue;.}..throw.new.ParsingExceptio
4a340 6e 28 27 22 27 2e 24 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 n('"'.$file.'".does.not.contain.
4a360 76 61 6c 69 64 20 4a 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 valid.JSON'."\n".$result->getMes
4a380 73 61 67 65 28 29 2c 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 sage(),.$result->getDetails());.
4a3a0 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
4a3c0 6f 6d 70 6f 73 65 72 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 omposer\Json;..use.Exception;...
4a3e0 0a 0a 63 6c 61 73 73 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 ..class.JsonValidationException.
4a400 65 78 74 65 6e 64 73 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 extends.Exception.{.protected.$e
4a420 72 72 6f 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 73 74 72 rrors;..public.function.__constr
4a440 75 63 74 28 24 6d 65 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 uct($message,.$errors.=.array())
4a460 0a 7b 0a 24 74 68 69 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 .{.$this->errors.=.$errors;.pare
4a480 6e 74 3a 3a 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 nt::__construct($message);.}..pu
4a4a0 62 6c 69 63 20 66 75 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 blic.function.getErrors().{.retu
4a4c0 72 6e 20 24 74 68 69 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 rn.$this->errors;.}.}.<?php.....
4a4e0 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 0a 0a 0a 0a 63 .......namespace.Composer;.....c
4a500 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 20 24 64 65 66 lass.Config.{.public.static.$def
4a520 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 73 2d 74 69 6d aultConfig.=.array(.'process-tim
4a540 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 3d 3e 20 27 76 eout'.=>.300,.'vendor-dir'.=>.'v
4a560 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 64 6f 72 2d 64 endor',.'bin-dir'.=>.'{$vendor-d
4a580 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 6c 27 20 3d 3e ir}/bin',.'notify-on-install'.=>
4a5a0 20 74 72 75 65 2c 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 .true,.);..public.static.$defaul
4a5c0 74 52 65 70 6f 73 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 tRepositories.=.array(.'packagis
4a5e0 74 27 20 3d 3e 20 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 t'.=>.array(.'type'.=>.'composer
4a600 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 ',.'url'.=>.'http://packagist.or
4a620 67 27 2c 0a 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 g',.).);..private.$config;.priva
4a640 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 te.$repositories;..public.functi
4a660 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 on.__construct().{...$this->conf
4a680 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 ig.=.static::$defaultConfig;.$th
4a6a0 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 is->repositories.=.static::$defa
4a6c0 75 6c 74 52 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 ultRepositories;.}.......public.
4a6e0 66 75 6e 63 74 69 6f 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 function.merge(array.$config).{.
4a700 0a 20 69 66 20 28 21 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 ..if.(!empty($config['config']).
4a720 26 26 20 69 73 5f 61 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 &&.is_array($config['config'])).
4a740 7b 0a 24 74 68 69 73 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 {.$this->config.=.array_replace_
4a760 72 65 63 75 72 73 69 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 recursive($this->config,.$config
4a780 5b 27 63 6f 6e 66 69 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 ['config']);.}..if.(!empty($conf
4a7a0 69 67 5b 27 72 65 70 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 ig['repositories']).&&.is_array(
4a7c0 24 63 6f 6e 66 69 67 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 $config['repositories'])).{.$thi
4a7e0 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 65 28 s->repositories.=.array_reverse(
4a800 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 24 6e 65 77 $this->repositories,.true);.$new
4a820 52 65 70 6f 73 20 3d 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 Repos.=.array_reverse($config['r
4a840 65 70 6f 73 69 74 6f 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 epositories'],.true);.foreach.($
4a860 6e 65 77 52 65 70 6f 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 newRepos.as.$name.=>.$repository
4a880 29 20 7b 0a 0a 20 69 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 ).{...if.(false.===.$repository)
4a8a0 20 7b 0a 75 6e 73 65 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 .{.unset($this->repositories[$na
4a8c0 6d 65 5d 29 3b 0a 63 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 me]);.continue;.}....if.(1.===.c
4a8e0 6f 75 6e 74 28 24 72 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 ount($repository).&&.false.===.c
4a900 75 72 72 65 6e 74 28 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 urrent($repository)).{.unset($th
4a920 69 73 2d 3e 72 65 70 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 is->repositories[key($repository
4a940 29 5d 29 3b 0a 63 6f 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 )]);.continue;.}....if.(is_int($
4a960 6e 61 6d 65 29 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 name)).{.$this->repositories[].=
4a980 20 24 72 65 70 6f 73 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 .$repository;.}.else.{.$this->re
4a9a0 70 6f 73 69 74 6f 72 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 positories[$name].=.$repository;
4a9c0 0a 7d 0a 7d 0a 24 74 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 .}.}.$this->repositories.=.array
4a9e0 5f 72 65 76 65 72 73 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 _reverse($this->repositories,.tr
4aa00 75 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 67 65 74 ue);.}.}.....public.function.get
4aa20 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 73 2d 3e 72 Repositories().{.return.$this->r
4aa40 65 70 6f 73 69 74 6f 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 epositories;.}........public.fun
4aa60 63 74 69 6f 6e 20 67 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 ction.get($key).{.switch.($key).
4aa80 7b 0a 63 61 73 65 20 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 {.case.'vendor-dir':.case.'bin-d
4aaa0 69 72 27 3a 0a 63 61 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 ir':.case.'process-timeout':...$
4aac0 65 6e 76 20 3d 20 27 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 env.=.'COMPOSER_'...strtoupper(s
4aae0 74 72 74 72 28 24 6b 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 trtr($key,.'-',.'_'));..return.r
4ab00 74 72 69 6d 28 24 74 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 trim($this->process(getenv($env)
4ab20 20 3f 3a 20 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 29 .?:.$this->config[$key]),.'/\\')
4ab40 3b 0a 0a 63 61 73 65 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 ;..case.'home':.return.rtrim($th
4ab60 69 73 2d 3e 70 72 6f 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 is->process($this->config[$key])
4ab80 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ,.'/\\');..default:.return.$this
4aba0 2d 3e 70 72 6f 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 3b 0a ->process($this->config[$key]);.
4abc0 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 68 61 73 28 24 }.}........public.function.has($
4abe0 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 key).{.return.array_key_exists($
4ac00 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 key,.$this->config);.}........pr
4ac20 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 28 24 76 61 6c 75 65 29 0a 7b ivate.function.process($value).{
4ac40 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 .$config.=.$this;..return.preg_r
4ac60 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 eplace_callback('#\{\$(.+)\}#',.
4ac80 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 29 20 function.($match).use.($config).
4aca0 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 {.return.$config->get($match[1])
4acc0 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ;.},.$value);.}.}.<?php.........
4ace0 0a 0a 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 ...namespace.Composer\Script;..u
4ad00 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 73 se.Composer\Composer;.use.Compos
4ad20 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 er\IO\IOInterface;.......class.E
4ad40 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 vent.{....private.$name;.....pri
4ad60 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b vate.$composer;.....private.$io;
4ad80 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 74 .........public.function.__const
4ada0 72 75 63 74 28 24 6e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 ruct($name,.Composer.$composer,.
4adc0 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d IOInterface.$io).{.$this->name.=
4ade0 20 24 6e 61 6d 65 3b 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 .$name;.$this->composer.=.$compo
4ae00 73 65 72 3b 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 70 75 ser;.$this->io.=.$io;.}.......pu
4ae20 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
4ae40 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$this->name;.}.......public.fun
4ae60 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getComposer().{.return.$th
4ae80 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e is->composer;.}.......public.fun
4aea0 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f ction.getIO().{.return.$this->io
4aec0 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
4aee0 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 .Composer\Script;........class.S
4af00 63 72 69 70 74 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 criptEvents.{........const.PRE_I
4af20 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a NSTALL_CMD.=.'pre-install-cmd';.
4af40 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d ........const.POST_INSTALL_CMD.=
4af60 20 27 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e .'post-install-cmd';.........con
4af80 73 74 20 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d st.PRE_UPDATE_CMD.=.'pre-update-
4afa0 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f cmd';.........const.POST_UPDATE_
4afc0 43 4d 44 20 3d 20 27 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a CMD.=.'post-update-cmd';........
4afe0 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 .const.PRE_PACKAGE_INSTALL.=.'pr
4b000 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 e-package-install';.........cons
4b020 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 t.POST_PACKAGE_INSTALL.=.'post-p
4b040 61 63 6b 61 67 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 ackage-install';.........const.P
4b060 52 45 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 RE_PACKAGE_UPDATE.=.'pre-package
4b080 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 -update';.........const.POST_PAC
4b0a0 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 KAGE_UPDATE.=.'post-package-upda
4b0c0 74 65 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 47 45 5f 55 te';.........const.PRE_PACKAGE_U
4b0e0 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c NINSTALL.=.'pre-package-uninstal
4b100 6c 27 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 l';.........const.POST_PACKAGE_U
4b120 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 NINSTALL.=.'post-package-uninsta
4b140 6c 6c 27 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 ll';.}.<?php............namespac
4b160 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 73 65 72 e.Composer\Script;..use.Composer
4b180 5c 43 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 \Composer;.......class.CommandEv
4b1a0 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ent.extends.Event.{.}.<?php.....
4b1c0 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 53 63 72 69 70 74 .......namespace.Composer\Script
4b1e0 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
4b200 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
4b220 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
4b240 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \OperationInterface;.......class
4b260 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a .PackageEvent.extends.Event.{...
4b280 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .private.$operation;..........pu
4b2a0 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 6d 65 2c blic.function.__construct($name,
4b2c0 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 61 63 65 .Composer.$composer,.IOInterface
4b2e0 20 24 69 6f 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 .$io,.OperationInterface.$operat
4b300 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 24 6e 61 6d 65 ion).{.parent::__construct($name
4b320 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 ,.$composer,.$io);.$this->operat
4b340 69 6f 6e 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.=.$operation;.}.......public
4b360 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 .function.getOperation().{.retur
4b380 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a n.$this->operation;.}.}.<?php...
4b3a0 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 53 63 72 69 .........namespace.Composer\Scri
4b3c0 70 74 3b 0a 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 pt;..use.Composer\Autoload\Autol
4b3e0 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f oadGenerator;.use.Composer\IO\IO
4b400 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 6d 70 6f 73 65 72 Interface;.use.Composer\Composer
4b420 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
4b440 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a r\Operation\OperationInterface;.
4b460 0a 0a 0a 0a 0a 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 .............class.EventDispatch
4b480 65 72 0a 7b 0a 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 er.{.protected.$composer;.protec
4b4a0 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a ted.$io;.protected.$loader;.....
4b4c0 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 43 ...public.function.__construct(C
4b4e0 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 61 63 65 20 24 omposer.$composer,.IOInterface.$
4b500 69 6f 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 73 65 io).{.$this->composer.=.$compose
4b520 72 3b 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 70 75 62 r;.$this->io.=.$io;.}........pub
4b540 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 65 45 76 65 6e lic.function.dispatchPackageEven
4b560 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 72 66 61 63 65 t($eventName,.OperationInterface
4b580 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 70 61 74 63 68 .$operation).{.$this->doDispatch
4b5a0 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 65 2c 20 24 74 (new.PackageEvent($eventName,.$t
4b5c0 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 6f 70 65 72 61 his->composer,.$this->io,.$opera
4b5e0 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 74 69 6f 6e 20 tion));.}.......public.function.
4b600 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 4e 61 6d 65 29 dispatchCommandEvent($eventName)
4b620 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 6d 6d 61 6e 64 .{.$this->doDispatch(new.Command
4b640 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 6d 70 6f 73 65 Event($eventName,.$this->compose
4b660 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 74 65 63 74 65 r,.$this->io));.}.......protecte
4b680 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 20 24 65 76 65 d.function.doDispatch(Event.$eve
4b6a0 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 65 74 4c 69 73 nt).{.$listeners.=.$this->getLis
4b6c0 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 6c 69 73 74 65 teners($event);..foreach.($liste
4b6e0 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c 65 29 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 ners.as.$callable).{.$className.
4b700 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 63 =.substr($callable,.0,.strpos($c
4b720 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 29 3b 0a 24 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 73 allable,.'::'));.$methodName.=.s
4b740 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c ubstr($callable,.strpos($callabl
4b760 65 2c 20 27 3a 3a 27 29 20 2b 20 32 29 3b 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 e,.'::').+.2);..if.(!class_exist
4b780 73 28 24 63 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 s($className)).{.throw.new.\Unex
4b7a0 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6c 61 73 73 20 27 2e 24 63 pectedValueException('Class.'.$c
4b7c0 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,.
4b7e0 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()
4b800 2e 27 20 73 63 72 69 70 74 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 .'.script');.}.if.(!is_callable(
4b820 24 63 61 6c 6c 61 62 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 $callable)).{.throw.new.\Unexpec
4b840 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c tedValueException('Method.'.$cal
4b860 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 20 63 61 6c 6c 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 lable.'.is.not.callable,.can.not
4b880 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 2e 27 20 73 63 72 69 .call.'.$event->getName().'.scri
4b8a0 70 74 27 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 pt');.}..try.{.$className::$meth
4b8c0 6f 64 4e 61 6d 65 28 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 odName($event);.}.catch.(\Except
4b8e0 69 6f 6e 20 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 ion.$e).{.$message.=."Script.%s.
4b900 68 61 6e 64 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 handling.the.%s.event.terminated
4b920 20 77 69 74 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 .with.an.exception";.$this->io->
4b940 77 72 69 74 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 write('<error>'.sprintf($message
4b960 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 28 29 29 2e ,.$callable,.$event->getName()).
4b980 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a '</error>');.throw.$e;.}.}.}....
4b9a0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 ..protected.function.getListener
4b9c0 73 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 s(Event.$event).{.$package.=.$th
4b9e0 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 is->composer->getPackage();.$scr
4ba00 69 70 74 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a ipts.=.$package->getScripts();..
4ba20 69 66 20 28 65 6d 70 74 79 28 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 if.(empty($scripts[$event->getNa
4ba40 6d 65 28 29 5d 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 me()])).{.return.array();.}..if.
4ba60 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d ($this->loader).{.$this->loader-
4ba80 3e 75 6e 72 65 67 69 73 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e >unregister();.}..$generator.=.n
4baa0 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 24 70 61 63 6b 61 67 65 73 20 ew.AutoloadGenerator;.$packages.
4bac0 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 =.$this->composer->getRepository
4bae0 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 6f 72 79 28 29 2d Manager()->getLocalRepository()-
4bb00 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 67 >getPackages();.$packageMap.=.$g
4bb20 65 6e 65 72 61 74 6f 72 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 74 68 69 73 2d enerator->buildPackageMap($this-
4bb40 3e 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 65 >composer->getInstallationManage
4bb60 72 28 29 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 6d 61 70 20 r(),.$package,.$packages);.$map.
4bb80 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 =.$generator->parseAutoloads($pa
4bba0 63 6b 61 67 65 4d 61 70 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 ckageMap);.$this->loader.=.$gene
4bbc0 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 rator->createLoader($map);.$this
4bbe0 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 ->loader->register();..return.$s
4bc00 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 7d 0a 3c cripts[$event->getName()];.}.}.<
4bc20 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
4bc40 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 52 65 70 6f er\Installer;..use.Composer\Repo
4bc60 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 65 72 66 sitory\InstalledRepositoryInterf
4bc80 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 67 ace;.use.Composer\Package\Packag
4bca0 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 6e eInterface;.........class.NoopIn
4bcc0 73 74 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 staller.implements.InstallerInte
4bce0 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 73 75 70 70 6f rface.{....public.function.suppo
4bd00 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b rts($packageType).{.return.true;
4bd20 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 73 74 61 6c 6c .}.....public.function.isInstall
4bd40 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 61 63 65 20 ed(InstalledRepositoryInterface.
4bd60 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 6b 61 67 65 $repo,.PackageInterface.$package
4bd80 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 65 28 24 70 61 ).{.return.$repo->hasPackage($pa
4bda0 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 6f 6e 20 69 6e ckage);.}.....public.function.in
4bdc0 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 61 stall(InstalledRepositoryInterfa
4bde0 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 6b ce.$repo,.PackageInterface.$pack
4be00 61 67 65 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 70 age).{.if.(!$repo->hasPackage($p
4be20 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f ackage)).{.$repo->addPackage(clo
4be40 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ne.$package);.}.}.....public.fun
4be60 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 74 6f 72 79 ction.update(InstalledRepository
4be80 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 66 61 63 Interface.$repo,.PackageInterfac
4bea0 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
4bec0 72 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 rget).{.if.(!$repo->hasPackage($
4bee0 69 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 initial)).{.throw.new.\InvalidAr
4bf00 67 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 gumentException('Package.is.not.
4bf20 69 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 69 66 20 28 21 installed:.'.$initial);.}..if.(!
4bf40 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 $repo->hasPackage($target)).{.$r
4bf60 65 70 6f 2d 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 epo->addPackage(clone.$target);.
4bf80 7d 0a 7d 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 6c }.}.....public.function.uninstal
4bfa0 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 61 63 65 20 24 l(InstalledRepositoryInterface.$
4bfc0 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 6b 61 67 65 29 repo,.PackageInterface.$package)
4bfe0 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 70 61 63 6b 61 .{.if.(!$repo->hasPackage($packa
4c000 67 65 29 29 20 7b 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 ge)).{...return;.throw.new.\Inva
4c020 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 20 69 73 lidArgumentException('Package.is
4c040 20 6e 6f 74 20 69 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 24 .not.installed:.'.$package);.}.$
4c060 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 65 29 3b 0a 7d repo->removePackage($package);.}
4c080 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 50 .....public.function.getInstallP
4c0a0 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 0a 7b ath(PackageInterface.$package).{
4c0c0 0a 24 74 61 72 67 65 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 .$targetDir.=.$package->getTarge
4c0e0 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 tDir();..return.$package->getPre
4c100 74 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 ttyName()...($targetDir.?.'/'.$t
4c120 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a argetDir.:.'');.}.}.<?php.......
4c140 0a 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 .....namespace.Composer\Installe
4c160 72 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 49 6e 73 74 r;..use.Composer\Repository\Inst
4c180 61 6c 6c 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 alledRepositoryInterface;.use.Co
4c1a0 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;
4c1c0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 .......class.MetapackageInstalle
4c1e0 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 61 63 65 0a r.implements.InstallerInterface.
4c200 7b 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 {....public.function.supports($p
4c220 61 63 6b 61 67 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 ackageType).{.return.$packageTyp
4c240 65 20 3d 3d 3d 20 27 6d 65 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 e.===.'metapackage';.}.....publi
4c260 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 6c 65 64 c.function.isInstalled(Installed
4c280 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
4c2a0 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 6e 20 24 geInterface.$package).{.return.$
4c2c0 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 3b 0a 7d 0a 0a 0a repo->hasPackage($package);.}...
4c2e0 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 6c ..public.function.install(Instal
4c300 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
4c320 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 72 65 70 6f ckageInterface.$package).{.$repo
4c340 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 0a ->addPackage(clone.$package);.}.
4c360 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
4c380 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
4c3a0 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
4c3c0 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 65 70 6f eInterface.$target).{.if.(!$repo
4c3e0 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 6f 77 20 ->hasPackage($initial)).{.throw.
4c400 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 27 50 new.\InvalidArgumentException('P
4c420 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 6e 69 74 ackage.is.not.installed:.'.$init
4c440 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 28 24 69 ial);.}..$repo->removePackage($i
4c460 6e 69 74 69 61 6c 29 3b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 nitial);.$repo->addPackage(clone
4c480 20 24 74 61 72 67 65 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 .$target);.}.....public.function
4c4a0 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 6e .uninstall(InstalledRepositoryIn
4c4c0 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.
4c4e0 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 $package).{.if.(!$repo->hasPacka
4c500 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 74 68 72 6f 77 20 ge($package)).{...return;.throw.
4c520 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 27 50 new.\InvalidArgumentException('P
4c540 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 70 61 63 6b ackage.is.not.installed:.'.$pack
4c560 61 67 65 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 28 24 70 age);.}..$repo->removePackage($p
4c580 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 6f 6e 20 67 ackage);.}.....public.function.g
4c5a0 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 63 65 20 24 etInstallPath(PackageInterface.$
4c5c0 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a package).{.return.'';.}.}.<?php.
4c5e0 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 49 6e ...........namespace.Composer\In
4c600 73 74 61 6c 6c 65 72 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 staller;..use.Composer\IO\IOInte
4c620 72 66 61 63 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 rface;.use.Composer\Composer;.us
4c640 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 65 61 72 50 61 63 6b 61 67 e.Composer\Downloader\PearPackag
4c660 65 45 78 74 72 61 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 eExtractor;.use.Composer\Reposit
4c680 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 63 65 ory\InstalledRepositoryInterface
4c6a0 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 6e ;.use.Composer\Package\PackageIn
4c6c0 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 49 6e 73 74 61 6c terface;........class.PearInstal
4c6e0 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a ler.extends.LibraryInstaller.{..
4c700 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
4c720 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d t(IOInterface.$io,.Composer.$com
4c740 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b poser,.$type.=.'pear-library').{
4c760 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f .parent::__construct($io,.$compo
4c780 73 65 72 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ser,.$type);.}.....public.functi
4c7a0 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 6e 74 on.update(InstalledRepositoryInt
4c7c0 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 24 erface.$repo,.PackageInterface.$
4c7e0 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 67 65 initial,.PackageInterface.$targe
4c800 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e t).{.$this->uninstall($repo,.$in
4c820 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 itial);.$this->install($repo,.$t
4c840 61 72 67 65 74 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 6e arget);.}..protected.function.in
4c860 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b stallCode(PackageInterface.$pack
4c880 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b age).{.parent::installCode($pack
4c8a0 61 67 65 29 3b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 age);.parent::initializeBinDir()
4c8c0 3b 0a 0a 24 69 73 57 69 6e 64 6f 77 73 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e ;..$isWindows.=.defined('PHP_WIN
4c8e0 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 3f 20 74 72 75 65 20 3a 20 66 61 DOWS_VERSION_BUILD').?.true.:.fa
4c900 6c 73 65 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 2e 20 lse;.$php_bin.=.$this->binDir...
4c920 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 61 74 ($isWindows.?.'/composer-php.bat
4c940 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 50 '.:.'/composer-php');..$installP
4c960 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 70 61 63 ath.=.$this->getInstallPath($pac
4c980 6b 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 kage);.$vars.=.array(.'os'.=>.$i
4c9a0 73 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 sWindows.?.'windows'.:.'linux',.
4c9c0 27 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 'php_bin'.=>.$php_bin,.'pear_php
4c9e0 27 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 '.=>.$installPath,.'php_dir'.=>.
4ca00 24 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 $installPath,.'bin_dir'.=>.$inst
4ca20 61 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 allPath...'/bin',.'data_dir'.=>.
4ca40 24 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 $installPath...'/data',.'version
4ca60 27 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 '.=>.$package->getPrettyVersion(
4ca80 29 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 ),.);..$packageArchive.=.$this->
4caa0 67 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 getInstallPath($package).'/'.pat
4cac0 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 20 50 41 hinfo($package->getDistUrl(),.PA
4cae0 54 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 THINFO_BASENAME);.$pearExtractor
4cb00 20 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 .=.new.PearPackageExtractor($pac
4cb20 6b 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 kageArchive);.$pearExtractor->ex
4cb40 74 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 tractTo($this->getInstallPath($p
4cb60 61 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 ackage),.array('php'.=>.'/',.'sc
4cb80 72 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 ript'.=>.'/bin',.'data'.=>.'/dat
4cba0 61 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 a'),.$vars);..if.($this->io->isV
4cbc0 65 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 erbose()).{.$this->io->write('..
4cbe0 20 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 ..Cleaning.up');.}.unlink($packa
4cc00 67 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 geArchive);.}..protected.functio
4cc20 6e 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 n.getBinaries(PackageInterface.$
4cc40 70 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 package).{.$binariesPath.=.$this
4cc60 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 20 2e 20 27 2f 62 ->getInstallPath($package)...'/b
4cc80 69 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 in/';.$binaries.=.array();.if.(f
4cca0 69 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 ile_exists($binariesPath)).{.for
4ccc0 65 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 each.(new.\FilesystemIterator($b
4cce0 69 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 inariesPath,.\FilesystemIterator
4cd00 3a 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 ::KEY_AS_FILENAME.|.\FilesystemI
4cd20 74 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 terator::CURRENT_AS_FILEINFO).as
4cd40 20 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 .$fileName.=>.$value).{.if.(!$va
4cd60 6c 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 lue->isDir()).{.$binaries[].=.'b
4cd80 69 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 in/'.$fileName;.}.}.}..return.$b
4cda0 69 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 inaries;.}..protected.function.i
4cdc0 6e 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 nitializeBinDir().{.parent::init
4cde0 69 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 ializeBinDir();.file_put_content
4ce00 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 27 2c s($this->binDir.'/composer-php',
4ce20 20 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 .$this->generateUnixyPhpProxyCod
4ce40 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 2e 27 2f 63 6f 6d 70 e());.chmod($this->binDir.'/comp
4ce60 6f 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 oser-php',.0777);.file_put_conte
4ce80 6e 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 nts($this->binDir.'/composer-php
4cea0 2e 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 .bat',.$this->generateWindowsPhp
4cec0 50 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 ProxyCode());.chmod($this->binDi
4cee0 72 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 r.'/composer-php.bat',.0777);.}.
4cf00 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 64 6f 77 .private.function.generateWindow
4cf20 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 sPhpProxyCode().{.return."@echo.
4cf40 6f 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 off\r\n"..."setlocal.enabledelay
4cf60 65 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 edexpansion\r\n"..."set.BIN_DIR=
4cf80 25 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 %~dp0\r\n"..."set.VENDOR_DIR=%BI
4cfa0 4e 5f 44 49 52 25 2e 2e 5c 5c 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 73 65 74 20 44 49 52 53 3d N_DIR%..\\\r\n"..."....set.DIRS=
4cfc0 2e 5c 72 5c 6e 22 20 2e 0a 22 46 4f 52 20 2f 44 20 25 25 56 20 49 4e 20 28 25 56 45 4e 44 4f 52 .\r\n"..."FOR./D.%%V.IN.(%VENDOR
4cfe0 5f 44 49 52 25 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 46 4f 52 20 2f 44 20 _DIR%*).DO.(\r\n"..."....FOR./D.
4d000 25 25 50 20 49 4e 20 28 25 25 56 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 %%P.IN.(%%V\\*).DO.(\r\n"..."...
4d020 20 20 20 20 20 73 65 74 20 44 49 52 53 3d 21 44 49 52 53 21 3b 25 25 7e 66 50 5c 72 5c 6e 22 20 .....set.DIRS=!DIRS!;%%~fP\r\n".
4d040 2e 0a 22 20 20 20 20 29 5c 72 5c 6e 22 20 2e 0a 22 29 5c 72 5c 6e 22 20 2e 0a 22 70 68 70 2e 65 .."....)\r\n"...")\r\n"..."php.e
4d060 78 65 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 21 44 49 52 53 21 20 25 2a 5c 72 5c 6e xe.-d.include_path=!DIRS!.%*\r\n
4d080 22 3b 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 55 ";.}..private.function.generateU
4d0a0 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 0a 22 23 21 2f nixyPhpProxyCode().{.return."#!/
4d0c0 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 49 52 3d 60 70 77 64 usr/bin/env.sh\n".."SRC_DIR=`pwd
4d0e0 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 28 72 65 61 64 6c 69 `\n".."BIN_DIR=`dirname.$(readli
4d100 6e 6b 20 2d 66 20 24 30 29 60 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 49 52 3d 60 64 69 72 6e nk.-f.$0)`\n".."VENDOR_DIR=`dirn
4d120 61 6d 65 20 5c 24 42 49 4e 5f 44 49 52 60 5c 6e 22 2e 0a 22 63 64 20 5c 24 42 49 4e 5f 44 49 52 ame.\$BIN_DIR`\n".."cd.\$BIN_DIR
4d140 5c 6e 22 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 \n".."DIRS=\"\"\n".."for.vendor.
4d160 69 6e 20 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 in.\$VENDOR_DIR/*;.do\n".."....i
4d180 66 20 5b 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 f.[.-d.\"\$vendor\".];.then\n"..
4d1a0 22 20 20 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 "........for.package.in.\$vendor
4d1c0 2f 2a 3b 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 /*;.do\n".."............if.[.-d.
4d1e0 5c 22 5c 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 \"\$package\".];.then\n"..".....
4d200 20 20 20 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 ...........DIRS=\"\${DIRS}:\${pa
4d220 63 6b 61 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 ckage}\"\n".."............fi\n".
4d240 0a 22 20 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 ."........done\n".."....fi\n".."
4d260 64 6f 6e 65 5c 6e 22 2e 0a 22 63 64 20 5c 24 53 52 43 5f 44 49 52 5c 6e 22 2e 0a 22 60 77 68 69 done\n".."cd.\$SRC_DIR\n".."`whi
4d280 63 68 20 70 68 70 60 20 2d 64 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c 24 44 49 52 ch.php`.-d.include_path=\".\$DIR
4d2a0 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 0a 0a 0a S\".$@\n";.}.}.<?php............
4d2c0 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 75 namespace.Composer\Installer;..u
4d2e0 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
4d300 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 5c 44 6f face;.use.Composer\Downloader\Do
4d320 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 65 70 6f wnloadManager;.use.Composer\Repo
4d340 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 65 72 66 sitory\InstalledRepositoryInterf
4d360 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 61 6c 6c ace;........class.ProjectInstall
4d380 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 61 63 65 er.implements.InstallerInterface
4d3a0 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 61 74 65 .{.private.$installPath;.private
4d3c0 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 6e 63 74 .$downloadManager;..public.funct
4d3e0 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 20 44 6f ion.__construct($installPath,.Do
4d400 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 6e 73 74 wnloadManager.$dm).{.$this->inst
4d420 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 2d 3e 64 allPath.=.$installPath;.$this->d
4d440 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 0a 0a 70 ownloadManager.=.$dm;.}........p
4d460 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 65 ublic.function.supports($package
4d480 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 62 6c 69 Type).{.return.true;.}.....publi
4d4a0 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 6c 65 64 c.function.isInstalled(Installed
4d4c0 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
4d4e0 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 6e 20 66 geInterface.$package).{.return.f
4d500 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 6e 73 74 alse;.}.....public.function.inst
4d520 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 61 63 65 all(InstalledRepositoryInterface
4d540 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 6b 61 67 .$repo,.PackageInterface.$packag
4d560 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 73 74 61 e).{.$installPath.=.$this->insta
4d580 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 61 6c 6c llPath;.if.(file_exists($install
4d5a0 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 67 75 6d Path)).{.throw.new.\InvalidArgum
4d5c0 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 72 79 20 entException("Project.directory.
4d5e0 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 29 3b 0a $installPath.already.exists.");.
4d600 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 6e 73 74 }.if.(!file_exists(dirname($inst
4d620 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 69 64 41 allPath))).{.throw.new.\InvalidA
4d640 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 74 20 22 rgumentException("Project.root."
4d660 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 64 6f 65 ...dirname($installPath)...".doe
4d680 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 61 6c 6c s.not.exist.");.}.mkdir($install
4d6a0 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 61 6e 61 Path,.0777);.$this->downloadMana
4d6c0 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 61 6c 6c ger->download($package,.$install
4d6e0 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 75 70 64 Path);.}.....public.function.upd
4d700 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 61 63 65 ate(InstalledRepositoryInterface
4d720 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 74 69 61 .$repo,.PackageInterface.$initia
4d740 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 7b 0a 74 l,.PackageInterface.$target).{.t
4d760 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
4d780 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 62 6c 69 on("not.supported");.}.....publi
4d7a0 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 65 c.function.uninstall(InstalledRe
4d7c0 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 65 positoryInterface.$repo,.Package
4d7e0 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 65 77 20 Interface.$package).{.throw.new.
4d800 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 74 20 73 \InvalidArgumentException("not.s
4d820 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 75 6e 63 upported");.}........public.func
4d840 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 72 tion.getInstallPath(PackageInter
4d860 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 2d 3e 69 face.$package).{.return.$this->i
4d880 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 0a 0a 0a nstallPath;.}.}.<?php...........
4d8a0 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;..
4d8c0 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
4d8e0 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
4d900 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 75 73 65 \Downloader\DownloadManager;.use
4d920 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
4d940 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\
4d960 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
4d980 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 0a 0a 63 mposer\Util\Filesystem;........c
4d9a0 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 6e 74 73 lass.LibraryInstaller.implements
4d9c0 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 65 64 20 .InstallerInterface.{.protected.
4d9e0 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 69 72 3b $composer;.protected.$vendorDir;
4da00 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 20 24 64 .protected.$binDir;.protected.$d
4da20 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 3b 0a 70 ownloadManager;.protected.$io;.p
4da40 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 6c 65 73 rotected.$type;.protected.$files
4da60 79 73 74 65 6d 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 ystem;........public.function.__
4da80 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 6d 70 6f construct(IOInterface.$io,.Compo
4daa0 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 61 72 79 27 ser.$composer,.$type.=.'library'
4dac0 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 73 65 72 3b ).{.$this->composer.=.$composer;
4dae0 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 6f 6d 70 6f .$this->downloadManager.=.$compo
4db00 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 74 68 69 73 ser->getDownloadManager();.$this
4db20 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 79 70 65 3b ->io.=.$io;.$this->type.=.$type;
4db40 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 6c 65 73 79 ..$this->filesystem.=.new.Filesy
4db60 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 74 72 69 6d stem();.$this->vendorDir.=.rtrim
4db80 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 28 27 76 65 ($composer->getConfig()->get('ve
4dba0 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 44 69 72 20 ndor-dir'),.'/');.$this->binDir.
4dbc0 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 28 29 2d 3e =.rtrim($composer->getConfig()->
4dbe0 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 70 75 62 6c get('bin-dir'),.'/');.}.....publ
4dc00 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
4dc20 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 20 24 74 68 e).{.return.$packageType.===.$th
4dc40 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 74 79 70 65 is->type.||.null.===.$this->type
4dc60 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 73 74 61 6c ;.}.....public.function.isInstal
4dc80 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 61 63 65 led(InstalledRepositoryInterface
4dca0 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 6b 61 67 .$repo,.PackageInterface.$packag
4dcc0 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 65 28 24 70 e).{.return.$repo->hasPackage($p
4dce0 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 2d 3e 67 65 ackage).&&.is_readable($this->ge
4dd00 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 0a 0a 0a 70 tInstallPath($package));.}.....p
4dd20 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
4dd40 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
4dd60 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 73 2d 3e 69 geInterface.$package).{.$this->i
4dd80 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 6f 61 64 50 nitializeVendorDir();.$downloadP
4dda0 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 70 61 63 ath.=.$this->getInstallPath($pac
4ddc0 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 64 6f 77 6e kage);....if.(!is_readable($down
4dde0 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 67 65 28 24 loadPath).&&.$repo->hasPackage($
4de00 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 61 72 69 65 package)).{.$this->removeBinarie
4de20 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 6c 6c 43 6f s($package);.}..$this->installCo
4de40 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 42 69 6e 61 de($package);.$this->installBina
4de60 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 68 61 73 50 ries($package);.if.(!$repo->hasP
4de80 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 64 64 50 61 ackage($package)).{.$repo->addPa
4dea0 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 0a 0a 0a 70 ckage(clone.$package);.}.}.....p
4dec0 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 6c 65 64 52 ublic.function.update(InstalledR
4dee0 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
4df00 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
4df20 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 3e 68 61 73 rface.$target).{.if.(!$repo->has
4df40 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 65 77 20 5c Package($initial)).{.throw.new.\
4df60 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 61 67 InvalidArgumentException('Packag
4df80 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 61 6c 29 3b e.is.not.installed:.'.$initial);
4dfa0 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 69 72 28 29 .}..$this->initializeVendorDir()
4dfc0 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 69 74 69 61 ;..$this->removeBinaries($initia
4dfe0 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 61 6c 2c 20 l);.$this->updateCode($initial,.
4e000 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 72 69 65 73 $target);.$this->installBinaries
4e020 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 61 67 65 28 ($target);.$repo->removePackage(
4e040 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 67 $initial);.if.(!$repo->hasPackag
4e060 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 28 e($target)).{.$repo->addPackage(
4e080 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 66 clone.$target);.}.}.....public.f
4e0a0 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 73 unction.uninstall(InstalledRepos
4e0c0 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 74 itoryInterface.$repo,.PackageInt
4e0e0 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 68 erface.$package).{.if.(!$repo->h
4e100 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 3b asPackage($package)).{...return;
4e120 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
4e140 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 20 tion('Package.is.not.installed:.
4e160 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 68 20 3d 20 '.$package);.}..$downloadPath.=.
4e180 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 67 65 29 3b $this->getInstallPath($package);
4e1a0 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 29 3b 0a 24 ..$this->removeCode($package);.$
4e1c0 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 65 29 3b 0a this->removeBinaries($package);.
4e1e0 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 65 29 3b 0a $repo->removePackage($package);.
4e200 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 65 28 29 2c .if.(strpos($package->getName(),
4e220 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 20 64 69 72 .'/')).{.$packageVendorDir.=.dir
4e240 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 64 69 72 28 name($downloadPath);.if.(is_dir(
4e260 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 24 70 61 63 $packageVendorDir).&&.!glob($pac
4e280 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 72 28 24 70 kageVendorDir.'/*')).{.@rmdir($p
4e2a0 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 70 75 62 6c ackageVendorDir);.}.}.}.....publ
4e2c0 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 61 63 6b 61 ic.function.getInstallPath(Packa
4e2e0 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 73 2d 3e 69 geInterface.$package).{.$this->i
4e300 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 74 44 69 72 nitializeVendorDir();.$targetDir
4e320 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 0a 0a 72 65 .=.$package->getTargetDir();..re
4e340 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 69 73 2d 3e turn.($this->vendorDir.?.$this->
4e360 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 67 65 2d 3e vendorDir.'/'.:.'')...$package->
4e380 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 72 20 3f 20 getPrettyName()...($targetDir.?.
4e3a0 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 74 65 63 74 '/'.$targetDir.:.'');.}..protect
4e3c0 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 67 65 49 ed.function.installCode(PackageI
4e3e0 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 61 64 50 61 nterface.$package).{.$downloadPa
4e400 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
4e420 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 2d 3e 64 6f age);.$this->downloadManager->do
4e440 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 74 68 29 3b wnload($package,.$downloadPath);
4e460 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 65 43 6f 64 .}..protected.function.updateCod
4e480 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 63 e(PackageInterface.$initial,.Pac
4e4a0 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 77 6e 6c 6f kageInterface.$target).{.$downlo
4e4c0 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($
4e4e0 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 61 67 65 72 initial);.$this->downloadManager
4e500 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 64 6f 77 ->update($initial,.$target,.$dow
4e520 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 63 74 69 6f nloadPath);.}..protected.functio
4e540 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 65 20 24 70 n.removeCode(PackageInterface.$p
4e560 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 68 69 73 2d ackage).{.$downloadPath.=.$this-
4e580 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 74 68 69 73 >getInstallPath($package);.$this
4e5a0 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 61 63 6b 61 ->downloadManager->remove($packa
4e5c0 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 63 74 65 64 ge,.$downloadPath);.}..protected
4e5e0 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 65 49 6e 74 .function.getBinaries(PackageInt
4e600 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 61 63 6b 61 erface.$package).{.return.$packa
4e620 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 74 65 64 20 ge->getBinaries();.}..protected.
4e640 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 6b 61 67 65 function.installBinaries(Package
4e660 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 69 65 73 20 Interface.$package).{.$binaries.
4e680 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 65 29 3b 0a =.$this->getBinaries($package);.
4e6a0 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 66 6f 72 65 if.(!$binaries).{.return;.}.fore
4e6c0 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 74 68 69 73 2d ach.($binaries.as.$bin).{.$this-
4e6e0 3e 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 >initializeBinDir();.$link.=.$th
4e700 69 73 2d 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 is->binDir.'/'.basename($bin);.i
4e720 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 69 66 20 28 69 73 5f f.(file_exists($link)).{.if.(is_
4e740 6c 69 6e 6b 28 24 6c 69 6e 6b 29 29 20 7b 0a 0a 20 0a 20 0a 20 63 68 6d 6f 64 28 24 6c 69 6e 6b link($link)).{.......chmod($link
4e760 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d ,.0777.&.~umask());.}.$this->io-
4e780 3e 77 72 69 74 65 28 27 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 >write('Skipped.installation.of.
4e7a0 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d '.$bin.'.for.package.'.$package-
4e7c0 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2c 20 6e 61 6d 65 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 >getName().',.name.conflicts.wit
4e7e0 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 65 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a h.an.existing.file');.continue;.
4e800 7d 0a 24 62 69 6e 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 }.$bin.=.$this->getInstallPath($
4e820 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 24 62 69 6e 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 package).'/'.$bin;..if.(defined(
4e840 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')).{.
4e860 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 2c 20 2d 34 ..if.('.bat'.!==.substr($bin,.-4
4e880 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 6e 6b 2c 20 24 74 )).{.file_put_contents($link,.$t
4e8a0 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 65 28 24 62 69 6e his->generateUnixyProxyCode($bin
4e8c0 2c 20 24 6c 69 6e 6b 29 29 3b 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e ,.$link));.chmod($link,.0777.&.~
4e8e0 75 6d 61 73 6b 28 29 29 3b 0a 24 6c 69 6e 6b 20 2e 3d 20 27 2e 62 61 74 27 3b 0a 7d 0a 66 69 6c umask());.$link..=.'.bat';.}.fil
4e900 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e e_put_contents($link,.$this->gen
4e920 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 6e erateWindowsProxyCode($bin,.$lin
4e940 6b 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 74 k));.}.else.{.$cwd.=.getcwd();.t
4e960 72 79 20 7b 0a 0a 20 0a 20 24 72 65 6c 61 74 69 76 65 42 69 6e 20 3d 20 24 74 68 69 73 2d 3e 66 ry.{.....$relativeBin.=.$this->f
4e980 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 24 6c 69 6e ilesystem->findShortestPath($lin
4e9a0 6b 2c 20 24 62 69 6e 29 3b 0a 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b k,.$bin);.chdir(dirname($link));
4e9c0 0a 73 79 6d 6c 69 6e 6b 28 24 72 65 6c 61 74 69 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 3b 0a 7d .symlink($relativeBin,.$link);.}
4e9e0 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 .catch.(\ErrorException.$e).{.fi
4ea00 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 le_put_contents($link,.$this->ge
4ea20 6e 65 72 61 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 nerateUnixyProxyCode($bin,.$link
4ea40 29 29 3b 0a 7d 0a 63 68 64 69 72 28 24 63 77 64 29 3b 0a 7d 0a 63 68 6d 6f 64 28 24 6c 69 6e 6b ));.}.chdir($cwd);.}.chmod($link
4ea60 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 ,.0777.&.~umask());.}.}..protect
4ea80 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 ed.function.removeBinaries(Packa
4eaa0 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 69 65 geInterface.$package).{.$binarie
4eac0 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 65 29 s.=.$this->getBinaries($package)
4eae0 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 66 6f ;.if.(!$binaries).{.return;.}.fo
4eb00 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 6c 69 6e reach.($binaries.as.$bin).{.$lin
4eb20 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 k.=.$this->binDir.'/'.basename($
4eb40 62 69 6e 29 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b bin);.if.(!file_exists($link)).{
4eb60 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 7d 0a .continue;.}.unlink($link);.}.}.
4eb80 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 56 65 .protected.function.initializeVe
4eba0 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 6d 2d 3e 65 ndorDir().{.$this->filesystem->e
4ebc0 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 76 65 6e 64 nsureDirectoryExists($this->vend
4ebe0 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 65 61 6c 70 orDir);.$this->vendorDir.=.realp
4ec00 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 6f 74 65 63 ath($this->vendorDir);.}..protec
4ec20 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 72 28 29 0a ted.function.initializeBinDir().
4ec40 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 69 72 65 63 {.$this->filesystem->ensureDirec
4ec60 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 74 68 69 73 toryExists($this->binDir);.$this
4ec80 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 69 6e 44 69 ->binDir.=.realpath($this->binDi
4eca0 72 29 3b 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 r);.}..private.function.generate
4ecc0 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 6e 6b 29 0a 7b 0a WindowsProxyCode($bin,.$link).{.
4ece0 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
4ed00 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 69 66 20 ndShortestPath($link,.$bin);.if.
4ed20 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 34 29 29 20 7b 0a ('.bat'.===.substr($bin,.-4)).{.
4ed40 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 24 68 61 6e 64 $caller.=.'call';.}.else.{.$hand
4ed60 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 65 20 3d 20 66 le.=.fopen($bin,.'r');.$line.=.f
4ed80 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 6c 65 29 3b 0a gets($handle);.fclose($handle);.
4eda0 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 2f 62 69 6e 2f if.(preg_match('{^#!/(?:usr/bin/
4edc0 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 24 6c 69 6e 65 env.)?(?:[^/]+/)*(.+)$}m',.$line
4ede0 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 28 24 6d 61 74 ,.$match)).{.$caller.=.trim($mat
4ee00 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 27 70 68 70 27 ch[1]);.}.else.{.$caller.=.'php'
4ee20 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 ;.}.}..return."@echo.off\r\n".."
4ee40 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 pushd..\r\n".."cd.%~dp0\r\n".."c
4ee60 64 20 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 d.".escapeshellarg(dirname($binP
4ee80 61 74 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 ath))."\r\n".."set.BIN_TARGET=%C
4eea0 44 25 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 D%\\".basename($binPath)."\r\n".
4eec0 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 24 63 61 6c 6c 65 72 2e 22 20 5c 22 25 42 49 4e 5f 54 41 ."popd\r\n"..$caller.".\"%BIN_TA
4eee0 52 47 45 54 25 5c 22 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 RGET%\".%*\r\n";.}..private.func
4ef00 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e tion.generateUnixyProxyCode($bin
4ef20 2c 20 24 6c 69 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 ,.$link).{.$binPath.=.$this->fil
4ef40 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 24 6c 69 6e 6b 2c esystem->findShortestPath($link,
4ef60 20 24 62 69 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 .$bin);..return."#!/usr/bin/env.
4ef80 73 68 5c 6e 22 2e 0a 27 53 52 43 5f 44 49 52 3d 60 70 77 64 60 27 2e 22 5c 6e 22 2e 0a 27 63 64 sh\n"..'SRC_DIR=`pwd`'."\n"..'cd
4efa0 20 60 64 69 72 6e 61 6d 65 20 22 24 30 22 60 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 27 2e 65 73 63 .`dirname."$0"`'."\n"..'cd.'.esc
4efc0 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 22 apeshellarg(dirname($binPath))."
4efe0 5c 6e 22 2e 0a 27 42 49 4e 5f 54 41 52 47 45 54 3d 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d \n"..'BIN_TARGET=`pwd`/'.basenam
4f000 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 6e 22 2e 0a 27 63 64 20 24 53 52 43 5f 44 49 52 27 2e e($binPath)."\n"..'cd.$SRC_DIR'.
4f020 22 5c 6e 22 2e 0a 27 24 42 49 4e 5f 54 41 52 47 45 54 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d "\n"..'$BIN_TARGET."$@"'."\n";.}
4f040 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
4f060 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\
4f080 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
4f0a0 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
4f0c0 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
4f0e0 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
4f100 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;
4f120 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
4f140 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
4f160 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
4f180 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
4f1a0 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
4f1c0 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
4f1e0 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
4f200 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
4f220 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
4f240 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
4f260 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
4f280 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
4f2a0 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
4f2c0 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;.......
4f2e0 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
4f300 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
4f320 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
4f340 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
4f360 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_
4f380 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
4f3a0 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();.
4f3c0 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 49 }...........public.function.getI
4f3e0 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 73 74 72 74 6f 6c nstaller($type).{.$type.=.strtol
4f400 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 68 69 73 2d 3e 63 ower($type);..if.(isset($this->c
4f420 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 69 73 2d 3e 63 61 ache[$type])).{.return.$this->ca
4f440 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 68 69 73 2d 3e 69 che[$type];.}..foreach.($this->i
4f460 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 0a 69 66 20 28 24 nstallers.as.$installer).{.if.($
4f480 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 29 20 7b 0a 72 65 installer->supports($type)).{.re
4f4a0 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 20 24 69 6e 73 74 turn.$this->cache[$type].=.$inst
4f4c0 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 61 6c 69 64 41 72 aller;.}.}..throw.new.\InvalidAr
4f4e0 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 6e 73 74 61 6c 6c gumentException('Unknown.install
4f500 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 0a 0a 0a 0a 70 75 er.type:.'.$type);.}..........pu
4f520 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 74 61 6c 6c 65 64 blic.function.isPackageInstalled
4f540 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 24 72 (InstalledRepositoryInterface.$r
4f560 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 6b 61 67 65 29 0a epo,.PackageInterface.$package).
4f580 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 41 6c 69 61 73 50 {.if.($package.instanceof.AliasP
4f5a0 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 73 50 61 63 6b 61 ackage).{.return.$repo->hasPacka
4f5c0 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 61 63 6b 61 67 65 ge($package).&&.$this->isPackage
4f5e0 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 3e 67 65 74 41 6c Installed($repo,.$package->getAl
4f600 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 3e 67 65 74 49 6e iasOf());.}..return.$this->getIn
4f620 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 29 29 2d 3e 69 73 staller($package->getType())->is
4f640 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 3b 0a 7d 0a 0a 0a Installed($repo,.$package);.}...
4f660 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 74 65 28 52 65 70 .....public.function.execute(Rep
4f680 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 65 72 61 74 69 6f ositoryInterface.$repo,.Operatio
4f6a0 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 6d 65 74 68 6f 64 nInterface.$operation).{.$method
4f6c0 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 29 3b 0a 24 74 68 .=.$operation->getJobType();.$th
4f6e0 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 69 6f 6e 29 3b 0a is->$method($repo,.$operation);.
4f700 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 6e 73 74 61 6c 6c }........public.function.install
4f720 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 49 6e 73 74 (RepositoryInterface.$repo,.Inst
4f740 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 70 61 63 6b allOperation.$operation).{.$pack
4f760 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 28 29 3b 0a age.=.$operation->getPackage();.
4f780 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 6c 65 72 $installer.=.$this->getInstaller
4f7a0 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 61 6c 6c 65 ($package->getType());.$installe
4f7c0 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 29 3b 0a 24 74 68 r->install($repo,.$package);.$th
4f7e0 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 29 3b 0a 7d 0a 0a is->notifyInstall($package);.}..
4f800 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 74 65 28 52 65 70 ......public.function.update(Rep
4f820 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 64 61 74 65 4f 70 ositoryInterface.$repo,.UpdateOp
4f840 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 74 69 61 6c 20 3d eration.$operation).{.$initial.=
4f860 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 67 65 28 29 .$operation->getInitialPackage()
4f880 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 74 54 61 72 67 65 ;.$target.=.$operation->getTarge
4f8a0 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 3d 20 24 69 6e 69 tPackage();..$initialType.=.$ini
4f8c0 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 70 65 20 3d 20 24 tial->getType();.$targetType.=.$
4f8e0 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 6e 69 74 69 61 6c target->getType();..if.($initial
4f900 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 6e 73 74 61 6c 6c Type.===.$targetType).{.$install
4f920 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 69 6e 69 74 69 61 er.=.$this->getInstaller($initia
4f940 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 28 24 72 65 70 6f lType);.$installer->update($repo
4f960 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 73 2d 3e 6e 6f 74 ,.$initial,.$target);.$this->not
4f980 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 65 20 7b 0a 24 74 ifyInstall($target);.}.else.{.$t
4f9a0 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 54 79 70 65 29 2d his->getInstaller($initialType)-
4f9c0 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 29 3b 0a 24 74 68 >uninstall($repo,.$initial);.$th
4f9e0 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 70 65 29 2d 3e 69 is->getInstaller($targetType)->i
4fa00 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 7d 0a 0a 0a 0a 0a nstall($repo,.$target);.}.}.....
4fa20 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 6c 6c 28 52 65 70 ...public.function.uninstall(Rep
4fa40 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 69 6e 73 74 61 6c ositoryInterface.$repo,.Uninstal
4fa60 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 70 61 63 6b 61 67 lOperation.$operation).{.$packag
4fa80 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 28 29 3b 0a 24 69 e.=.$operation->getPackage();.$i
4faa0 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($
4fac0 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 61 6c 6c 65 72 2d package->getType());.$installer-
4fae0 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 29 3b 0a 7d 0a 0a >uninstall($repo,.$package);.}..
4fb00 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 41 6c 69 61 73 49 ......public.function.markAliasI
4fb20 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 63 65 20 24 72 65 nstalled(RepositoryInterface.$re
4fb40 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 61 74 69 6f 6e 20 po,.MarkAliasInstalledOperation.
4fb60 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 6f 70 65 72 61 74 $operation).{.$package.=.$operat
4fb80 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 72 65 70 6f 2d 3e ion->getPackage();..if.(!$repo->
4fba0 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
4fbc0 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);.}.}..
4fbe0 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 41 6c 69 61 73 55 ......public.function.markAliasU
4fc00 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 66 61 63 65 20 24 ninstalled(RepositoryInterface.$
4fc20 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 4f 70 65 72 61 74 repo,.MarkAliasUninstalledOperat
4fc40 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 6f 70 ion.$operation).{.$package.=.$op
4fc60 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 65 70 6f 2d 3e 72 eration->getPackage();..$repo->r
4fc80 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 0a 0a emovePackage($package);.}.......
4fca0 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 50 61 74 68 28 .public.function.getInstallPath(
4fcc0 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 69 6e PackageInterface.$package).{.$in
4fce0 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 70 staller.=.$this->getInstaller($p
4fd00 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 6e 20 24 69 6e 73 ackage->getType());..return.$ins
4fd20 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 63 6b 61 67 65 29 taller->getInstallPath($package)
4fd40 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 66 79 49 6e 73 74 ;.}..private.function.notifyInst
4fd60 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 61 67 65 29 0a 7b all(PackageInterface.$package).{
4fd80 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 72 79 28 29 20 69 .if.($package->getRepository().i
4fda0 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 74 6f 72 79 49 6e nstanceof.NotifiableRepositoryIn
4fdc0 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 70 6f 73 69 74 6f terface).{.$package->getReposito
4fde0 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 67 65 29 3b 0a 7d ry()->notifyInstall($package);.}
4fe00 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.
4fe20 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
4fe40 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 20 r\Package\PackageInterface;.use.
4fe60 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 70 Composer\Repository\InstalledRep
4fe80 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 6e 74 65 72 66 61 ositoryInterface;........interfa
4fea0 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 0a 0a 0a 0a 70 75 ce.InstallerInterface.{.......pu
4fec0 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 65 54 blic.function.supports($packageT
4fee0 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 74 69 6f 6e 20 69 ype);..........public.function.i
4ff00 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 74 6f 72 79 49 6e sInstalled(InstalledRepositoryIn
4ff20 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.
4ff40 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 6f $package);........public.functio
4ff60 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 74 n.install(InstalledRepositoryInt
4ff80 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 24 erface.$repo,.PackageInterface.$
4ffa0 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 20 66 75 6e 63 74 package);...........public.funct
4ffc0 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 6e ion.update(InstalledRepositoryIn
4ffe0 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.
50000 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 67 $initial,.PackageInterface.$targ
50020 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 6e 20 75 6e 69 6e et);........public.function.unin
50040 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 61 stall(InstalledRepositoryInterfa
50060 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 6b ce.$repo,.PackageInterface.$pack
50080 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 6f 6e 20 67 65 74 age);........public.function.get
500a0 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 63 65 20 24 70 61 InstallPath(PackageInterface.$pa
500c0 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 0a 6e 61 6d 65 73 ckage);.}.<?php............names
500e0 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 6f pace.Composer\Installer;..use.Co
50100 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 4f mposer\Composer;.use.Composer\IO
50120 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 41 75 74 6f 6c \IOInterface;.use.Composer\Autol
50140 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 20 43 6f 6d 70 6f oad\AutoloadGenerator;.use.Compo
50160 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 70 6f 73 69 74 6f ser\Repository\InstalledReposito
50180 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 50 61 63 6b 61 67 ryInterface;.use.Composer\Packag
501a0 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 61 73 73 20 e\PackageInterface;.......class.
501c0 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 20 4c 69 62 72 61 InstallerInstaller.extends.Libra
501e0 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 74 61 6c 6c 61 74 ryInstaller.{.private.$installat
50200 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 20 24 63 6c 61 73 ionManager;.private.static.$clas
50220 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 sCounter.=.0;......public.functi
50240 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,.
50260 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 27 6c 69 62 Composer.$composer,.$type.=.'lib
50280 72 61 72 79 27 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 69 6f rary').{.parent::__construct($io
502a0 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 ,.$composer,.'composer-installer
502c0 27 29 3b 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 20 3d ');.$this->installationManager.=
502e0 20 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
50300 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 er();..foreach.($composer->getRe
50320 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 65 70 6f 73 positoryManager()->getLocalRepos
50340 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 itories().as.$repo).{.foreach.($
50360 72 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 61 67 65 29 repo->getPackages().as.$package)
50380 20 7b 0a 69 66 20 28 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 3d 3d 3d 20 .{.if.('composer-installer'.===.
503a0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 $package->getType()).{.$this->re
503c0 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d gisterInstaller($package);.}.}.}
503e0 0a 7d 0a 0a 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 .}.....public.function.install(I
50400 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 24 72 65 70 nstalledRepositoryInterface.$rep
50420 6f 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 o,.PackageInterface.$package).{.
50440 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 $extra.=.$package->getExtra();.i
50460 66 20 28 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 f.(empty($extra['class'])).{.thr
50480 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
504a0 28 27 45 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 70 61 63 6b ('Error.while.installing.'.$pack
504c0 61 67 65 2d 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 age->getPrettyName().',.composer
504e0 2d 69 6e 73 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 -installer.packages.should.have.
50500 61 20 63 6c 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 a.class.defined.in.their.extra.k
50520 65 79 20 74 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 69 ey.to.be.usable.');.}..parent::i
50540 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e nstall($repo,.$package);.$this->
50560 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 65 29 3b 0a 7d 0a 0a registerInstaller($package);.}..
50580 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
505a0 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
505c0 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
505e0 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 74 Interface.$target).{.$extra.=.$t
50600 61 72 67 65 74 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 arget->getExtra();.if.(empty($ex
50620 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 tra['class'])).{.throw.new.\Unex
50640 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c pectedValueException('Error.whil
50660 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 e.installing.'.$target->getPrett
50680 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 20 70 61 yName().',.composer-installer.pa
506a0 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e ckages.should.have.a.class.defin
506c0 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 ed.in.their.extra.key.to.be.usab
506e0 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 75 70 64 61 74 65 28 24 72 65 70 6f 2c 20 le.');.}..parent::update($repo,.
50700 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 $initial,.$target);.$this->regis
50720 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 terInstaller($target);.}..privat
50740 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 49 6e 73 74 61 6c 6c 65 72 28 50 61 63 e.function.registerInstaller(Pac
50760 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 64 6f 77 6e 6c kageInterface.$package).{.$downl
50780 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(
507a0 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 $package);..$extra.=.$package->g
507c0 65 74 45 78 74 72 61 28 29 3b 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 etExtra();.$classes.=.is_array($
507e0 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 extra['class']).?.$extra['class'
50800 5d 20 3a 20 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a 0a 24 67 65 ].:.array($extra['class']);..$ge
50820 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 6f 72 3b nerator.=.new.AutoloadGenerator;
50840 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 .$map.=.$generator->parseAutoloa
50860 64 73 28 61 72 72 61 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f ds(array(array($package,.$downlo
50880 61 64 50 61 74 68 29 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 adPath)));.$classLoader.=.$gener
508a0 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 63 6c 61 73 73 ator->createLoader($map);.$class
508c0 4c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 Loader->register();..foreach.($c
508e0 6c 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 73 73 5f 65 78 lasses.as.$class).{.if.(class_ex
50900 69 73 74 73 28 24 63 6c 61 73 73 2c 20 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 65 20 3d 20 66 ists($class,.false)).{.$code.=.f
50920 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 66 ile_get_contents($classLoader->f
50940 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 72 65 67 5f 72 indFile($class));.$code.=.preg_r
50960 65 70 6c 61 63 65 28 27 7b 5e 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 2c 20 27 63 6c eplace('{^class\s+(\S+)}mi',.'cl
50980 61 73 73 20 24 31 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c 61 73 ass.$1_composer_tmp'.self::$clas
509a0 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 27 3f 3e 27 2e 24 63 6f 64 sCounter,.$code);.eval('?>'.$cod
509c0 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 e);.$class..=.'_composer_tmp'.se
509e0 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 3b 0a 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 lf::$classCounter;.self::$classC
50a00 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 24 63 ounter++;.}..$installer.=.new.$c
50a20 6c 61 73 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 lass($this->io,.$this->composer)
50a40 3b 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 61 64 ;.$this->installationManager->ad
50a60 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f dInstaller($installer);.}.}.}.<?
50a80 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
50aa0 72 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 r\Console;..use.Symfony\Componen
50ac0 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 42 61 73 65 41 70 70 t\Console\Application.as.BaseApp
50ae0 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\
50b00 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 73 Console\Input\InputInterface;.us
50b20 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
50b40 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 6e 79 5c ut\OutputInterface;.use.Symfony\
50b60 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 43 6f 6e 73 6f 6c 65 Component\Console\Output\Console
50b80 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 6e 65 6e 74 5c 43 6f Output;.use.Symfony\Component\Co
50ba0 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 3b nsole\Formatter\OutputFormatter;
50bc0 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 46 .use.Symfony\Component\Console\F
50be0 6f 72 6d 61 74 74 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 ormatter\OutputFormatterStyle;.u
50c00 73 65 20 43 6f 6d 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 se.Composer\Command;.use.Compose
50c20 72 5c 43 6f 6d 6d 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 r\Command\Helper\DialogHelper;.u
50c40 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 73 se.Composer\Composer;.use.Compos
50c60 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 49 4f 5c 49 4f 49 6e er\Factory;.use.Composer\IO\IOIn
50c80 74 65 72 66 61 63 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 terface;.use.Composer\IO\Console
50ca0 49 4f 3b 0a 75 73 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 IO;.use.Composer\Util\ErrorHandl
50cc0 65 72 3b 0a 0a 0a 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 er;.........class.Application.ex
50ce0 74 65 6e 64 73 20 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 tends.BaseApplication.{....prote
50d00 63 74 65 64 20 24 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 cted.$composer;.....protected.$i
50d20 6f 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 o;..public.function.__construct(
50d40 29 0a 7b 0a 45 72 72 6f 72 48 61 6e 64 6c 65 72 3a 3a 72 65 67 69 73 74 65 72 28 29 3b 0a 70 61 ).{.ErrorHandler::register();.pa
50d60 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 27 43 6f 6d 70 6f 73 65 72 27 2c 20 43 6f rent::__construct('Composer',.Co
50d80 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 mposer::VERSION);.}.....public.f
50da0 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 6e 70 75 unction.run(InputInterface.$inpu
50dc0 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 6f 75 74 70 75 t.=.null,.OutputInterface.$outpu
50de0 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 6f 75 74 70 75 74 t.=.null).{.if.(null.===.$output
50e00 29 20 7b 0a 24 73 74 79 6c 65 73 5b 27 68 69 67 68 6c 69 67 68 74 27 5d 20 3d 20 6e 65 77 20 4f ).{.$styles['highlight'].=.new.O
50e20 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 72 65 64 27 29 3b 0a 24 73 74 79 utputFormatterStyle('red');.$sty
50e40 6c 65 73 5b 27 77 61 72 6e 69 6e 67 27 5d 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 les['warning'].=.new.OutputForma
50e60 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 79 65 6c 6c 6f 77 27 29 3b 0a 24 66 tterStyle('black',.'yellow');.$f
50e80 6f 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e ormatter.=.new.OutputFormatter(n
50ea0 75 6c 6c 2c 20 24 73 74 79 6c 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e ull,.$styles);.$output.=.new.Con
50ec0 73 6f 6c 65 4f 75 74 70 75 74 28 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 soleOutput(ConsoleOutput::VERBOS
50ee0 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d ITY_NORMAL,.null,.$formatter);.}
50f00 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 ..return.parent::run($input,.$ou
50f20 74 70 75 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 64 6f 52 tput);.}.....public.function.doR
50f40 75 6e 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 un(InputInterface.$input,.Output
50f60 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d Interface.$output).{.$this->io.=
50f80 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 .new.ConsoleIO($input,.$output,.
50fa0 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 $this->getHelperSet());..if.(ver
50fc0 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 32 sion_compare(PHP_VERSION,.'5.3.2
50fe0 27 2c 20 27 3c 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 ',.'<')).{.$output->writeln('<wa
51000 72 6e 69 6e 67 3e 43 6f 6d 70 6f 73 65 72 20 6f 6e 6c 79 20 6f 66 66 69 63 69 61 6c 6c 79 20 73 rning>Composer.only.officially.s
51020 75 70 70 6f 72 74 73 20 50 48 50 20 35 2e 33 2e 32 20 61 6e 64 20 61 62 6f 76 65 2c 20 79 6f 75 upports.PHP.5.3.2.and.above,.you
51040 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 65 6e 63 6f 75 6e 74 65 72 20 70 72 6f 62 .will.most.likely.encounter.prob
51060 6c 65 6d 73 20 77 69 74 68 20 79 6f 75 72 20 50 48 50 20 27 2e 50 48 50 5f 56 45 52 53 49 4f 4e lems.with.your.PHP.'.PHP_VERSION
51080 2e 27 2c 20 75 70 67 72 61 64 69 6e 67 20 69 73 20 73 74 72 6f 6e 67 6c 79 20 72 65 63 6f 6d 6d .',.upgrading.is.strongly.recomm
510a0 65 6e 64 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e ended.</warning>');.}..if.(defin
510c0 65 64 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 29 20 ed('COMPOSER_DEV_WARNING_TIME').
510e0 26 26 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 70 75 74 29 &&.$this->getCommandName($input)
51100 20 21 3d 3d 20 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 20 7b 0a 69 66 20 28 74 69 6d 65 28 29 .!==.'self-update').{.if.(time()
51120 20 3e 20 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 29 20 7b 0a .>.COMPOSER_DEV_WARNING_TIME).{.
51140 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 27 3c 77 61 72 6e 69 $output->writeln(sprintf('<warni
51160 6e 67 3e 54 68 69 73 20 64 65 76 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 ng>This.dev.build.of.composer.is
51180 20 6f 75 74 64 61 74 65 64 2c 20 70 6c 65 61 73 65 20 72 75 6e 20 22 25 73 20 73 65 6c 66 2d 75 .outdated,.please.run."%s.self-u
511a0 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e pdate".to.get.the.latest.version
511c0 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 .</warning>',.$_SERVER['PHP_SELF
511e0 27 5d 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 ']));.}.}..return.parent::doRun(
51200 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $input,.$output);.}......public.
51220 66 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 function.getComposer($required.=
51240 20 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 .true).{.if.(null.===.$this->com
51260 70 6f 73 65 72 29 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 poser).{.try.{.$this->composer.=
51280 20 46 61 63 74 6f 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 .Factory::create($this->io);.}.c
512a0 61 74 63 68 20 28 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 atch.(\InvalidArgumentException.
512c0 24 65 29 20 7b 0a 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 $e).{.if.($required).{.$this->io
512e0 2d 3e 77 72 69 74 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 ->write($e->getMessage());.exit(
51300 31 29 3b 0a 7d 0a 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 1);.}.}.}..return.$this->compose
51320 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 49 4f 28 29 r;.}.....public.function.getIO()
51340 0a 7b 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 70 72 6f 74 65 .{.return.$this->io;.}.....prote
51360 63 74 65 64 20 66 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 cted.function.getDefaultCommands
51380 28 29 0a 7b 0a 24 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 ().{.$commands.=.parent::getDefa
513a0 75 6c 74 43 6f 6d 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 ultCommands();.$commands[].=.new
513c0 20 43 6f 6d 6d 61 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 .Command\AboutCommand();.$comman
513e0 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 6f 6d 6d 61 6e ds[].=.new.Command\DependsComman
51400 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 5c 49 d();.$commands[].=.new.Command\I
51420 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 20 6e 65 77 20 nitCommand();.$commands[].=.new.
51440 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 63 6f 6d 6d 61 Command\InstallCommand();.$comma
51460 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 72 6f 6a 65 63 nds[].=.new.Command\CreateProjec
51480 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 65 77 20 43 6f tCommand();.$commands[].=.new.Co
514a0 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 6d 61 6e 64 73 mmand\UpdateCommand();.$commands
514c0 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 61 6e 64 28 29 [].=.new.Command\SearchCommand()
514e0 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 5c 56 61 6c 69 ;.$commands[].=.new.Command\Vali
51500 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 3d 20 6e 65 77 dateCommand();.$commands[].=.new
51520 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 6d 6d 61 6e 64 .Command\ShowCommand();.$command
51540 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 6d 6d 61 6e 64 s[].=.new.Command\RequireCommand
51560 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 49 ();..if.('phar:'.===.substr(__FI
51580 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 77 LE__,.0,.5)).{.$commands[].=.new
515a0 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 0a .Command\SelfUpdateCommand();.}.
515c0 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 74 .return.$commands;.}.....protect
515e0 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(
51600 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
51620 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
51640 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
51660 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
51680 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
516a0 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
516c0 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
516e0 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;
51700 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
51720 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\
51740 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
51760 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
51780 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
517a0 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
517c0 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
517e0 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
51800 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,.
51820 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 $targetDir).{.$filesystem.=.new.
51840 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 Filesystem();.$filesystem->ensur
51860 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 eDirectoryExists($config->get('v
51880 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 73 74 72 74 endor-dir'));.$vendorPath.=.strt
518a0 72 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d r(realpath($config->get('vendor-
518c0 64 69 72 27 29 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 74 61 72 67 65 74 44 69 72 20 3d dir')),.'\\',.'/');.$targetDir.=
518e0 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 3b 0a 24 66 69 .$vendorPath.'/'.$targetDir;.$fi
51900 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(
51920 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 72 65 6c 56 65 6e 64 6f 72 50 61 74 68 20 3d 20 24 $targetDir);..$relVendorPath.=.$
51940 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
51960 63 77 64 28 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 cwd(),.$vendorPath,.true);.$vend
51980 6f 72 50 61 74 68 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 orPathCode.=.$filesystem->findSh
519a0 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 ortestPathCode(realpath($targetD
519c0 69 72 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 6f 72 ir),.$vendorPath,.true);.$vendor
519e0 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 PathToTargetDirCode.=.$filesyste
51a00 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 m->findShortestPathCode($vendorP
51a20 61 74 68 2c 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 74 72 75 65 29 ath,.realpath($targetDir),.true)
51a40 3b 0a 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d ;..$appBaseDirCode.=.$filesystem
51a60 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 6e 64 6f 72 50 61 ->findShortestPathCode($vendorPa
51a80 74 68 2c 20 67 65 74 63 77 64 28 29 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 42 61 73 65 44 69 72 th,.getcwd(),.true);.$appBaseDir
51aa0 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 24 Code.=.str_replace('__DIR__',.'$
51ac0 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 3b 0a 0a 24 vendorDir',.$appBaseDirCode);..$
51ae0 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f namespacesFile.=.<<<EOF.<?php../
51b00 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 2e 70 68 70 20 67 65 6e 65 72 61 74 /.autoload_namespace.php.generat
51b20 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 20 24 76 ed.by.Composer..\$vendorDir.=.$v
51b40 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 70 70 42 endorPathCode;.\$baseDir.=.$appB
51b60 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 4f 46 3b aseDirCode;..return.array(..EOF;
51b80 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 63 6b ..$packageMap.=.$this->buildPack
51ba0 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 6d 61 ageMap($installationManager,.$ma
51bc0 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 inPackage,.$localRepo->getPackag
51be0 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 es());.$autoloads.=.$this->parse
51c00 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 0a 66 6f 72 65 61 63 68 Autoloads($packageMap);..foreach
51c20 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 .($autoloads['psr-0'].as.$namesp
51c40 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 20 ace.=>.$paths).{.$exportedPaths.
51c60 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 70 =.array();.foreach.($paths.as.$p
51c80 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d ath).{.$exportedPaths[].=.$this-
51ca0 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 72 65 6c 56 65 >getPathCode($filesystem,.$relVe
51cc0 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 3b 0a 7d ndorPath,.$vendorPath,.$path);.}
51ce0 0a 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e .$exportedPrefix.=.var_export($n
51d00 61 6d 65 73 70 61 63 65 2c 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 amespace,.true);.$namespacesFile
51d20 20 2e 3d 20 22 20 20 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 69 ..=."....$exportedPrefix.=>.";.i
51d40 66 20 28 63 6f 75 6e 74 28 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 20 3e 20 31 29 20 7b 0a f.(count($exportedPaths).>.1).{.
51d60 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c $namespacesFile..=."array(".impl
51d80 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 ode(',.',.$exportedPaths)."),\n"
51da0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 24 65 ;.}.else.{.$namespacesFile..=.$e
51dc0 78 70 6f 72 74 65 64 50 61 74 68 73 5b 30 5d 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 xportedPaths[0].",\n";.}.}.$name
51de0 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 63 6c 61 73 73 6d 61 70 spacesFile..=.");\n";..$classmap
51e00 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 File.=.<<<EOF.<?php..//.autoload
51e20 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 20 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f _classmap.php.generated.by.Compo
51e40 73 65 72 0a 0a 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 6f ser..\$vendorDir.=.$vendorPathCo
51e60 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b de;.\$baseDir.=.$appBaseDirCode;
51e80 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 ..return.array(..EOF;....$target
51ea0 44 69 72 4c 6f 61 64 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 DirLoader.=.null;.$mainAutoload.
51ec0 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 =.$mainPackage->getAutoload();.i
51ee0 66 20 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 f.($mainPackage->getTargetDir().
51f00 26 26 20 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 20 7b 0a 24 6c 65 &&.$mainAutoload['psr-0']).{.$le
51f20 76 65 6c 73 20 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 74 72 69 6d 28 73 vels.=.count(explode('/',.trim(s
51f40 74 72 74 72 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 trtr($mainPackage->getTargetDir(
51f60 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 ),.'\\',.'/'),.'/')));.$prefixes
51f80 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 .=.implode(',.',.array_map(funct
51fa0 69 6f 6e 20 28 24 70 72 65 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 ion.($prefix).{.return.var_expor
51fc0 74 28 24 70 72 65 66 69 78 2c 20 74 72 75 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 t($prefix,.true);.},.array_keys(
51fe0 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 65 $mainAutoload['psr-0'])));.$base
52000 44 69 72 46 72 6f 6d 56 65 6e 64 6f 72 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 DirFromVendorDirCode.=.$filesyst
52020 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 24 76 65 6e 64 6f 72 em->findShortestPathCode($vendor
52040 50 61 74 68 2c 20 67 65 74 63 77 64 28 29 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 Path,.getcwd(),.true);..$targetD
52060 69 72 4c 6f 61 64 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f irLoader.=.<<<EOF.....spl_autolo
52080 61 64 5f 72 65 67 69 73 74 65 72 28 66 75 6e 63 74 69 6f 6e 28 5c 24 63 6c 61 73 73 29 20 7b 0a ad_register(function(\$class).{.
520a0 20 20 20 20 20 20 20 20 5c 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 72 6f 6d 56 65 6e 64 ........\$dir.=.$baseDirFromVend
520c0 6f 72 44 69 72 43 6f 64 65 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 5c 24 70 72 65 66 69 orDirCode...'/';.........\$prefi
520e0 78 65 73 20 3d 20 61 72 72 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 20 20 20 20 20 20 20 xes.=.array($prefixes);.........
52100 66 6f 72 65 61 63 68 20 28 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 70 72 65 66 69 78 29 foreach.(\$prefixes.as.\$prefix)
52120 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 .{.............if.(0.!==.strpos(
52140 5c 24 63 6c 61 73 73 2c 20 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 \$class,.\$prefix)).{...........
52160 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 ......continue;.............}...
52180 20 20 20 20 20 20 20 20 20 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 2e 20 69 6d 70 6c 6f ..........\$path.=.\$dir...implo
521a0 64 65 28 27 2f 27 2c 20 61 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f 64 65 28 27 5c 5c 5c de('/',.array_slice(explode('\\\
521c0 5c 27 2c 20 5c 24 63 6c 61 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 2e 70 68 70 27 3b 0a \',.\$class),.$levels)).'.php';.
521e0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d 20 73 74 72 65 61 6d ............if.(!\$path.=.stream
52200 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 61 74 68 29 29 20 7b _resolve_include_path(\$path)).{
52220 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 .................return.false;..
52240 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 72 65 71 75 69 72 65 ...........}.............require
52260 20 5c 24 70 61 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 .\$path;..............return.tru
52280 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 29 3b 0a 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a e;.........}.....});...EOF;.}...
522a0 20 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 20 5c 52 .$autoloads['classmap'].=.new.\R
522c0 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 5c 52 65 ecursiveIteratorIterator(new.\Re
522e0 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 64 73 5b cursiveArrayIterator($autoloads[
52300 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 6c 6f 61 'classmap']));.foreach.($autoloa
52320 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 65 61 63 ds['classmap'].as.$dir).{.foreac
52340 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 61 70 28 h.(ClassMapGenerator::createMap(
52360 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 70 61 74 $dir).as.$class.=>.$path).{.$pat
52380 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 74 65 73 h.=.'/'.$filesystem->findShortes
523a0 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 0a 24 63 tPath(getcwd(),.$path,.true);.$c
523c0 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 70 6f 72 74 lassmapFile..=.'....'.var_export
523e0 28 24 63 6c 61 73 73 2c 20 74 72 75 65 29 2e 27 20 3d 3e 20 24 62 61 73 65 44 69 72 20 2e 20 27 ($class,.true).'.=>.$baseDir...'
52400 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 3b 0a .var_export($path,.true).",\n";.
52420 7d 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 }.}.$classmapFile..=.");\n";..$f
52440 69 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 ilesCode.=."";.$autoloads['files
52460 27 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 '].=.new.\RecursiveIteratorItera
52480 74 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 tor(new.\RecursiveArrayIterator(
524a0 24 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 $autoloads['files']));.foreach.(
524c0 24 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 $autoloads['files'].as.$function
524e0 46 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 72 65 71 75 69 File).{.$filesCode..=.'....requi
52500 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 2e 24 re.__DIR__...'..var_export('/'.$
52520 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 24 76 65 filesystem->findShortestPath($ve
52540 6e 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 2c 20 74 72 75 65 29 2e ndorPath,.$functionFile),.true).
52560 22 3b 5c 6e 22 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 ";\n";.}..file_put_contents($tar
52580 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 getDir.'/autoload_namespaces.php
525a0 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f ',.$namespacesFile);.file_put_co
525c0 6e 74 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 63 6c 61 ntents($targetDir.'/autoload_cla
525e0 73 73 6d 61 70 2e 70 68 70 27 2c 20 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 69 66 20 28 ssmap.php',.$classmapFile);.if.(
52600 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 $includePathFile.=.$this->getInc
52620 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 69 6c 65 ludePathsFile($packageMap,.$file
52640 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
52660 61 74 68 2c 20 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 ath,.$vendorPathCode,.$appBaseDi
52680 72 43 6f 64 65 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 61 72 rCode)).{.file_put_contents($tar
526a0 67 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 24 69 6e getDir.'/include_paths.php',.$in
526c0 63 6c 75 64 65 50 61 74 68 46 69 6c 65 29 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 cludePathFile);.}.file_put_conte
526e0 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 2c nts($vendorPath.'/autoload.php',
52700 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 .$this->getAutoloadFile($vendorP
52720 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 74 72 75 65 2c 20 74 72 75 65 2c 20 athToTargetDirCode,.true,.true,.
52740 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 2c 20 24 74 61 72 67 65 74 (bool).$includePathFile,.$target
52760 44 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c 65 73 43 6f 64 65 29 29 3b 0a 63 6f 70 79 28 5f 5f DirLoader,.$filesCode));.copy(__
52780 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 72 67 65 DIR__.'/ClassLoader.php',.$targe
527a0 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 70 75 62 tDir.'/ClassLoader.php');.}..pub
527c0 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 49 6e 73 lic.function.buildPackageMap(Ins
527e0 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 6e 4d 61 tallationManager.$installationMa
52800 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 50 61 63 nager,.PackageInterface.$mainPac
52820 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 61 63 6b kage,.array.$packages).{...$pack
52840 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 4d 61 70 ageMap.=.array();....$packageMap
52860 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 0a 66 [].=.array($mainPackage,.'');..f
52880 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 6b 61 67 65 29 20 7b oreach.($packages.as.$package).{
528a0 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
528c0 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 4d 61 70 ckage).{.continue;.}.$packageMap
528e0 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 6b 61 67 65 2c 0a 24 69 6e 73 74 61 6c 6c 61 74 [].=.array(.$package,.$installat
52900 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b ionManager->getInstallPath($pack
52920 61 67 65 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 70 3b 0a 7d age).);.}..return.$packageMap;.}
52940 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 73 65 41 75 74 ........public.function.parseAut
52960 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 29 0a 7b 0a 24 61 75 74 oloads(array.$packageMap).{.$aut
52980 6f 6c 6f 61 64 73 20 3d 20 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 oloads.=.array('classmap'.=>.arr
529a0 61 79 28 29 2c 20 27 70 73 72 2d 30 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 20 27 66 69 6c 65 73 ay(),.'psr-0'.=>.array(),.'files
529c0 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 '.=>.array());.foreach.($package
529e0 4d 61 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 Map.as.$item).{.list($package,.$
52a00 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 installPath).=.$item;..if.(null.
52a20 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 20 7b 0a !==.$package->getTargetDir()).{.
52a40 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 6c 50 61 $installPath.=.substr($installPa
52a60 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 67 65 74 th,.0,.-strlen('/'.$package->get
52a80 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 70 61 63 6b TargetDir()));.}..foreach.($pack
52aa0 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 24 age->getAutoload().as.$type.=>.$
52ac0 6d 61 70 70 69 6e 67 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 6d 61 70 70 mapping).{...if.(!is_array($mapp
52ae0 69 6e 67 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 ing)).{.continue;.}.foreach.($ma
52b00 70 70 69 6e 67 20 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 pping.as.$namespace.=>.$paths).{
52b20 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 .foreach.((array).$paths.as.$pat
52b40 68 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 73 70 61 63 h).{.$autoloads[$type][$namespac
52b60 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 70 61 e][].=.empty($installPath).?.$pa
52b80 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 0a 7d th.:.$installPath.'/'.$path;.}.}
52ba0 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 74 79 .}.}..foreach.($autoloads.as.$ty
52bc0 70 65 20 3d 3e 20 24 6d 61 70 73 29 20 7b 0a 6b 72 73 6f 72 74 28 24 61 75 74 6f 6c 6f 61 64 73 pe.=>.$maps).{.krsort($autoloads
52be0 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 74 6f 6c 6f 61 64 73 3b 0a [$type]);.}..return.$autoloads;.
52c00 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 63 72 65 61 74 65 4c }........public.function.createL
52c20 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 0a 24 6c 6f 61 64 65 oader(array.$autoloads).{.$loade
52c40 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 66 20 28 69 73 73 65 r.=.new.ClassLoader();..if.(isse
52c60 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 0a 66 6f 72 65 61 63 t($autoloads['psr-0'])).{.foreac
52c80 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 20 24 6e 61 6d 65 73 h.($autoloads['psr-0'].as.$names
52ca0 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 61 64 64 28 24 6e pace.=>.$path).{.$loader->add($n
52cc0 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 74 75 72 6e 20 24 6c amespace,.$path);.}.}..return.$l
52ce0 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 69 6f 6e 20 67 65 74 oader;.}..protected.function.get
52d00 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 61 63 6b 61 67 65 4d IncludePathsFile(array.$packageM
52d20 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 6d 2c 20 24 72 65 6c ap,.Filesystem.$filesystem,.$rel
52d40 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
52d60 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 0a 7b 0a 24 69 6e PathCode,.$appBaseDirCode).{.$in
52d80 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 72 65 61 63 68 20 28 cludePaths.=.array();..foreach.(
52da0 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 69 73 74 28 24 70 61 $packageMap.as.$item).{.list($pa
52dc0 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 74 65 6d 3b 0a 0a 69 ckage,.$installPath).=.$item;..i
52de0 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 54 61 72 67 65 74 44 f.(null.!==.$package->getTargetD
52e00 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 67 65 74 54 61 72 67 ir().&&.strlen($package->getTarg
52e20 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 61 74 68 20 3d 20 73 etDir()).>.0).{.$installPath.=.s
52e40 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 74 72 6c 65 6e 28 27 ubstr($installPath,.0,.-strlen('
52e60 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 28 29 29 29 3b 0a 7d /'.$package->getTargetDir()));.}
52e80 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 6e 63 6c 75 64 65 50 ..foreach.($package->getIncludeP
52ea0 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 0a 24 69 6e 63 6c 75 aths().as.$includePath).{.$inclu
52ec0 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 68 2c 20 27 2f 27 29 dePath.=.trim($includePath,.'/')
52ee0 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 28 24 69 6e 73 74 61 ;.$includePaths[].=.empty($insta
52f00 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 24 69 6e 73 74 61 6c llPath).?.$includePath.:.$instal
52f20 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 0a 7d 0a 0a 69 66 20 lPath.'/'.$includePath;.}.}..if.
52f40 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 3b 0a 7d 0a 0a 24 69 (!$includePaths).{.return;.}..$i
52f60 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 3c 3f 70 68 70 0a 0a ncludePathsFile.=.<<<EOF.<?php..
52f80 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 72 61 74 65 64 20 62 //.include_paths.php.generated.b
52fa0 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 6e 64 6f y.Composer..\$vendorDir.=.$vendo
52fc0 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 73 65 44 rPathCode;.\$baseDir.=.$appBaseD
52fe0 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 0a 66 6f irCode;..return.array(..EOF;..fo
53000 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 70 61 74 68 29 20 7b reach.($includePaths.as.$path).{
53020 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 20 20 22 20 2e 20 24 .$includePathsFile..=."...."...$
53040 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 65 6d 2c 20 24 this->getPathCode($filesystem,.$
53060 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 24 70 61 74 relVendorPath,.$vendorPath,.$pat
53080 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 63 6c 75 64 65 50 61 h)...",\n";.}..return.$includePa
530a0 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 65 63 74 65 64 20 66 thsFile...");\n";.}..protected.f
530c0 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 79 73 74 65 6d 20 24 unction.getPathCode(Filesystem.$
530e0 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 68 2c 20 24 76 65 6e filesystem,.$relVendorPath,.$ven
53100 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 20 73 74 72 74 72 28 dorPath,.$path).{.$path.=.strtr(
53120 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 69 72 20 3d 20 27 27 $path,.'\\',.'/');.$baseDir.=.''
53140 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 61 ;.if.(!$filesystem->isAbsolutePa
53160 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 24 th($path)).{.if.(strpos($path,.$
53180 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 24 70 61 74 68 20 relVendorPath).===.0).{...$path.
531a0 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 65 6c 56 65 6e 64 6f =.substr($path,.strlen($relVendo
531c0 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 64 6f 72 44 69 72 20 rPath));.$baseDir.=.'$vendorDir.
531e0 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 2e 24 70 61 74 68 3b ..';.}.else.{.$path.=.'/'.$path;
53200 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 3b 0a 7d 0a 7d 20 65 .$baseDir.=.'$baseDir...';.}.}.e
53220 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 64 6f 72 50 61 74 68 lseif.(strpos($path,.$vendorPath
53240 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 28 24 70 61 74 68 2c ).===.0).{.$path.=.substr($path,
53260 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 61 73 65 44 69 72 20 .strlen($vendorPath));.$baseDir.
53280 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 75 72 6e 20 24 62 61 =.'$vendorDir...';.}..return.$ba
532a0 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 72 75 65 29 3b 0a 7d seDir.var_export($path,.true);.}
532c0 0a 0a 70 72 6f 74 65 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 ..protected.function.getAutoload
532e0 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 69 72 43 6f 64 65 2c File($vendorPathToTargetDirCode,
53300 20 24 75 73 65 50 53 52 30 2c 20 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 .$usePSR0,.$useClassMap,.$useInc
53320 6c 75 64 65 50 61 74 68 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 66 69 6c ludePath,.$targetDirLoader,.$fil
53340 65 73 43 6f 64 65 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 73 43 6f 64 65 29 20 7b 0a 24 66 69 6c esCode).{.if.($filesCode).{.$fil
53360 65 73 43 6f 64 65 20 3d 20 22 5c 6e 22 2e 24 66 69 6c 65 73 43 6f 64 65 3b 0a 7d 0a 0a 24 66 69 esCode.=."\n".$filesCode;.}..$fi
53380 6c 65 20 3d 20 3c 3c 3c 48 45 41 44 45 52 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 le.=.<<<HEADER.<?php..//.autoloa
533a0 64 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 69 66 20 28 d.php.generated.by.Composer.if.(
533c0 21 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 5c 5c 41 75 74 6f 6c !class_exists('Composer\\\\Autol
533e0 6f 61 64 5c 5c 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 2c 20 66 61 6c 73 65 29 29 20 7b 0a 20 oad\\\\ClassLoader',.false)).{..
53400 20 20 20 72 65 71 75 69 72 65 20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 ...require.$vendorPathToTargetDi
53420 72 43 6f 64 65 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 0a 72 rCode...'/ClassLoader.php';.}..r
53440 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 66 75 6e 63 74 69 6f 6e 28 29 20 eturn.call_user_func(function().
53460 7b 0a 20 20 20 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 5c 43 6f 6d 70 6f 73 65 72 5c {.....\$loader.=.new.\\Composer\
53480 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 20 20 5c 24 \Autoload\\ClassLoader();.....\$
534a0 63 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 composerDir.=.$vendorPathToTarge
534c0 74 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 tDirCode;...HEADER;..if.($useInc
534e0 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
53500 5f 50 41 54 48 27 0a 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 _PATH'.....$includePaths.=.requi
53520 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 re.$composerDir...'/include_path
53540 73 2e 70 68 70 27 3b 0a 20 20 20 20 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 64 65 50 s.php';.....array_push($includeP
53560 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 20 20 73 aths,.get_include_path());.....s
53580 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 5f 53 45 50 41 52 41 et_include_path(join(PATH_SEPARA
535a0 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 4e 43 4c 55 44 45 5f TOR,.$includePaths));...INCLUDE_
535c0 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 24 66 69 6c 65 20 2e PATH;.}..if.($usePSR0).{.$file..
535e0 3d 20 3c 3c 3c 27 50 53 52 30 27 0a 20 20 20 20 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 =.<<<'PSR0'.....$map.=.require.$
53600 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 composerDir...'/autoload_namespa
53620 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 73 20 24 ces.php';.....foreach.($map.as.$
53640 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 24 6c namespace.=>.$path).{.........$l
53660 6f 61 64 65 72 2d 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 20 oader->add($namespace,.$path);..
53680 20 20 20 7d 0a 0a 0a 50 53 52 30 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 4d 61 70 ...}...PSR0;.}..if.($useClassMap
536a0 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 20 20 24 ).{.$file..=.<<<'CLASSMAP'.....$
536c0 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 classMap.=.require.$composerDir.
536e0 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 ..'/autoload_classmap.php';.....
53700 69 66 20 28 24 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 if.($classMap).{.........$loader
53720 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 7d 0a ->addClassMap($classMap);.....}.
53740 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 24 74 61 72 67 65 74 44 ..CLASSMAP;.}..$file..=.$targetD
53760 69 72 4c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c 3c 46 4f 4f irLoader;..return.$file...<<<FOO
53780 54 45 52 0a 20 20 20 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 24 66 TER.....\$loader->register();.$f
537a0 69 6c 65 73 43 6f 64 65 0a 20 20 20 20 72 65 74 75 72 6e 20 5c 24 6c 6f 61 64 65 72 3b 0a 7d 29 ilesCode.....return.\$loader;.})
537c0 3b 0a 0a 46 4f 4f 54 45 52 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ;..FOOTER;.}.}.<?php............
537e0 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 0a 0a .namespace.Composer\Autoload;...
53800 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 7b 0a 0a 0a ....class.ClassMapGenerator.{...
53820 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 75 6d 70 28 ....public.static.function.dump(
53840 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 79 28 29 3b $dirs,.$file).{.$maps.=.array();
53860 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 24 6d 61 70 ..foreach.($dirs.as.$dir).{.$map
53880 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 63 3a 3a 63 s.=.array_merge($maps,.static::c
538a0 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 5f 63 6f 6e reateMap($dir));.}..file_put_con
538c0 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 72 65 74 75 tents($file,.sprintf('<?php.retu
538e0 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 72 75 65 29 rn.%s;',.var_export($maps,.true)
53900 29 29 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 20 66 75 6e 63 ));.}.........public.static.func
53920 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 tion.createMap($dir).{.if.(is_st
53940 72 69 6e 67 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 64 69 72 29 29 ring($dir)).{.if.(is_file($dir))
53960 20 7b 0a 24 64 69 72 20 3d 20 61 72 72 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f .{.$dir.=.array(new.\SplFileInfo
53980 28 24 64 69 72 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 20 3d 20 6e 65 77 20 5c 52 65 ($dir));.}.else.{.$dir.=.new.\Re
539a0 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 5c 52 65 63 cursiveIteratorIterator(new.\Rec
539c0 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 29 29 3b 0a ursiveDirectoryIterator($dir));.
539e0 7d 0a 7d 0a 0a 24 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 }.}..$map.=.array();..foreach.($
53a00 64 69 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 dir.as.$file).{.if.(!$file->isFi
53a20 6c 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 66 69 le()).{.continue;.}..$path.=.$fi
53a40 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 70 61 74 68 69 6e 66 6f le->getRealPath();..if.(pathinfo
53a60 28 24 70 61 74 68 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 20 21 3d 3d 20 ($path,.PATHINFO_EXTENSION).!==.
53a80 27 70 68 70 27 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 65 73 20 3d 'php').{.continue;.}..$classes.=
53aa0 20 73 65 6c 66 3a 3a 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 3b 0a 0a 66 6f 72 65 .self::findClasses($path);..fore
53ac0 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 24 6d 61 70 5b ach.($classes.as.$class).{.$map[
53ae0 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 0a 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d $class].=.$path;.}..}..return.$m
53b00 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e ap;.}.........private.static.fun
53b20 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6e 74 ction.findClasses($path).{.$cont
53b40 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 70 61 74 68 29 3b ents.=.file_get_contents($path);
53b60 0a 74 72 79 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5c 62 28 3f 3a 63 6c .try.{.if.(!preg_match('{\b(?:cl
53b80 61 73 73 7c 69 6e 74 65 72 66 61 63 65 7c 74 72 61 69 74 29 5c 62 7d 69 27 2c 20 24 63 6f 6e 74 ass|interface|trait)\b}i',.$cont
53ba0 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 74 6f 6b 65 ents)).{.return.array();.}.$toke
53bc0 6e 73 20 3d 20 74 6f 6b 65 6e 5f 67 65 74 5f 61 6c 6c 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d ns.=.token_get_all($contents);.}
53be0 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 6e .catch.(\Exception.$e).{.throw.n
53c00 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 20 6e 6f 74 20 ew.\RuntimeException('Could.not.
53c20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 20 27 2e 24 70 61 74 68 2e scan.for.classes.inside.'.$path.
53c40 22 3a 20 5c 6e 22 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 ":.\n".$e->getMessage(),.0,.$e);
53c60 0a 7d 0a 24 54 5f 54 52 41 49 54 20 3d 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 .}.$T_TRAIT.=.version_compare(PH
53c80 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 20 3f 20 2d 31 20 3a 20 54 5f P_VERSION,.'5.4',.'<').?.-1.:.T_
53ca0 54 52 41 49 54 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6e 61 TRAIT;..$classes.=.array();..$na
53cc0 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6d 61 78 20 mespace.=.'';.for.($i.=.0,.$max.
53ce0 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 3b 20 24 69 20 3c 20 24 6d 61 78 3b 20 24 69 2b =.count($tokens);.$i.<.$max;.$i+
53d00 2b 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 69 5d 3b 0a 0a 69 66 20 28 +).{.$token.=.$tokens[$i];..if.(
53d20 69 73 5f 73 74 72 69 6e 67 28 24 74 6f 6b 65 6e 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d is_string($token)).{.continue;.}
53d40 0a 0a 24 63 6c 61 73 73 20 3d 20 27 27 3b 0a 0a 73 77 69 74 63 68 20 28 24 74 6f 6b 65 6e 5b 30 ..$class.=.'';..switch.($token[0
53d60 5d 29 20 7b 0a 63 61 73 65 20 54 5f 4e 41 4d 45 53 50 41 43 45 3a 0a 24 6e 61 6d 65 73 70 61 63 ]).{.case.T_NAMESPACE:.$namespac
53d80 65 20 3d 20 27 27 3b 0a 0a 20 77 68 69 6c 65 20 28 28 24 74 20 3d 20 24 74 6f 6b 65 6e 73 5b 2b e.=.'';...while.(($t.=.$tokens[+
53da0 2b 24 69 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 74 29 29 20 7b 0a 69 66 20 28 69 6e 5f +$i]).&&.is_array($t)).{.if.(in_
53dc0 61 72 72 61 79 28 24 74 5b 30 5d 2c 20 61 72 72 61 79 28 54 5f 53 54 52 49 4e 47 2c 20 54 5f 4e array($t[0],.array(T_STRING,.T_N
53de0 53 5f 53 45 50 41 52 41 54 4f 52 29 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 2e 3d 20 24 S_SEPARATOR))).{.$namespace..=.$
53e00 74 5b 31 5d 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 70 61 63 65 20 2e 3d 20 27 5c 5c 27 3b 0a 62 72 t[1];.}.}.$namespace..=.'\\';.br
53e20 65 61 6b 3b 0a 63 61 73 65 20 54 5f 43 4c 41 53 53 3a 0a 63 61 73 65 20 54 5f 49 4e 54 45 52 46 eak;.case.T_CLASS:.case.T_INTERF
53e40 41 43 45 3a 0a 63 61 73 65 20 24 54 5f 54 52 41 49 54 3a 0a 0a 20 77 68 69 6c 65 20 28 28 24 74 ACE:.case.$T_TRAIT:...while.(($t
53e60 20 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 .=.$tokens[++$i]).&&.is_array($t
53e80 29 29 20 7b 0a 69 66 20 28 54 5f 53 54 52 49 4e 47 20 3d 3d 3d 20 24 74 5b 30 5d 29 20 7b 0a 24 )).{.if.(T_STRING.===.$t[0]).{.$
53ea0 63 6c 61 73 73 20 2e 3d 20 24 74 5b 31 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 6c 61 73 73 class..=.$t[1];.}.elseif.($class
53ec0 20 21 3d 3d 20 27 27 20 26 26 20 54 5f 57 48 49 54 45 53 50 41 43 45 20 3d 3d 20 24 74 5b 30 5d .!==.''.&&.T_WHITESPACE.==.$t[0]
53ee0 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 63 6c 61 73 73 65 73 5b 5d 20 3d 20 6c 74 72 ).{.break;.}.}..$classes[].=.ltr
53f00 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 3b 0a 62 im($namespace...$class,.'\\');.b
53f20 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 0a 72 65 74 75 72 reak;.default:.break;.}.}..retur
53f40 6e 20 24 63 6c 61 73 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n.$classes;.}.}.<?php...........
53f60 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 6d 70 6f 73 .namespace.Composer;..use.Compos
53f80 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 61 74 6f 72 3b 0a 75 er\Autoload\AutoloadGenerator;.u
53fa0 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 72 5c 44 se.Composer\DependencyResolver\D
53fc0 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e efaultPolicy;.use.Composer\Depen
53fe0 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 65 4f 70 dencyResolver\Operation\UpdateOp
54000 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 79 eration;.use.Composer\Dependency
54020 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 Resolver\Pool;.use.Composer\Depe
54040 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 ndencyResolver\Request;.use.Comp
54060 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 3b 0a oser\DependencyResolver\Solver;.
54080 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 72 5c use.Composer\DependencyResolver\
540a0 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d SolverProblemsException;.use.Com
540c0 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
540e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c ;.use.Composer\Installer\Install
54100 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 ationManager;.use.Composer\Confi
54120 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 4e 6f 6f 70 49 6e g;.use.Composer\Installer\NoopIn
54140 73 74 61 6c 6c 65 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 staller;.use.Composer\IO\IOInter
54160 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 6c 69 61 73 face;.use.Composer\Package\Alias
54180 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 4c 69 Package;.use.Composer\Package\Li
541a0 6e 6b 3b 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 43 6f 6e nk;.use.Composer\Package\LinkCon
541c0 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 straint\VersionConstraint;.use.C
541e0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 20 43 6f 6d 70 omposer\Package\Locker;.use.Comp
54200 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 0a 75 oser\Package\PackageInterface;.u
54220 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 74 65 se.Composer\Repository\Composite
54240 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
54260 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 ory\InstalledArrayRepository;.us
54280 65 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 e.Composer\Repository\PlatformRe
542a0 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 6f 72 pository;.use.Composer\Repositor
542c0 79 5c 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 y\RepositoryInterface;.use.Compo
542e0 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 61 6e 61 67 65 72 ser\Repository\RepositoryManager
54300 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e 74 44 69 73 70 61 ;.use.Composer\Script\EventDispa
54320 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 tcher;.use.Composer\Script\Scrip
54340 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 0a 7b tEvents;.......class.Installer.{
54360 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 6f 74 65 63 74 65 64 ....protected.$io;.....protected
54380 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 .$config;.....protected.$package
543a0 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 ;.....protected.$downloadManager
543c0 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 ;.....protected.$repositoryManag
543e0 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 er;.....protected.$locker;.....p
54400 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a rotected.$installationManager;..
54420 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a ...protected.$eventDispatcher;..
54440 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b ...protected.$autoloadGenerator;
54460 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 ..protected.$preferSource.=.fals
54480 65 3b 0a 70 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 e;.protected.$devMode.=.false;.p
544a0 72 6f 74 65 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 rotected.$dryRun.=.false;.protec
544c0 74 65 64 20 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 ted.$verbose.=.false;.protected.
544e0 24 75 70 64 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 $update.=.false;.protected.$runS
54500 63 72 69 70 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 cripts.=.true;.protected.$update
54520 57 68 69 74 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 Whitelist.=.null;.....protected.
54540 24 73 75 67 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 $suggestedPackages;.....protecte
54560 64 20 24 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 d.$additionalInstalledRepository
54580 3b 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 ;...............public.function.
545a0 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 6f 6e __construct(IOInterface.$io,.Con
545c0 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 fig.$config,.PackageInterface.$p
545e0 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
54600 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
54620 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,.
54640 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
54660 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
54680 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
546a0 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.=.
546c0 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
546e0 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->
54700 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
54720 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.=.$
54740 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
54760 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
54780 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;.$
547a0 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
547c0 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
547e0 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
54800 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
54820 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
54840 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
54860 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
54880 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 7d 0a 0a 69 66 taller(new.NoopInstaller);.}..if
548a0 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e .($this->preferSource).{.$this->
548c0 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 53 6f 75 72 63 65 downloadManager->setPreferSource
548e0 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
54900 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
54920 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
54940 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
54960 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
54980 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(
549a0 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->
549c0 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
549e0 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
54a00 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
54a20 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,.).)
54a40 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
54a60 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
54a80 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).{.
54aa0 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
54ac0 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
54ae0 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 61 6c 69 61 73 50 ry);.}..$aliases.=.$this->aliasP
54b00 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 0a 69 66 20 28 24 74 68 ackages($platformRepo);..if.($th
54b20 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d is->runScripts).{...$eventName.=
54b40 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 .$this->update.?.ScriptEvents::P
54b60 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 RE_UPDATE_CMD.:.ScriptEvents::PR
54b80 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 E_INSTALL_CMD;.$this->eventDispa
54ba0 74 63 68 65 72 2d 3e 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 tcher->dispatchCommandEvent($eve
54bc0 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b ntName);.}..$this->suggestedPack
54be0 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 6f 49 6e ages.=.array();.if.(!$this->doIn
54c00 73 74 61 6c 6c 28 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 stall($this->repositoryManager->
54c20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 69 6e 73 74 61 6c 6c 65 64 getLocalRepository(),.$installed
54c40 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b Repo,.$aliases)).{.return.false;
54c60 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 20 7b 0a 69 66 20 28 21 24 74 .}.if.($this->devMode).{.if.(!$t
54c80 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 72 79 his->doInstall($this->repository
54ca0 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 6f 72 79 28 29 Manager->getLocalDevRepository()
54cc0 2c 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 2c 20 74 72 75 65 ,.$installedRepo,.$aliases,.true
54ce0 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 66 6f 72 65 61 63 )).{.return.false;.}.}....foreac
54d00 68 20 28 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 h.($this->suggestedPackages.as.$
54d20 73 75 67 67 65 73 74 69 6f 6e 29 20 7b 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 suggestion).{.if.(!$installedRep
54d40 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 o->findPackages($suggestion['tar
54d60 67 65 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 73 75 67 67 get'])).{.$this->io->write($sugg
54d80 65 73 74 69 6f 6e 5b 27 73 6f 75 72 63 65 27 5d 2e 27 20 73 75 67 67 65 73 74 73 20 69 6e 73 74 estion['source'].'.suggests.inst
54da0 61 6c 6c 69 6e 67 20 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 alling.'.$suggestion['target'].'
54dc0 20 28 27 2e 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 72 65 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a .('.$suggestion['reason'].')');.
54de0 7d 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 0a 20 69 66 20 }.}..if.(!$this->dryRun).{...if.
54e00 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 ($this->update.||.!$this->locker
54e20 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 75 70 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 ->isLocked()).{.$updatedLock.=.$
54e40 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 73 65 74 4c 6f 63 6b 44 61 74 61 28 0a 24 74 68 69 73 this->locker->setLockData(.$this
54e60 2d 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 52 65 70 ->repositoryManager->getLocalRep
54e80 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 2c 0a 24 74 68 69 73 2d ository()->getPackages(),.$this-
54ea0 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 >devMode.?.$this->repositoryMana
54ec0 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 2d 3e 67 65 ger->getLocalDevRepository()->ge
54ee0 74 50 61 63 6b 61 67 65 73 28 29 20 3a 20 6e 75 6c 6c 2c 0a 24 61 6c 69 61 73 65 73 2c 0a 24 74 tPackages().:.null,.$aliases,.$t
54f00 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 74 his->package->getMinimumStabilit
54f20 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 y(),.$this->package->getStabilit
54f40 79 46 6c 61 67 73 28 29 0a 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a yFlags().);.if.($updatedLock).{.
54f60 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 $this->io->write('<info>Writing.
54f80 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 lock.file</info>');.}.}....$this
54fa0 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 ->io->write('<info>Generating.au
54fc0 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 toload.files</info>');.$localRep
54fe0 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 28 24 74 68 os.=.new.CompositeRepository($th
55000 69 73 2d 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 52 is->repositoryManager->getLocalR
55020 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 epositories());.$this->autoloadG
55040 65 6e 65 72 61 74 6f 72 2d 3e 64 75 6d 70 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 6c enerator->dump($this->config,.$l
55060 6f 63 61 6c 52 65 70 6f 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 74 68 69 73 ocalRepos,.$this->package,.$this
55080 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 ->installationManager,.'composer
550a0 27 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 ');..if.($this->runScripts).{...
550c0 24 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 $eventName.=.$this->update.?.Scr
550e0 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 iptEvents::POST_UPDATE_CMD.:.Scr
55100 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 iptEvents::POST_INSTALL_CMD;.$th
55120 69 73 2d 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 is->eventDispatcher->dispatchCom
55140 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 mandEvent($eventName);.}.}..retu
55160 72 6e 20 74 72 75 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 64 rn.true;.}..protected.function.d
55180 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 oInstall($localRepo,.$installedR
551a0 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 29 epo,.$aliases,.$devMode.=.false)
551c0 0a 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 70 61 .{.$minimumStability.=.$this->pa
551e0 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 24 73 ckage->getMinimumStability();.$s
55200 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e tabilityFlags.=.$this->package->
55220 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 0a 20 69 66 20 28 21 24 74 68 getStabilityFlags();....if.(!$th
55240 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 73 4c is->update.&&.$this->locker->isL
55260 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 ocked($devMode)).{.$lockedPackag
55280 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 64 50 61 63 es.=.$this->locker->getLockedPac
552a0 6b 61 67 65 73 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 kages($devMode);.$minimumStabili
552c0 74 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 ty.=.$this->locker->getMinimumSt
552e0 61 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 ability();.$stabilityFlags.=.$th
55300 69 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 is->locker->getStabilityFlags();
55320 0a 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 .}..$this->whitelistUpdateDepend
55340 65 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 encies(.$localRepo,.$devMode,.$t
55360 68 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 his->package->getRequires(),.$th
55380 69 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 is->package->getDevRequires().);
553a0 0a 0a 0a 20 24 70 6f 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 ....$pool.=.new.Pool($minimumSta
553c0 62 69 6c 69 74 79 2c 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 bility,.$stabilityFlags);.$pool-
553e0 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a >addRepository($installedRepo);.
55400 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 79 4d 61 6e 61 67 65 foreach.($this->repositoryManage
55420 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 73 69 74 r->getRepositories().as.$reposit
55440 6f 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 ory).{.$pool->addRepository($rep
55460 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 0a 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 ository);.}....$installFromLock.
55480 3d 20 66 61 6c 73 65 3b 0a 24 72 65 71 75 65 73 74 20 3d 20 6e 65 77 20 52 65 71 75 65 73 74 28 =.false;.$request.=.new.Request(
554a0 24 70 6f 6f 6c 29 3b 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 $pool);..$constraint.=.new.Versi
554c0 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 70 61 63 6b 61 67 65 onConstraint('=',.$this->package
554e0 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 ->getVersion());.$request->insta
55500 6c 6c 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 ll($this->package->getName(),.$c
55520 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 onstraint);..if.($this->update).
55540 7b 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 55 70 64 61 74 69 {.$this->io->write('<info>Updati
55560 6e 67 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 ng.'.($devMode.?.'dev.':.'').'de
55580 70 65 6e 64 65 6e 63 69 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 72 65 71 75 65 73 74 2d 3e pendencies</info>');..$request->
555a0 75 70 64 61 74 65 41 6c 6c 28 29 3b 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 64 65 76 4d 6f 64 65 20 updateAll();..$links.=.$devMode.
555c0 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 71 75 69 72 65 73 ?.$this->package->getDevRequires
555e0 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 71 75 69 72 65 73 ().:.$this->package->getRequires
55600 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 69 6e 6b 29 20 7b ();..foreach.($links.as.$link).{
55620 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 67 65 74 54 61 72 .$request->install($link->getTar
55640 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 0a get(),.$link->getConstraint());.
55660 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 }.}.elseif.($this->locker->isLoc
55680 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 6d 4c 6f 63 ked($devMode)).{.$installFromLoc
556a0 6b 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 k.=.true;.$this->io->write('<inf
556c0 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 20 o>Installing.'.($devMode.?.'dev.
556e0 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 66 ':.'').'dependencies.from.lock.f
55700 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 65 ile</info>');..if.(!$this->locke
55720 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 68 r->isFresh().&&.!$devMode).{.$th
55740 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 63 is->io->write('<warning>Your.loc
55760 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 20 k.file.is.out.of.sync.with.your.
55780 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 61 composer.json,.run."composer.pha
557a0 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 73 r.update".to.update.dependencies
557c0 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 65 </warning>');.}..foreach.($locke
557e0 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 76 65 72 73 69 6f dPackages.as.$package).{.$versio
55800 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 66 6f 72 65 n.=.$package->getVersion();.fore
55820 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 69 66 20 28 24 ach.($aliases.as.$alias).{.if.($
55840 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 alias['package'].===.$package->g
55860 65 74 4e 61 6d 65 28 29 20 26 26 20 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 3d etName().&&.$alias['version'].==
55880 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 24 76 65 72 =.$package->getVersion()).{.$ver
558a0 73 69 6f 6e 20 3d 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 sion.=.$alias['alias_normalized'
558c0 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 ];.break;.}.}.$constraint.=.new.
558e0 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)
55900 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
55920 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 20 65 6c 73 65 20 tName(),.$constraint);.}.}.else.
55940 7b 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 49 6e 73 74 61 6c {.$this->io->write('<info>Instal
55960 6c 69 6e 67 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 ling.'.($devMode.?.'dev.':.'').'
55980 64 65 70 65 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 dependencies</info>');..$links.=
559a0 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 44 .$devMode.?.$this->package->getD
559c0 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 67 evRequires().:.$this->package->g
559e0 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 61 etRequires();..foreach.($links.a
55a00 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 69 s.$link).{.$request->install($li
55a20 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 74 nk->getTarget(),.$link->getConst
55a40 72 61 69 6e 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 raint());.}.}........foreach.($i
55a60 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 20 61 73 20 24 nstalledRepo->getPackages().as.$
55a80 70 61 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 52 65 70 6f package).{.if.($package->getRepo
55aa0 73 69 74 6f 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 sitory().===.$localRepo).{.conti
55ac0 6e 75 65 3b 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 nue;.}..$constraint.=.new.Versio
55ae0 6e 43 6f 6e 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 nConstraint('=',.$package->getVe
55b00 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 63 rsion());.$request->install($pac
55b20 6b 61 67 65 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 kage->getName(),.$constraint);.}
55b40 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 ......if.($this->update.&&.$this
55b60 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e ->updateWhitelist).{.if.($this->
55b80 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 24 64 65 76 4d 6f 64 65 29 29 20 7b 0a 24 63 locker->isLocked($devMode)).{.$c
55ba0 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e urrentPackages.=.$this->locker->
55bc0 67 65 74 4c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 28 24 64 65 76 4d 6f 64 65 29 3b 0a 7d 20 65 getLockedPackages($devMode);.}.e
55be0 6c 73 65 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 73 74 61 6c lse.{.$currentPackages.=.$instal
55c00 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 20 24 63 61 ledRepo->getPackages();.}....$ca
55c20 6e 64 69 64 61 74 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 ndidates.=.array();.foreach.($li
55c40 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6c 69 6e nks.as.$link).{.$candidates[$lin
55c60 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 66 6f 72 65 61 63 k->getTarget()].=.true;.}.foreac
55c80 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 29 20 61 73 20 h.($localRepo->getPackages().as.
55ca0 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 24 70 61 63 6b 61 67 65 $package).{.$candidates[$package
55cc0 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 ->getName()].=.true;.}....foreac
55ce0 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 20 3d 3e 20 h.($candidates.as.$candidate.=>.
55d00 24 64 75 6d 6d 79 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 75 72 72 65 6e 74 50 61 63 6b 61 $dummy).{.foreach.($currentPacka
55d20 67 65 73 20 61 73 20 24 63 75 72 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 63 75 72 50 61 ges.as.$curPackage).{.if.($curPa
55d40 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 63 61 6e 64 69 64 61 74 65 29 ckage->getName().===.$candidate)
55d60 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 63 75 72 50 .{.if.($this->isUpdateable($curP
55d80 61 63 6b 61 67 65 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 ackage)).{.break;.}..$constraint
55da0 20 3d 20 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 63 .=.new.VersionConstraint('=',.$c
55dc0 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 urPackage->getVersion());.$reque
55de0 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 st->install($curPackage->getName
55e00 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 70 6f (),.$constraint);.}.}.}.}....$po
55e20 6c 69 63 79 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 28 29 3b 0a 24 73 6f 6c licy.=.new.DefaultPolicy();.$sol
55e40 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c ver.=.new.Solver($policy,.$pool,
55e60 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 0a 0a 20 74 72 79 20 7b 0a 24 6f 70 65 72 .$installedRepo);....try.{.$oper
55e80 61 74 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 ations.=.$solver->solve($request
55ea0 29 3b 0a 7d 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 );.}.catch.(SolverProblemsExcept
55ec0 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 27 3c 65 72 72 ion.$e).{.$this->io->write('<err
55ee0 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 or>Your.requirements.could.not.b
55f00 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 6e 20 69 6e 73 74 61 6c 6c 61 62 6c 65 20 73 65 74 e.resolved.to.an.installable.set
55f20 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e .of.packages.</error>');.$this->
55f40 69 6f 2d 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 0a 72 65 io->write($e->getMessage());..re
55f60 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c turn.false;.}....foreach.($local
55f80 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 61 67 65 29 Repo->getPackages().as.$package)
55fa0 20 7b 0a 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 63 .{...if.(!$package->isDev()).{.c
55fc0 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 74 69 6f ontinue;.}....foreach.($operatio
55fe0 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 61 74 65 ns.as.$operation).{.if.(('update
56000 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 29 20 26 '.===.$operation->getJobType().&
56020 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 67 65 28 &.$operation->getInitialPackage(
56040 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 6e 73 74 )->equals($package)).||.('uninst
56060 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 70 65 28 all'.===.$operation->getJobType(
56080 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 2d 3e 65 ).&&.$operation->getPackage()->e
560a0 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 20 32 3b quals($package)).).{.continue.2;
560c0 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 20 7b 0a .}.}....if.($installFromLock).{.
560e0 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f $lockData.=.$this->locker->getLo
56100 63 6b 44 61 74 61 28 29 3b 0a 75 6e 73 65 74 28 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 ckData();.unset($lockedReference
56120 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 );.foreach.($lockData['packages'
56140 5d 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 21 65 6d 70 74 ].as.$lockedPackage).{.if.(!empt
56160 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e y($lockedPackage['source-referen
56180 63 65 27 5d 29 20 26 26 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 ce']).&&.strtolower($lockedPacka
561a0 67 65 5b 27 70 61 63 6b 61 67 65 27 5d 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ge['package']).===.$package->get
561c0 4e 61 6d 65 28 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 20 3d 20 24 6c 6f Name()).{.$lockedReference.=.$lo
561e0 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 3b ckedPackage['source-reference'];
56200 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 52 65 66 .break;.}.}.if.(isset($lockedRef
56220 65 72 65 6e 63 65 29 20 26 26 20 24 6c 6f 63 6b 65 64 52 65 66 65 72 65 6e 63 65 20 21 3d 3d 20 erence).&&.$lockedReference.!==.
56240 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 29 29 20 $package->getSourceReference()).
56260 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 70 64 61 74 65 4f 70 {...$operations[].=.new.UpdateOp
56280 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 70 61 63 6b 61 67 65 eration($package,.clone.$package
562a0 29 3b 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 75 70 64 61 74 );.}.}.else.{...if.($this->updat
562c0 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 74 65 6c 69 73 e).{...if.($this->updateWhitelis
562e0 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 70 61 63 6b 61 t.&&.!$this->isUpdateable($packa
56300 67 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 ge)).{.continue;.}..$newPackage.
56320 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 2d 3e 66 69 6e 64 =.$this->repositoryManager->find
56340 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 Package($package->getName(),.$pa
56360 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 69 66 20 28 24 6e 65 77 50 61 ckage->getVersion());.if.($newPa
56380 63 6b 61 67 65 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 ckage.&&.$newPackage->getSourceR
563a0 65 66 65 72 65 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 eference().!==.$package->getSour
563c0 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d ceReference()).{.$operations[].=
563e0 20 6e 65 77 20 55 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 24 .new.UpdateOperation($package,.$
56400 6e 65 77 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 66 65 72 65 6e 63 65 73 20 newPackage);.}.}....$references.
56420 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 =.$this->package->getReferences(
56440 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 );..if.(isset($references[$packa
56460 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 65 72 65 6e 63 65 73 5b 24 ge->getName()]).&&.$references[$
56480 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 package->getName()].!==.$package
564a0 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 0a 20 24 6f 70 65 ->getSourceReference()).{...$ope
564c0 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 6e 28 rations[].=.new.UpdateOperation(
564e0 24 70 61 63 6b 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d $package,.clone.$package);.}.}.}
56500 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 ....if.(!$operations).{.$this->i
56520 6f 2d 3e 77 72 69 74 65 28 27 4e 6f 74 68 69 6e 67 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 o->write('Nothing.to.install.or.
56540 75 70 64 61 74 65 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e update');.}..foreach.($operation
56560 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 27 69 6e 73 74 61 6c s.as.$operation).{...if.('instal
56580 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 70 65 28 29 29 l'.===.$operation->getJobType())
565a0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 .{.foreach.($operation->getPacka
565c0 67 65 28 29 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 74 61 72 67 65 74 20 3d ge()->getSuggests().as.$target.=
565e0 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 >.$reason).{.$this->suggestedPac
56600 6b 61 67 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 6f 70 kages[].=.array(.'source'.=>.$op
56620 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 50 72 65 74 74 79 eration->getPackage()->getPretty
56640 4e 61 6d 65 28 29 2c 0a 27 74 61 72 67 65 74 27 20 3d 3e 20 24 74 61 72 67 65 74 2c 0a 27 72 65 Name(),.'target'.=>.$target,.'re
56660 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 ason'.=>.$reason,.);.}.}..$event
56680 20 3d 20 27 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 .=.'Composer\Script\ScriptEvents
566a0 3a 3a 50 52 45 5f 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 ::PRE_PACKAGE_'.strtoupper($oper
566c0 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 ation->getJobType());.if.(define
566e0 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 d($event).&&.$this->runScripts).
56700 7b 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 70 61 74 {.$this->eventDispatcher->dispat
56720 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c chPackageEvent(constant($event),
56740 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 .$operation);.}....if.($installF
56760 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 romLock).{.$package.=.null;.if.(
56780 27 75 70 64 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 'update'.===.$operation->getJobT
567a0 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e ype()).{.$package.=.$operation->
567c0 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 getTargetPackage();.}.elseif.('i
567e0 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
56800 70 65 28 29 29 20 7b 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 pe()).{.$package.=.$operation->g
56820 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 26 26 20 24 etPackage();.}.if.($package.&&.$
56840 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 package->isDev()).{.$lockData.=.
56860 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 66 6f $this->locker->getLockData();.fo
56880 72 65 61 63 68 20 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 reach.($lockData['packages'].as.
568a0 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f $lockedPackage).{.if.(!empty($lo
568c0 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 5d 29 ckedPackage['source-reference'])
568e0 20 26 26 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 70 .&&.strtolower($lockedPackage['p
56900 61 63 6b 61 67 65 27 5d 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 ackage']).===.$package->getName(
56920 29 29 20 7b 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 )).{...if.(!empty($lockedPackage
56940 5b 27 63 6f 6d 6d 69 74 2d 64 61 74 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 ['commit-date'])).{.$package->se
56960 74 52 65 6c 65 61 73 65 44 61 74 65 28 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 24 tReleaseDate(new.\DateTime('@'.$
56980 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 63 6f 6d 6d 69 74 2d 64 61 74 65 27 5d 29 29 3b 0a lockedPackage['commit-date']));.
569a0 7d 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($
569c0 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 5b 27 73 6f 75 72 63 65 2d 72 65 66 65 72 65 6e 63 65 27 lockedPackage['source-reference'
569e0 5d 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 70 61 63 ]);.break;.}.}.}.}.else.{...$pac
56a00 6b 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 kage.=.null;.if.('update'.===.$o
56a20 70 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 peration->getJobType()).{.$packa
56a40 67 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 ge.=.$operation->getTargetPackag
56a60 65 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 e();.}.elseif.('install'.===.$op
56a80 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
56aa0 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 28 29 3b 0a 7d 0a e.=.$operation->getPackage();.}.
56ac0 69 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 if.($package.&&.$package->isDev(
56ae0 29 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 )).{.$references.=.$this->packag
56b00 65 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 e->getReferences();.if.(isset($r
56b20 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 29 eferences[$package->getName()]))
56b40 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 65 72 65 6e 63 65 28 .{.$package->setSourceReference(
56b60 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 29 5d $references[$package->getName()]
56b80 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 29 20 7b 0a );.}.}.}..if.($this->verbose).{.
56ba0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 28 73 74 72 69 6e 67 29 20 24 6f 70 65 72 61 $this->io->write((string).$opera
56bc0 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e tion);.}..$this->installationMan
56be0 61 67 65 72 2d 3e 65 78 65 63 75 74 65 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 6f 70 65 72 61 ager->execute($localRepo,.$opera
56c00 74 69 6f 6e 29 3b 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 70 tion);..$event.=.'Composer\Scrip
56c20 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 27 2e 73 t\ScriptEvents::POST_PACKAGE_'.s
56c40 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
56c60 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
56c80 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
56ca0 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
56cc0 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);.}..
56ce0 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f if.(!$this->dryRun).{.$localRepo
56d00 2d 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a ->write();.}.}..return.true;.}..
56d20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 61 63 6b 61 67 65 73 28 50 private.function.aliasPackages(P
56d40 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 latformRepository.$platformRepo)
56d60 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e .{.if.(!$this->update.&&.$this->
56d80 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d locker->isLocked()).{.$aliases.=
56da0 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 20 .$this->locker->getAliases();.}.
56dc0 65 6c 73 65 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 else.{.$aliases.=.$this->package
56de0 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 ->getAliases();.}..foreach.($ali
56e00 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 ases.as.$alias).{.$packages.=.ar
56e20 72 61 79 5f 6d 65 72 67 65 28 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 66 69 6e 64 50 61 ray_merge(.$platformRepo->findPa
56e40 63 6b 61 67 65 73 28 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 61 6c 69 61 73 ckages($alias['package'],.$alias
56e60 5b 27 76 65 72 73 69 6f 6e 27 5d 29 2c 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d ['version']),.$this->repositoryM
56e80 61 6e 61 67 65 72 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 61 6c 69 61 73 5b 27 70 61 63 anager->findPackages($alias['pac
56ea0 6b 61 67 65 27 5d 2c 20 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 29 0a 29 3b 0a 66 6f kage'],.$alias['version']).);.fo
56ec0 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).{.
56ee0 24 70 61 63 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 $package->setAlias($alias['alias
56f00 5f 6e 6f 72 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 _normalized']);.$package->setPre
56f20 74 74 79 41 6c 69 61 73 28 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 70 61 63 6b ttyAlias($alias['alias']);.$pack
56f40 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 age->getRepository()->addPackage
56f60 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 ($aliasPackage.=.new.AliasPackag
56f80 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c e($package,.$alias['alias_normal
56fa0 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 29 3b 0a 24 61 6c 69 61 ized'],.$alias['alias']));.$alia
56fc0 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 sPackage->setRootPackageAlias(tr
56fe0 75 65 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 ue);.}.}..return.$aliases;.}..pr
57000 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 70 64 61 74 65 61 62 6c 65 28 50 61 63 6b ivate.function.isUpdateable(Pack
57020 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 28 21 24 74 ageInterface.$package).{.if.(!$t
57040 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 his->updateWhitelist).{.throw.ne
57060 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 69 73 55 70 64 61 74 65 61 62 6c 65 20 w.\LogicException('isUpdateable.
57080 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 77 68 69 should.only.be.called.when.a.whi
570a0 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 telist.is.present');.}..return.i
570c0 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 sset($this->updateWhitelist[$pac
570e0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a kage->getName()]);.}............
57100 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 55 70 64 61 ..private.function.whitelistUpda
57120 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 76 4d teDependencies($localRepo,.$devM
57140 6f 64 65 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 ode,.array.$rootRequires,.array.
57160 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e $rootDevRequires).{.if.(!$this->
57180 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 updateWhitelist).{.return;.}..if
571a0 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 .($devMode).{.$rootRequires.=.ar
571c0 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 ray_merge($rootRequires,.$rootDe
571e0 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 20 3d 20 61 vRequires);.}..$skipPackages.=.a
57200 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 61 rray();.foreach.($rootRequires.a
57220 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 s.$require).{.$skipPackages[$req
57240 75 69 72 65 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 24 70 uire->getTarget()].=.true;.}..$p
57260 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 ool.=.new.Pool;.$pool->addReposi
57280 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 tory($localRepo);..$seen.=.array
572a0 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 ();..foreach.($this->updateWhite
572c0 6c 69 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 20 7b list.as.$packageName.=>.$void).{
572e0 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a .$packageQueue.=.new.\SplQueue;.
57300 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 .foreach.($pool->whatProvides($p
57320 61 63 6b 61 67 65 4e 61 6d 65 29 20 61 73 20 24 64 65 70 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 ackageName).as.$depPackage).{.$p
57340 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 64 65 70 50 61 63 6b 61 67 65 ackageQueue->enqueue($depPackage
57360 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 69 73 45 );.}..while.(!$packageQueue->isE
57380 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 51 75 65 mpty()).{.$package.=.$packageQue
573a0 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 24 ue->dequeue();.if.(isset($seen[$
573c0 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 69 6e 75 65 3b 0a package->getId()])).{.continue;.
573e0 7d 0a 0a 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 }..$seen[$package->getId()].=.tr
57400 75 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 5b 24 70 61 63 6b ue;.$this->updateWhitelist[$pack
57420 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 24 72 65 71 75 69 72 age->getName()].=.true;..$requir
57440 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 69 66 es.=.$package->getRequires();.if
57460 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f .($devMode).{.$requires.=.array_
57480 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 merge($requires,.$package->getDe
574a0 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 vRequires());.}..foreach.($requi
574c0 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 50 61 63 6b 61 res.as.$require).{.$requirePacka
574e0 67 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 72 65 71 75 69 ges.=.$pool->whatProvides($requi
57500 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 re->getTarget());..foreach.($req
57520 75 69 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 uirePackages.as.$requirePackage)
57540 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 .{.if.(isset($skipPackages[$requ
57560 69 72 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 irePackage->getName()])).{.conti
57580 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 nue;.}.$packageQueue->enqueue($r
575a0 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a equirePackage);.}.}.}.}.}.......
575c0 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 63 72 65 61 74 ....public.static.function.creat
575e0 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d e(IOInterface.$io,.Composer.$com
57600 70 6f 73 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 44 69 73 poser,.EventDispatcher.$eventDis
57620 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f patcher.=.null,.AutoloadGenerato
57640 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 r.$autoloadGenerator.=.null).{.$
57660 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 73 70 61 74 63 68 eventDispatcher.=.$eventDispatch
57680 65 72 20 3f 3a 20 6e 65 77 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f er.?:.new.EventDispatcher($compo
576a0 73 65 72 2c 20 24 69 6f 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 ser,.$io);.$autoloadGenerator.=.
576c0 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3f 3a 20 6e 65 77 20 41 75 74 6f 6c 6f $autoloadGenerator.?:.new.Autolo
576e0 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 adGenerator;..return.new.static(
57700 0a 24 69 6f 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2c 0a 24 63 .$io,.$composer->getConfig(),.$c
57720 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 omposer->getPackage(),.$composer
57740 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 ->getDownloadManager(),.$compose
57760 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 2c 0a 24 63 6f 6d 70 r->getRepositoryManager(),.$comp
57780 6f 73 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 oser->getLocker(),.$composer->ge
577a0 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 0a 24 65 76 65 6e 74 44 69 tInstallationManager(),.$eventDi
577c0 73 70 61 74 63 68 65 72 2c 0a 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 0a 29 3b 0a spatcher,.$autoloadGenerator.);.
577e0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 64 69 74 69 6f 6e 61 6c }..public.function.setAdditional
57800 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e InstalledRepository(RepositoryIn
57820 74 65 72 66 61 63 65 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f terface.$additionalInstalledRepo
57840 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 sitory).{.$this->additionalInsta
57860 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 lledRepository.=.$additionalInst
57880 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a alledRepository;..return.$this;.
578a0 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 72 79 52 }........public.function.setDryR
578c0 75 6e 28 24 64 72 79 52 75 6e 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 79 52 un($dryRun.=.true).{.$this->dryR
578e0 75 6e 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 72 79 52 75 6e 3b 0a 0a 72 65 74 75 72 6e 20 un.=.(boolean).$dryRun;..return.
57900 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 6e 20 $this;.}........public.function.
57920 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 setPreferSource($preferSource.=.
57940 74 72 75 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 28 62 true).{.$this->preferSource.=.(b
57960 6f 6f 6c 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 oolean).$preferSource;..return.$
57980 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 6e 20 73 this;.}........public.function.s
579a0 65 74 55 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 etUpdate($update.=.true).{.$this
579c0 2d 3e 75 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 ->update.=.(boolean).$update;..r
579e0 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 6e eturn.$this;.}........public.fun
57a00 63 74 69 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 ction.setDevMode($devMode.=.true
57a20 29 0a 7b 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 ).{.$this->devMode.=.(boolean).$
57a40 64 65 76 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 devMode;..return.$this;.}.......
57a60 0a 70 75 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 .public.function.setRunScripts($
57a80 72 75 6e 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 runScripts.=.true).{.$this->runS
57aa0 63 72 69 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 cripts.=.(boolean).$runScripts;.
57ac0 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 6c 69 63 20 66 .return.$this;.}........public.f
57ae0 75 6e 63 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 unction.setConfig(Config.$config
57b00 29 0a 7b 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 ).{.$this->config.=.$config;..re
57b20 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
57b40 74 69 6f 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 tion.setVerbose($verbose.=.true)
57b60 0a 7b 0a 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 .{.$this->verbose.=.(boolean).$v
57b80 65 72 62 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 erbose;..return.$this;.}........
57ba0 0a 70 75 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 .public.function.setUpdateWhitel
57bc0 69 73 74 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 ist(array.$packages).{.$this->up
57be0 64 61 74 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 dateWhitelist.=.array_flip(array
57c00 5f 6d 61 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 _map('strtolower',.$packages));.
57c20 0a 72 65 74 75 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 .return.$this;.}.}.<?php../*..*.
57c40 54 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 This.file.is.part.of.Composer...
57c60 2a 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 *..*.(c).Nils.Adermann.<naderman
57c80 40 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 @naderman.de>..*.....Jordi.Boggi
57ca0 61 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 ano.<j.boggiano@seld.be>..*..*.F
57cc0 6f 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 or.the.full.copyright.and.licens
57ce0 65 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 20 74 68 65 20 4c e.information,.please.view.the.L
57d00 49 43 45 4e 53 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 ICENSE..*.file.that.was.distribu
57d20 74 65 64 20 77 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 ted.with.this.source.code...*/..
57d40 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 0a 2f 2a namespace.Composer\Autoload;../*
57d60 2a 0a 20 2a 20 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 *..*.ClassLoader.implements.a.PS
57d80 52 2d 30 20 63 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 R-0.class.loader..*..*.See.https
57da0 3a 2f 2f 67 69 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 ://github.com/php-fig/fig-standa
57dc0 72 64 73 2f 62 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 rds/blob/master/accepted/PSR-0.m
57de0 64 0a 20 2a 0a 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 d..*..*.....$loader.=.new.\Compo
57e00 73 65 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 20 2a 0a 20 ser\Autoload\ClassLoader();..*..
57e20 2a 20 20 20 20 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 *.....//.register.classes.with.n
57e40 61 6d 65 73 70 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 amespaces..*.....$loader->add('S
57e60 79 6d 66 6f 6e 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 ymfony\Component',.__DIR__.'/com
57e80 70 6f 6e 65 6e 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 ponent');..*.....$loader->add('S
57ea0 79 6d 66 6f 6e 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 ymfony',...........__DIR__.'/fra
57ec0 6d 65 77 6f 72 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 mework');..*..*.....//.activate.
57ee0 74 68 65 20 61 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 the.autoloader..*.....$loader->r
57f00 65 67 69 73 74 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 egister();..*..*.....//.to.enabl
57f20 65 20 73 65 61 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 e.searching.the.include.path.(eg
57f40 2e 20 66 6f 72 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 ..for.PEAR.packages)..*.....$loa
57f60 64 65 72 2d 3e 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 der->setUseIncludePath(true);..*
57f80 0a 20 2a 20 49 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 ..*.In.this.example,.if.you.try.
57fa0 74 6f 20 75 73 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 to.use.a.class.in.the.Symfony\Co
57fc0 6d 70 6f 6e 65 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 mponent..*.namespace.or.one.of.i
57fe0 74 73 20 63 68 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 ts.children.(Symfony\Component\C
58000 6f 6e 73 6f 6c 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 onsole.for.instance),..*.the.aut
58020 6f 6c 6f 61 64 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 oloader.will.first.look.for.the.
58040 63 6c 61 73 73 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 class.under.the.component/..*.di
58060 72 65 63 74 6f 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 rectory,.and.it.will.then.fallba
58080 63 6b 20 74 6f 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 ck.to.the.framework/.directory.i
580a0 66 20 6e 6f 74 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 f.not..*.found.before.giving.up.
580c0 0a 20 2a 0a 20 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 ..*..*.This.class.is.loosely.bas
580e0 65 64 20 6f 6e 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 ed.on.the.Symfony.UniversalClass
58100 4c 6f 61 64 65 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 Loader...*..*.@author.Fabien.Pot
58120 65 6e 63 69 65 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 encier.<fabien@symfony.com>..*.@
58140 61 75 74 68 6f 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 author.Jordi.Boggiano.<j.boggian
58160 6f 40 73 65 6c 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 o@seld.be>..*/.class.ClassLoader
58180 0a 7b 0a 20 20 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 .{.....private.$prefixes.=.array
581a0 28 29 3b 0a 20 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 ();.....private.$fallbackDirs.=.
581c0 61 72 72 61 79 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 array();.....private.$useInclude
581e0 50 61 74 68 20 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 Path.=.false;.....private.$class
58200 4d 61 70 20 3d 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 Map.=.array();......public.funct
58220 69 6f 6e 20 67 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 ion.getPrefixes().....{.........
58240 72 65 74 75 72 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 return.$this->prefixes;.....}...
58260 20 20 20 70 75 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 ...public.function.getFallbackDi
58280 72 73 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 rs().....{.........return.$this-
582a0 3e 66 61 6c 6c 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 >fallbackDirs;.....}......public
582c0 20 66 75 6e 63 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 .function.getClassMap().....{...
582e0 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 70 3b 0a 20 20 ......return.$this->classMap;...
58300 20 20 7d 0a 0a 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 ..}....../**......*.@param.array
58320 20 24 63 6c 61 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 .$classMap.Class.to.filename.map
58340 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 61 64 64 ......*/.....public.function.add
58360 43 6c 61 73 73 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 ClassMap(array.$classMap).....{.
58380 20 20 20 20 20 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 ........if.($this->classMap).{..
583a0 20 20 20 20 20 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 ...........$this->classMap.=.arr
583c0 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 63 6c 61 73 73 ay_merge($this->classMap,.$class
583e0 4d 61 70 29 3b 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 Map);.........}.else.{..........
58400 20 20 20 24 74 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 ...$this->classMap.=.$classMap;.
58420 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 20 20 20 20 20 2a 20 ........}.....}....../**......*.
58440 52 65 67 69 73 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 Registers.a.set.of.classes......
58460 2a 0a 20 20 20 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 *......*.@param.string.......$pr
58480 65 66 69 78 20 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 efix.The.classes.prefix......*.@
584a0 70 61 72 61 6d 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 param.array|string.$paths..The.l
584c0 6f 63 61 74 69 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 ocation(s).of.the.classes......*
584e0 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 28 24 70 72 65 66 69 /.....public.function.add($prefi
58500 78 2c 20 24 70 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 x,.$paths).....{.........if.(!$p
58520 72 65 66 69 78 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 refix).{.............foreach.((a
58540 72 72 61 79 29 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 rray).$paths.as.$path).{........
58560 20 20 20 20 20 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 .........$this->fallbackDirs[].=
58580 20 24 70 61 74 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 .$path;.............}...........
585a0 20 20 20 72 65 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 ...return;.........}.........if.
585c0 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 65 66 69 78 5d 29 (isset($this->prefixes[$prefix])
585e0 29 20 7b 0a 20 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 ).{.............$this->prefixes[
58600 24 70 72 65 66 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 $prefix].=.array_merge(.........
58620 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]
58640 2c 0a 20 20 20 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 ,.................(array).$paths
58660 0a 20 20 20 20 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 .............);.........}.else.{
58680 0a 20 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 .............$this->prefixes[$pr
586a0 65 66 69 78 5d 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 efix].=.(array).$paths;.........
586c0 7d 0a 20 20 20 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 }.....}....../**......*.Turns.on
586e0 20 73 65 61 72 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 .searching.the.include.path.for.
58700 63 6c 61 73 73 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 class.files.......*......*.@para
58720 6d 20 62 6f 6f 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 m.bool.$useIncludePath......*/..
58740 20 20 20 70 75 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 ...public.function.setUseInclude
58760 50 61 74 68 28 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 Path($useIncludePath).....{.....
58780 20 20 20 20 24 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 ....$this->useIncludePath.=.$use
587a0 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 20 20 IncludePath;.....}....../**.....
587c0 20 2a 20 43 61 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 .*.Can.be.used.to.check.if.the.a
587e0 75 74 6f 6c 6f 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 utoloader.uses.the.include.path.
58800 74 6f 20 63 68 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 to.check......*.for.classes.....
58820 20 20 2a 0a 20 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 ..*......*.@return.bool......*/.
58840 20 20 20 20 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 ....public.function.getUseInclud
58860 65 50 61 74 68 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 ePath().....{.........return.$th
58880 69 73 2d 3e 75 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 is->useIncludePath;.....}....../
588a0 2a 2a 0a 20 20 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 **......*.Registers.this.instanc
588c0 65 20 61 73 20 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 e.as.an.autoloader.......*......
588e0 2a 20 40 70 61 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 *.@param.bool.$prepend.Whether.t
58900 6f 20 70 72 65 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 o.prepend.the.autoloader.or.not.
58920 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 72 65 67 69 .....*/.....public.function.regi
58940 73 74 65 72 28 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 ster($prepend.=.false).....{....
58960 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 61 72 72 61 79 .....spl_autoload_register(array
58980 28 24 74 68 69 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 ($this,.'loadClass'),.true,.$pre
589a0 70 65 6e 64 29 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 pend);.....}....../**......*.Unr
589c0 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 61 6e 20 61 75 74 egisters.this.instance.as.an.aut
589e0 6f 6c 6f 61 64 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 oloader.......*/.....public.func
58a00 74 69 6f 6e 20 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 tion.unregister().....{.........
58a20 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 28 24 74 spl_autoload_unregister(array($t
58a40 68 69 73 2c 20 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 his,.'loadClass'));.....}....../
58a60 2a 2a 0a 20 20 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 **......*.Loads.the.given.class.
58a80 6f 72 20 69 6e 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 or.interface.......*......*.@par
58aa0 61 6d 20 20 73 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 am..string....$class.The.name.of
58ac0 20 74 68 65 20 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 .the.class......*.@return.bool|n
58ae0 75 6c 6c 20 54 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 ull.True,.if.loaded......*/.....
58b00 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
58b20 29 0a 20 20 20 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 ).....{.........if.($file.=.$thi
58b40 73 2d 3e 66 69 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 s->findFile($class)).{..........
58b60 20 20 20 69 6e 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 ...include.$file;..............r
58b80 65 74 75 72 6e 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 eturn.true;.........}.....}.....
58ba0 20 2f 2a 2a 0a 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 ./**......*.Finds.the.path.to.th
58bc0 65 20 66 69 6c 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 e.file.where.the.class.is.define
58be0 64 2e 0a 20 20 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 d.......*......*.@param.string.$
58c00 63 6c 61 73 73 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 class.The.name.of.the.class.....
58c20 20 2a 0a 20 20 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 .*......*.@return.string|null.Th
58c40 65 20 70 61 74 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 e.path,.if.found......*/.....pub
58c60 6c 69 63 20 66 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 lic.function.findFile($class)...
58c80 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 ..{.........if.(isset($this->cla
58ca0 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ssMap[$class])).{.............re
58cc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 turn.$this->classMap[$class];...
58ce0 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c ......}..........if.('\\'.==.$cl
58d00 61 73 73 5b 30 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 20 3d 20 73 ass[0]).{.............$class.=.s
58d20 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 ubstr($class,.1);.........}.....
58d40 20 20 20 20 20 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 .....if.(false.!==.$pos.=.strrpo
58d60 73 28 24 63 6c 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 s($class,.'\\')).{............./
58d80 2f 20 6e 61 6d 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 /.namespaced.class.name.........
58da0 20 20 20 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 28 27 5c 5c ....$classPath.=.str_replace('\\
58dc0 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 74 72 28 24 ',.DIRECTORY_SEPARATOR,.substr($
58de0 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 5f 53 45 50 class,.0,.$pos))...DIRECTORY_SEP
58e00 41 52 41 54 4f 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 ARATOR;.............$className.=
58e20 20 73 75 62 73 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 .substr($class,.$pos.+.1);......
58e40 20 20 20 7d 20 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 ...}.else.{.............//.PEAR-
58e60 6c 69 6b 65 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 63 6c 61 like.class.name.............$cla
58e80 73 73 50 61 74 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 ssPath.=.null;.............$clas
58ea0 73 4e 61 6d 65 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 sName.=.$class;.........}.......
58ec0 20 20 20 24 63 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 ...$classPath..=.str_replace('_'
58ee0 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 61 73 73 4e 61 6d ,.DIRECTORY_SEPARATOR,.$classNam
58f00 65 29 20 2e 20 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 e)...'.php';..........foreach.($
58f20 74 68 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 this->prefixes.as.$prefix.=>.$di
58f40 72 73 29 20 7b 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 rs).{.............if.(0.===.strp
58f60 6f 73 28 24 63 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 os($class,.$prefix)).{..........
58f80 20 20 20 20 20 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 .......foreach.($dirs.as.$dir).{
58fa0 0a 20 20 20 20 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 .....................if.(file_ex
58fc0 69 73 74 73 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 ists($dir...DIRECTORY_SEPARATOR.
58fe0 2e 20 24 63 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 ..$classPath)).{................
59000 20 20 20 20 20 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 .........return.$dir...DIRECTORY
59020 5f 53 45 50 41 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 _SEPARATOR...$classPath;........
59040 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 20 7d .............}.................}
59060 0a 20 20 20 20 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 .............}.........}........
59080 20 20 66 6f 72 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 ..foreach.($this->fallbackDirs.a
590a0 73 20 24 64 69 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 s.$dir).{.............if.(file_e
590c0 78 69 73 74 73 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 xists($dir...DIRECTORY_SEPARATOR
590e0 20 2e 20 24 63 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 ...$classPath)).{...............
59100 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 52 41 ..return.$dir...DIRECTORY_SEPARA
59120 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 7d 0a TOR...$classPath;.............}.
59140 20 20 20 20 20 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 ........}..........if.($this->us
59160 65 49 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 eIncludePath.&&.$file.=.stream_r
59180 65 73 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 esolve_include_path($classPath))
591a0 20 7b 0a 20 20 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 .{.............return.$file;....
591c0 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 5b 0a 20 20 20 20 22 41 46 4c 2d 31 2e 31 22 2c 20 .....}.....}.}.[....."AFL-1.1",.
591e0 22 41 46 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 2c 20 22 41 46 4c 2d 32 2e 31 22 2c "AFL-1.2",."AFL-2.0",."AFL-2.1",
59200 20 22 41 46 4c 2d 33 2e 30 22 2c 20 22 41 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 41 4e 54 4c ."AFL-3.0",."APL-1.0",....."ANTL
59220 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 30 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 31 R-PD",."Apache-1.0",."Apache-1.1
59240 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 30 22 2c 20 22 41 50 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 ",."Apache-2.0",."APSL-1.0",....
59260 20 22 41 50 53 4c 2d 31 2e 31 22 2c 20 22 41 50 53 4c 2d 31 2e 32 22 2c 20 22 41 50 53 4c 2d 32 ."APSL-1.1",."APSL-1.2",."APSL-2
59280 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 32 .0",."Artistic-1.0",."Artistic-2
592a0 2e 30 22 2c 20 22 41 41 4c 22 2c 0a 20 20 20 20 22 42 53 4c 2d 31 2e 30 22 2c 20 22 42 53 44 2d .0",."AAL",....."BSL-1.0",."BSD-
592c0 32 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 2-Clause",."BSD-2-Clause-NetBSD"
592e0 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 42 53 44 22 2c 0a 20 20 20 20 22 42 ,."BSD-2-Clause-FreeBSD",....."B
59300 53 44 2d 33 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 34 2d 43 6c 61 75 73 65 22 2c 20 22 42 SD-3-Clause",."BSD-4-Clause",."B
59320 53 44 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 43 45 43 49 4c 4c 2d 31 2e 30 22 2c 0a 20 SD-4-Clause-UC",."CECILL-1.0",..
59340 20 20 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 43 49 4c 4c 2d 32 2e 30 22 2c 20 22 ..."CECILL-1.1",."CECILL-2.0",."
59360 43 45 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 22 2c 20 22 43 6c 41 72 74 69 73 74 CECILL-B",."CECILL-C",."ClArtist
59380 69 63 22 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 2d 47 50 4c 2d 43 6f 6d 70 61 74 ic",....."CNRI-Python-GPL-Compat
593a0 69 62 6c 65 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 2c 20 22 43 44 44 4c 2d 31 2e 30 22 ible",."CNRI-Python",."CDDL-1.0"
593c0 2c 20 22 43 44 44 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 50 41 4c 2d 31 2e 30 22 2c 20 22 43 ,."CDDL-1.1",....."CPAL-1.0",."C
593e0 50 4c 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 22 2c 20 22 43 43 2d 42 59 2d 31 2e PL-1.0",."CATOSL-1.1",."CC-BY-1.
59400 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 35 22 2c 0a 20 20 0",."CC-BY-2.0",."CC-BY-2.5",...
59420 20 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 .."CC-BY-3.0",."CC-BY-ND-1.0",."
59440 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 35 22 2c 20 22 CC-BY-ND-2.0",."CC-BY-ND-2.5",."
59460 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 31 2e 30 CC-BY-ND-3.0",....."CC-BY-NC-1.0
59480 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 ",."CC-BY-NC-2.0",."CC-BY-NC-2.5
594a0 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 ",."CC-BY-NC-3.0",....."CC-BY-NC
594c0 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 -ND-1.0",."CC-BY-NC-ND-2.0",."CC
594e0 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 -BY-NC-ND-2.5",."CC-BY-NC-ND-3.0
59500 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 ",....."CC-BY-NC-SA-1.0",."CC-BY
59520 2d 4e 43 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 35 22 2c 20 -NC-SA-2.0",."CC-BY-NC-SA-2.5",.
59540 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 53 41 "CC-BY-NC-SA-3.0",....."CC-BY-SA
59560 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 -1.0",."CC-BY-SA-2.0",."CC-BY-SA
59580 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 33 2e 30 22 2c 20 22 43 43 30 2d 31 2e 30 22 -2.5",."CC-BY-SA-3.0",."CC0-1.0"
595a0 2c 0a 20 20 20 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c 20 22 45 50 4c 2d 31 2e 30 22 2c 20 ,....."CUA-OPL-1.0",."EPL-1.0",.
595c0 22 65 43 6f 73 2d 32 2e 30 22 2c 20 22 45 43 4c 2d 31 2e 30 22 2c 20 22 45 43 4c 2d 32 2e 30 22 "eCos-2.0",."ECL-1.0",."ECL-2.0"
595e0 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 45 46 4c 2d 32 2e 30 22 2c 20 22 45 6e 74 ,."EFL-1.0",....."EFL-2.0",."Ent
59600 65 73 73 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 20 22 45 55 44 61 74 61 67 72 69 64 22 essa",."ErlPL-1.1",."EUDatagrid"
59620 2c 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 46 ,."EUPL-1.0",."EUPL-1.1",....."F
59640 61 69 72 22 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 22 2c 20 22 41 47 50 4c 2d 33 2e 30 air",."Frameworx-1.0",."AGPL-3.0
59660 22 2c 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c 2d 31 2e 32 22 2c 20 22 47 46 44 4c ",."GFDL-1.1",."GFDL-1.2",."GFDL
59680 2d 31 2e 33 22 2c 0a 20 20 20 20 22 47 50 4c 2d 31 2e 30 22 2c 20 22 47 50 4c 2d 31 2e 30 2b 22 -1.3",....."GPL-1.0",."GPL-1.0+"
596a0 2c 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e 30 2b 22 2c 0a 20 20 20 20 22 47 50 ,."GPL-2.0",."GPL-2.0+",....."GP
596c0 4c 2d 32 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 L-2.0-with-autoconf-exception",.
596e0 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a "GPL-2.0-with-bison-exception",.
59700 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c 61 73 73 70 61 74 68 2d 65 78 63 65 ...."GPL-2.0-with-classpath-exce
59720 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 66 6f 6e 74 2d 65 78 63 65 70 ption",."GPL-2.0-with-font-excep
59740 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 47 43 43 2d 65 78 63 tion",....."GPL-2.0-with-GCC-exc
59760 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 20 22 47 50 4c 2d 33 2e 30 2b 22 2c 0a eption",."GPL-3.0",."GPL-3.0+",.
59780 20 20 20 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 ...."GPL-3.0-with-autoconf-excep
597a0 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 tion",."GPL-3.0-with-GCC-excepti
597c0 6f 6e 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 0a 20 20 20 20 22 4c 47 50 4c 2d 32 2e 31 2b 22 on",."LGPL-2.1",....."LGPL-2.1+"
597e0 2c 20 22 4c 47 50 4c 2d 33 2e 30 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 2b 22 2c 20 22 4c 47 50 4c ,."LGPL-3.0",."LGPL-3.0+",."LGPL
59800 2d 32 2e 30 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 20 22 67 53 4f 41 50 2d 31 2e 33 62 22 -2.0",."LGPL-2.0+",."gSOAP-1.3b"
59820 2c 0a 20 20 20 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 2e 30 22 2c 20 22 49 50 41 22 2c 20 ,....."HPND",."IPL-1.0",."IPA",.
59840 22 49 53 43 22 2c 20 22 4c 50 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 50 4c 2d 31 2e 31 22 2c 20 22 "ISC",."LPPL-1.0",."LPPL-1.1",."
59860 4c 50 50 4c 2d 31 2e 32 22 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e 33 63 22 2c 20 22 4c 69 62 LPPL-1.2",....."LPPL-1.3c",."Lib
59880 70 6e 67 22 2c 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4c 50 4c 2d 31 2e 30 32 22 2c 20 22 4d 53 png",."LPL-1.0",."LPL-1.02",."MS
598a0 2d 50 4c 22 2c 20 22 4d 53 2d 52 4c 22 2c 20 22 4d 69 72 4f 53 22 2c 0a 20 20 20 20 22 4d 49 54 -PL",."MS-RL",."MirOS",....."MIT
598c0 22 2c 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d 50 4c 2d 31 2e 30 22 2c 20 22 4d 50 4c 2d 31 ",."Motosoto",."MPL-1.0",."MPL-1
598e0 2e 31 22 2c 20 22 4d 50 4c 2d 32 2e 30 22 2c 20 22 4d 75 6c 74 69 63 73 22 2c 20 22 4e 41 53 41 .1",."MPL-2.0",."Multics",."NASA
59900 2d 31 2e 33 22 2c 0a 20 20 20 20 22 4e 61 75 6d 65 6e 22 2c 20 22 4e 47 50 4c 22 2c 20 22 4e 6f -1.3",....."Naumen",."NGPL",."No
59920 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 20 22 4e 54 50 22 2c 20 22 4f 43 4c 43 2d kia",."NPOSL-3.0",."NTP",."OCLC-
59940 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 50 44 44 4c 2d 31 2e 30 22 2.0",."ODbL-1.0",....."PDDL-1.0"
59960 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 2c 20 22 4f 53 4c 2d 32 2e 30 22 2c ,."OGTSL",."OSL-1.0",."OSL-2.0",
59980 20 22 4f 53 4c 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 4f 4c 44 41 ."OSL-2.1",."OSL-3.0",....."OLDA
599a0 50 2d 32 2e 38 22 2c 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 50 48 50 2d 33 2e 30 22 2c 20 22 50 P-2.8",."OpenSSL",."PHP-3.0",."P
599c0 48 50 2d 33 2e 30 31 22 2c 20 22 50 6f 73 74 67 72 65 53 51 4c 22 2c 20 22 50 79 74 68 6f 6e 2d HP-3.01",."PostgreSQL",."Python-
599e0 32 2e 30 22 2c 0a 20 20 20 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 52 50 53 4c 2d 31 2e 30 22 2c 2.0",....."QPL-1.0",."RPSL-1.0",
59a00 20 22 52 50 4c 2d 31 2e 35 22 2c 20 22 52 48 65 43 6f 73 2d 31 2e 31 22 2c 20 22 52 53 43 50 4c ."RPL-1.5",."RHeCos-1.1",."RSCPL
59a20 22 2c 20 22 52 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 0a 20 20 20 20 22 4f 46 4c 2d 31 2e ",."Ruby",."SAX-PD",....."OFL-1.
59a40 30 22 2c 20 22 4f 46 4c 2d 31 2e 31 22 2c 20 22 53 69 6d 50 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 0",."OFL-1.1",."SimPL-2.0",."Sle
59a60 65 70 79 63 61 74 22 2c 20 22 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e 33 22 2c 20 22 53 50 4c 2d epycat",."SugarCRM-1.1.3",."SPL-
59a80 31 2e 30 22 2c 0a 20 20 20 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 20 22 4e 43 53 41 22 2c 20 1.0",....."Watcom-1.0",."NCSA",.
59aa0 22 56 53 4c 2d 31 2e 30 22 2c 20 22 57 33 43 22 2c 20 22 57 58 77 69 6e 64 6f 77 73 22 2c 20 22 "VSL-1.0",."W3C",."WXwindows",."
59ac0 58 6e 65 74 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e 31 22 2c 0a 20 20 20 20 22 59 50 4c 2d 31 Xnet",."XFree86-1.1",....."YPL-1
59ae0 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 20 22 5a 69 6d 62 72 61 2d 31 2e 33 22 2c 20 22 5a .0",."YPL-1.1",."Zimbra-1.3",."Z
59b00 6c 69 62 22 2c 20 22 5a 50 4c 2d 31 2e 31 22 2c 20 22 5a 50 4c 2d 32 2e 30 22 2c 20 22 5a 50 4c lib",."ZPL-1.1",."ZPL-2.0",."ZPL
59b20 2d 32 2e 31 22 0a 5d 7b 0a 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 50 61 63 6b 61 67 65 22 2c 0a -2.1".]{....."name":."Package",.
59b40 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 22 61 64 64 69 74 ...."type":."object",....."addit
59b60 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 20 20 22 70 72 ionalProperties":.false,....."pr
59b80 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 operties":.{........."name":.{..
59ba0 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 20 20 ..........."type":."string",....
59bc0 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 50 61 63 6b 61 67 65 ........."description":."Package
59be0 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 6e 64 6f 72 2d 6e 61 6d 65 2f 27 20 .name,.including.'vendor-name/'.
59c00 70 72 65 66 69 78 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 prefix.",............."required"
59c20 3a 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 74 79 70 65 22 :.true.........},........."type"
59c40 3a 20 7b 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 :.{............."description":."
59c60 50 61 63 6b 61 67 65 20 74 79 70 65 2c 20 65 69 74 68 65 72 20 27 6c 69 62 72 61 72 79 27 20 66 Package.type,.either.'library'.f
59c80 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 67 65 73 2c 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e or.common.packages,.'composer-in
59ca0 73 74 61 6c 6c 65 72 27 20 66 6f 72 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 2c 20 staller'.for.custom.installers,.
59cc0 27 6d 65 74 61 70 61 63 6b 61 67 65 27 20 66 6f 72 20 65 6d 70 74 79 20 70 61 63 6b 61 67 65 73 'metapackage'.for.empty.packages
59ce0 2c 20 6f 72 20 61 20 63 75 73 74 6f 6d 20 74 79 70 65 20 64 65 66 69 6e 65 64 20 62 79 20 77 68 ,.or.a.custom.type.defined.by.wh
59d00 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 61 70 70 6c atever.project.this.package.appl
59d20 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 ies.to.",............."type":."s
59d40 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 61 72 67 65 tring".........},........."targe
59d60 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 t-dir":.{............."descripti
59d80 6f 6e 22 3a 20 22 46 6f 72 63 65 73 20 74 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 on":."Forces.the.package.to.be.i
59da0 6e 73 74 61 6c 6c 65 64 20 69 6e 74 6f 20 74 68 65 20 67 69 76 65 6e 20 73 75 62 64 69 72 65 63 nstalled.into.the.given.subdirec
59dc0 74 6f 72 79 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 75 74 6f tory.path..This.is.used.for.auto
59de0 6c 6f 61 64 69 6e 67 20 50 53 52 2d 30 20 70 61 63 6b 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e loading.PSR-0.packages.that.do.n
59e00 6f 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 69 72 20 66 75 6c 6c 20 70 61 74 68 2e 20 55 73 65 20 ot.contain.their.full.path..Use.
59e20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65 73 20 66 6f 72 20 63 72 6f 73 73 2d 70 6c 61 74 66 6f forward.slashes.for.cross-platfo
59e40 72 6d 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 rm.compatibility.",.............
59e60 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 20 20 "type":."string".........},.....
59e80 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ...."description":.{............
59ea0 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 22 ."type":."string",............."
59ec0 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 68 6f 72 74 20 70 61 63 6b 61 67 65 20 64 65 73 description":."Short.package.des
59ee0 63 72 69 70 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 cription.",............."require
59f00 64 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 20 20 22 6b 65 79 d":.true.........},........."key
59f20 77 6f 72 64 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 22 61 words":.{............."type":."a
59f40 72 72 61 79 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 rray",............."items":.{...
59f60 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 2c 0a .............."type":."string",.
59f80 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 3a 20 22 ................"description":."
59fa0 41 20 74 61 67 2f 6b 65 79 77 6f 72 64 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 A.tag/keyword.that.this.package.
59fc0 72 65 6c 61 74 65 73 20 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 relates.to.".............}......
59fe0 20 20 20 7d 2c 0a 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":.{.....
5a000 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",.......
5a020 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 ......"description":."Homepage.U
5a040 52 4c 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 RL.for.the.project.",...........
5a060 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 7d 2c 0a 20 20 20 .."format":."uri".........},....
5a080 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 ....."version":.{............."t
5a0a0 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 22 64 65 73 ype":."string",............."des
5a0c0 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 2c 20 73 65 65 cription":."Package.version,.see
5a0e0 20 68 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 30 34 2d 73 .http://getcomposer.org/doc/04-s
5a100 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f chema.md#version.for.more.info.o
5a120 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 n.valid.schemes.".........},....
5a140 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 ....."time":.{............."type
5a160 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 22 64 65 73 63 72 69 ":."string",............."descri
5a180 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 72 65 6c 65 61 73 65 20 64 61 74 65 2c 20 69 ption":."Package.release.date,.i
5a1a0 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 20 6f 72 20 27 59 59 59 59 2d 4d 4d 2d 44 44 20 48 48 n.'YYYY-MM-DD'.or.'YYYY-MM-DD.HH
5a1c0 3a 4d 4d 3a 53 53 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 :MM:SS'.format.".........},.....
5a1e0 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ...."license":.{............."ty
5a200 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 pe":.["string",."array"],.......
5a220 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 63 65 6e 73 65 20 6e 61 ......"description":."License.na
5a240 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 65 6e 73 65 20 6e 61 6d 65 73 me..Or.an.array.of.license.names
5a260 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f 72 73 22 3a .".........},........."authors":
5a280 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a .{............."type":."array",.
5a2a0 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 4c 69 73 74 ............"description":."List
5a2c0 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 69 62 75 74 65 64 20 74 6f 20 .of.authors.that.contributed.to.
5a2e0 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 the.package..This.is.typically.t
5a300 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e 6f 74 20 74 68 65 20 66 75 6c he.main.maintainers,.not.the.ful
5a320 6c 20 6c 69 73 74 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 l.list.",............."items":.{
5a340 0a 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 6a 65 63 74 ................."type":."object
5a360 22 2c 0a 20 20 20 20 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 ",................."additionalPr
5a380 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 operties":.false,...............
5a3a0 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 20 20 20 20 20 20 20 .."properties":.{...............
5a3c0 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"name":.{.................
5a3e0 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",.......
5a400 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 3a .................."description":
5a420 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 ."Full.name.of.the.author.",....
5a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a ....................."required":
5a460 20 74 72 75 65 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 .true.....................},....
5a480 20 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 20 20 20 20 ................."email":.{.....
5a4a0 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
5a4c0 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
5a4e0 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 6f 66 20 74 escription":."Email.address.of.t
5a500 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.",....................
5a520 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 ....."format":."email"..........
5a540 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 20 20 ...........},...................
5a560 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."homepage":.{.................
5a580 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",.......
5a5a0 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 3a .................."description":
5a5c0 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c ."Homepage.URL.for.the.author.",
5a5e0 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 66 6f 72 6d 61 74 ........................."format
5a600 22 3a 20 22 75 72 69 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 ":."uri".....................},.
5a620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 22 3a 20 7b 0a 20 20 ...................."role":.{...
5a640 20 20 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 ......................"type":."s
5a660 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 20 20 20 20 tring",.........................
5a680 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 72 6f 6c 65 20 69 6e "description":."Author's.role.in
5a6a0 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .the.project."..................
5a6c0 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 20 ...}.................}..........
5a6e0 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 72 65 71 75 69 72 65 ...}.........},........."require
5a700 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 74 ":.{............."type":."object
5a720 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 54 ",............."description":."T
5a740 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 6b his.is.a.hash.of.package.name.(k
5a760 65 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 eys).and.version.constraints.(va
5a780 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 75 6e 20 74 lues).that.are.required.to.run.t
5a7a0 68 69 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 his.package.",............."addi
5a7c0 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 20 20 20 tionalProperties":.true.........
5a7e0 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 },........."replace":.{.........
5a800 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 20 20 20 20 ...."type":."object",...........
5a820 20 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 .."description":."This.is.a.hash
5a840 20 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 .of.package.name.(keys).and.vers
5a860 69 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 61 ion.constraints.(values).that.ca
5a880 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c n.be.replaced.by.this.package.",
5a8a0 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 70 65 72 74 69 ............."additionalProperti
5a8c0 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 20 20 22 63 6f es":.true.........},........."co
5a8e0 6e 66 6c 69 63 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 nflict":.{............."type":."
5a900 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 72 69 70 74 69 6f object",............."descriptio
5a920 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 6b 61 67 65 20 6e n":."This.is.a.hash.of.package.n
5a940 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 73 74 72 61 69 6e ame.(keys).and.version.constrain
5a960 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 74 ts.(values).that.conflict.with.t
5a980 68 69 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 his.package.",............."addi
5a9a0 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 20 20 20 tionalProperties":.true.........
5a9c0 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 },........."provide":.{.........
5a9e0 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 20 20 20 20 ...."type":."object",...........
5aa00 20 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 .."description":."This.is.a.hash
5aa20 20 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 .of.package.name.(keys).and.vers
5aa40 69 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 74 68 ion.constraints.(values).that.th
5aa60 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 is.package.provides.in.addition.
5aa80 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c 0a 20 20 20 20 20 20 to.this.package's.name.",.......
5aaa0 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 72 ......"additionalProperties":.tr
5aac0 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 71 75 69 72 65 2d 64 ue.........},........."require-d
5aae0 65 76 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 ev":.{............."type":."obje
5ab00 63 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 ct",............."description":.
5ab20 22 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 "This.is.a.hash.of.package.name.
5ab40 28 6b 65 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 (keys).and.version.constraints.(
5ab60 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 values).that.this.package.requir
5ab80 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 74 69 6e 67 20 74 6f es.for.developing.it.(testing.to
5aba0 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 ols.and.such).",............."ad
5abc0 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 20 ditionalProperties":.true.......
5abe0 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b 0a 20 20 20 20 20 20 ..},........."suggest":.{.......
5ac00 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 20 20 ......"type":."object",.........
5ac20 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 69 73 20 61 20 68 61 ...."description":."This.is.a.ha
5ac40 73 68 20 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 64 65 sh.of.package.name.(keys).and.de
5ac60 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 scriptions.(values).that.this.pa
5ac80 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 77 69 74 68 20 69 74 ckage.suggests.work.well.with.it
5aca0 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 64 20 74 6f 20 74 68 65 20 .(this.will.be.suggested.to.the.
5acc0 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 2e 22 2c 0a 20 20 20 user.during.installation).",....
5ace0 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":
5ad00 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 63 6f 6e 66 69 67 .true.........},........."config
5ad20 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 65 63 ":.{............."type":.["objec
5ad40 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 22 3a 20 t"],............."description":.
5ad60 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 "Composer.options.",............
5ad80 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."properties":.{................
5ada0 20 22 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."vendor-dir":.{................
5adc0 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 20 20 ....."type":."string",..........
5ade0 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 6c ..........."description":."The.l
5ae00 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 ocation.where.all.packages.are.i
5ae20 6e 73 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 5c 22 nstalled,.defaults.to.\"vendor\"
5ae40 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 20 20 .".................},...........
5ae60 20 20 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"bin-dir":.{..............
5ae80 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",........
5aea0 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 54 68 65 ............."description":."The
5aec0 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 62 69 6e 61 72 69 65 73 20 61 72 65 .location.where.all.binaries.are
5aee0 20 6c 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 2f 62 69 .linked,.defaults.to.\"vendor/bi
5af00 6e 5c 22 2e 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 n\".".................}.........
5af20 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"
5af40 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
5af60 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
5af80 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
5afa0 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
5afc0 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
5afe0 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
5b000 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
5b020 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
5b040 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......
5b060 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":.{.....
5b080 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",.......
5b0a0 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
5b0c0 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
5b0e0 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
5b100 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":.{
5b120 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
5b140 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
5b160 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
5b180 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
5b1a0 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
5b1c0 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
5b1e0 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.",.................
5b200 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
5b220 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 .................},.............
5b240 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":.{...............
5b260 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",..........
5b280 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.
5b2a0 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.
5b2c0 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
5b2e0 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
5b300 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.".................},.........
5b320 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":.{..............
5b340 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",.........
5b360 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
5b380 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
5b3a0 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.
5b3c0 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 ".................}.............
5b3e0 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
5b400 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
5b420 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
5b440 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.
5b460 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.
5b480 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
5b4a0 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.........},.
5b4c0 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":.{..
5b4e0 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"],..
5b500 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
5b520 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
5b540 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
5b560 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
5b580 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.".........},......
5b5a0 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":.
5b5c0 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
5b5e0 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
5b600 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
5b620 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
5b640 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":.{.....
5b660 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"....
5b680 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
5b6a0 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
5b6c0 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
5b6e0 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
5b700 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
5b720 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.
5b740 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
5b760 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
5b780 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."
5b7a0 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":.{........
5b7c0 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".......
5b7e0 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
5b800 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
5b820 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
5b840 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.
5b860 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
5b880 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"
5b8a0 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
5b8c0 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
5b8e0 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"],.......
5b900 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
5b920 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.
5b940 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
5b960 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.".....
5b980 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 ............},................."
5b9a0 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":.{............
5b9c0 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
5b9e0 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
5ba00 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
5ba20 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
5ba40 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
5ba60 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.".................},.......
5ba80 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":.{...
5baa0 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
5bac0 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"],..................
5bae0 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
5bb00 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,
5bb20 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
5bb40 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.".................
5bb60 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-
5bb80 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
5bba0 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"],........
5bbc0 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
5bbe0 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.
5bc00 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
5bc20 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."........
5bc40 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
5bc60 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":.{............
5bc80 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
5bca0 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
5bcc0 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
5bce0 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.
5bd00 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."..
5bd20 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 ...............},...............
5bd40 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":.{.....
5bd60 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"
5bd80 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"],....................
5bda0 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.
5bdc0 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
5bde0 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
5be00 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.".................},.........
5be20 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":.{.
5be40 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
5be60 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"],................
5be80 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
5bea0 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
5bec0 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
5bee0 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.".................},......
5bf00 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"
5bf20 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":.
5bf40 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"],............
5bf60 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.
5bf80 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
5bfa0 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
5bfc0 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.".................},...
5bfe0 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
5c000 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
5c020 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"],.......
5c040 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
5c060 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
5c080 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
5c0a0 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."......
5c0c0 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
5c0e0 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":.{.......
5c100 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",.
5c120 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"],....................."
5c140 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
5c160 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
5c180 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
5c1a0 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.".................}....
5c1c0 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
5c1e0 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":."
5c200 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
5c220 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":.{.
5c240 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
5c260 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
5c280 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
5c2a0 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
5c2c0 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".................},.
5c2e0 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":.{.....
5c300 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"
5c320 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
5c340 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."
5c360 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":.
5c380 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".................},........
5c3a0 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":.{.............
5c3c0 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",.......
5c3e0 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
5c400 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.",...............
5c420 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"...........
5c440 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":
5c460 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":."
5c480 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
5c4a0 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.",.
5c4c0 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
5c4e0 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".................},..........
5c500 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":.{.................
5c520 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",...........
5c540 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
5c560 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
5c580 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.",...................
5c5a0 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"...............
5c5c0 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":.{
5c5e0 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
5c600 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
5c620 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
5c640 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.",.............
5c660 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".........
5c680 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 ........}.............}.........
5c6a0 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....................
5c6c0 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 ..@.............................
5c6e0 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
5c700 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..
5c720 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...:.
5c740 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.
5c760 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...:.
5c780 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..
5c7a0 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.....
5c7c0 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 ........@.......................
5c7e0 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 ...`......?.....@...............
5c800 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....@....
5c820 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....!....
5c840 00 00 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!..@.
5c860 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 ................................
5c880 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.................
5c8a0 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........
5c8c0 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.
5c8e0 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......................@.
5c900 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........@................
5c920 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......."
5c940 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..............
5c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5caa0 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
5cac0 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.
5cae0 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\.
5cb00 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..
5cb20 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........
5cb40 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@
5cb60 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@...
5cb80 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...
5cba0 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.
5cbc0 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
5cbe0 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..
5cc00 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
5cc20 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..
5cc40 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
5cc60 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@.....@
5cc80 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
5cca0 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...
5ccc0 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.@
5cce0 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@......
5cd00 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
5cd20 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.......
5cd40 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..........
5cd60 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@
5cd80 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@......
5cda0 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..@
5cdc0 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
5cde0 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
5ce00 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@
5ce20 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.-
5ce40 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..\
5ce60 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@...@
5ce80 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@
5cea0 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.....
5cec0 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.
5cee0 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
5cf00 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.="...
5cf20 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
5cf40 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..@.
5cf60 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.
5cf80 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.
5cfa0 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
5cfc0 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...
5cfe0 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.........
5d000 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...
5d020 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...
5d040 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...
5d060 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..
5d080 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...
5d0a0 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..}..
5d0c0 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._^[]...
5d0e0 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....
5d100 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..
5d120 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
5d140 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..
5d160 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.=.
5d180 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
5d1a0 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..
5d1c0 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
5d1e0 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.
5d200 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.
5d220 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...
5d240 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
5d260 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.@...
5d280 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..<.@..
5d2a0 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.
5d2c0 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...
5d2e0 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.@..%
5d300 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.@..%|.@..%..@..%..@..%..@..%..
5d320 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
5d340 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..
5d360 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....
5d380 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.....
5d3a0 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..............
5d3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5d4a0 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)
5d4c0 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)...)...(...(...(...(...(
5d4e0 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 ...(...).......#...$...%...%...&
5d500 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&...&...$......('...'...'...'
5d520 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(
5d540 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'..^'
5d560 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'...'...)....
5d580 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.@...@.......
5d5a0 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....!
5d5c0 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....
5d5e0 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.............................
5d600 00 00 00 00 00 00 00 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
5d620 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...
5d640 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
5d660 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\
5d680 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.....
5d6a0 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 ................................
5d6c0 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 ........@...@...................
5d6e0 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 ..........:.@...................
5d700 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"
5d720 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 @.........................."....
5d740 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.
5d760 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.............
5d780 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)
5d7a0 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)...)...(...(...(...(...(
5d7c0 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 ...(...).......#...$...%...%...&
5d7e0 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&...&...$......('...'...'...'
5d800 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(
5d820 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'..^'
5d840 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'...'...)....
5d860 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
5d880 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
5d8a0 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
5d8c0 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?$
5d8e0 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@
5d900 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@
5d920 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
5d940 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
5d960 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
5d980 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_
5d9a0 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@@@
5d9c0 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
5d9e0 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
5da00 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
5da20 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
5da40 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?$
5da60 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
5da80 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@@
5daa0 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
5dac0 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
5dae0 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@
5db00 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
5db20 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
5db40 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@
5db60 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
5db80 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
5dba0 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
5dbc0 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
5dbe0 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
5dc00 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
5dc20 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..
5dc40 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..
5dc60 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.
5dc80 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
5dca0 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
5dcc0 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.
5dce0 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
5dd00 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...
5dd20 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..
5dd40 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...
5dd60 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
5dd80 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
5dda0 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..
5ddc0 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...
5dde0 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
5de00 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
5de20 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
5de40 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
5de60 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..........
5de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dea0 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..............
5dec0 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 ..$!@...........................
5dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5e0a0 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 ................................
5e0c0 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.
5e0e0 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.........
5e100 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 ................................
5e120 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.
5e140 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.
5e160 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...................
5e180 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 ................................
5e1a0 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.
5e1c0 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.
5e1e0 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.
5e200 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...
5e220 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.
5e240 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.
5e260 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.
5e280 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.
5e2a0 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.
5e2c0 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.,...
5e2e0 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.
5e300 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.
5e320 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.
5e340 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...
5e360 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.
5e380 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.
5e3a0 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.
5e3c0 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.
5e3e0 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.
5e400 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.,.
5e420 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.
5e440 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.
5e460 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
5e480 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
5e4a0 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">....<
5e4c0 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
5e4e0 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
5e500 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>
5e520 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
5e540 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
5e560 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>
5e580 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>..
5e5a0 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>.
5e5c0 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
5e5e0 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
5e600 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
5e620 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
5e640 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
5e660 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
5e680 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
5e6a0 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
5e6c0 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
5e6e0 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
5e700 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
5e720 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
5e740 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
5e760 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
5e780 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
5e7a0 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
5e7c0 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
5e7e0 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
5e800 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
5e820 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
5e840 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
5e860 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
5e880 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
5e8a0 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
5e8c0 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
5e8e0 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
5e900 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
5e920 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
5e940 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
5e960 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
5e980 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
5e9a0 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
5e9c0 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
5e9e0 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
5ea00 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........
5ea20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ea60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ea80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5eaa0 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
5eac0 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;..
5eae0 0a 0a 0a 0a 0a 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 ...........class.PhpProcess.exte
5eb00 6e 64 73 20 50 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 nds.Process.{.private.$executabl
5eb20 65 46 69 6e 64 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 eFinder;.............public.func
5eb40 74 69 6f 6e 20 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 tion.__construct($script,.$cwd.=
5eb60 20 6e 75 6c 6c 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 .null,.array.$env.=.array(),.$ti
5eb80 6d 65 6f 75 74 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 meout.=.60,.array.$options.=.arr
5eba0 61 79 28 29 29 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 ay()).{.parent::__construct(null
5ebc0 2c 20 24 63 77 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 ,.$cwd,.$env,.$script,.$timeout,
5ebe0 20 24 6f 70 74 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 .$options);..$this->executableFi
5ec00 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 64 65 72 28 29 nder.=.new.PhpExecutableFinder()
5ec20 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 50 68 70 ;.}.......public.function.setPhp
5ec40 42 69 6e 61 72 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 Binary($php).{.$this->setCommand
5ec60 4c 69 6e 65 28 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 Line($php);.}............public.
5ec80 66 75 6e 63 74 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 function.run($callback.=.null).{
5eca0 0a 69 66 20 28 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 .if.(null.===.$this->getCommandL
5ecc0 69 6e 65 28 29 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 ine()).{.if.(false.===.$php.=.$t
5ece0 68 69 73 2d 3e 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 his->executableFinder->find()).{
5ed00 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 6e .throw.new.\RuntimeException('Un
5ed20 61 62 6c 65 20 74 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 able.to.find.the.PHP.executable.
5ed40 27 29 3b 0a 7d 0a 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 ');.}.$this->setCommandLine($php
5ed60 29 3b 0a 7d 0a 0a 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 );.}..return.parent::run($callba
5ed80 63 6b 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 ck);.}.}.<?php...........namespa
5eda0 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 0a ce.Symfony\Component\Process;...
5edc0 0a 0a 0a 0a 0a 63 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 .....class.ExecutableFinder.{.pr
5ede0 69 76 61 74 65 20 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 ivate.static.$isWindows;..privat
5ee00 65 20 24 73 75 66 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 e.$suffixes.=.array('.exe',.'.ba
5ee20 74 27 2c 20 27 2e 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 t',.'.cmd',.'.com');..public.fun
5ee40 63 74 69 6f 6e 20 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 ction.__construct().{.if.(null.=
5ee60 3d 3d 20 73 65 6c 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 ==.self::$isWindows).{.self::$is
5ee80 57 69 6e 64 6f 77 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 Windows.=.0.===.stripos(PHP_OS,.
5eea0 27 77 69 6e 27 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 65 74 'win');.}.}..public.function.set
5eec0 53 75 66 66 69 78 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 Suffixes(array.$suffixes).{.$thi
5eee0 73 2d 3e 73 75 66 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 s->suffixes.=.$suffixes;.}..publ
5ef00 69 63 20 66 75 6e 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 ic.function.addSuffix($suffix).{
5ef20 0a 24 74 68 69 73 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 .$this->suffixes[].=.$suffix;.}.
5ef40 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 28 24 6e .........public.function.find($n
5ef60 61 6d 65 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 69 6e 69 5f ame,.$default.=.null).{.if.(ini_
5ef80 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 61 72 63 68 50 61 get('open_basedir')).{.$searchPa
5efa0 74 68 20 3d 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 67 65 74 th.=.explode(PATH_SEPARATOR,.get
5efc0 65 6e 76 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 72 73 20 3d 20 61 72 env('open_basedir'));.$dirs.=.ar
5efe0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 74 68 20 61 73 20 24 ray();.foreach.($searchPath.as.$
5f000 70 61 74 68 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 64 69 path).{.if.(is_dir($path)).{.$di
5f020 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 69 6c 65 20 3d 20 73 rs[].=.$path;.}.else.{.$file.=.s
5f040 74 72 5f 72 65 70 6c 61 63 65 28 64 69 72 6e 61 6d 65 28 24 70 61 74 68 29 2c 20 27 27 2c 20 24 tr_replace(dirname($path),.'',.$
5f060 70 61 74 68 29 3b 0a 69 66 20 28 24 66 69 6c 65 20 3d 3d 20 24 6e 61 6d 65 20 26 26 20 69 73 5f path);.if.($file.==.$name.&&.is_
5f080 65 78 65 63 75 74 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 executable($path)).{.return.$pat
5f0a0 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 65 78 70 6c 6f 64 h;.}.}.}.}.else.{.$dirs.=.explod
5f0c0 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 54 48 27 29 e(PATH_SEPARATOR,.getenv('PATH')
5f0e0 20 3f 20 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 .?.getenv('PATH').:.getenv('Path
5f100 27 29 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 '));.}..$suffixes.=.DIRECTORY_SE
5f120 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c 27 20 3f 20 28 67 65 74 65 6e 76 28 27 50 41 54 48 45 PARATOR.==.'\\'.?.(getenv('PATHE
5f140 58 54 27 29 20 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 67 XT').?.explode(PATH_SEPARATOR,.g
5f160 65 74 65 6e 76 28 27 50 41 54 48 45 58 54 27 29 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 etenv('PATHEXT')).:.$this->suffi
5f180 78 65 73 29 20 3a 20 61 72 72 61 79 28 27 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 75 66 66 xes).:.array('');.foreach.($suff
5f1a0 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 68 20 28 24 64 69 72 ixes.as.$suffix).{.foreach.($dir
5f1c0 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 24 66 69 6c 65 20 3d s.as.$dir).{.if.(is_file($file.=
5f1e0 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 2e 24 6e 61 6d 65 2e .$dir.DIRECTORY_SEPARATOR.$name.
5f200 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 64 6f 77 73 20 7c 7c $suffix).&&.(self::$isWindows.||
5f220 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 0a 72 65 74 75 72 6e .is_executable($file))).{.return
5f240 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 66 61 75 6c 74 3b 0a .$file;.}.}.}..return.$default;.
5f260 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
5f280 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 0a 0a 0a mfony\Component\Process;........
5f2a0 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 3d 20 27 65 ..class.Process.{.const.ERR.=.'e
5f2c0 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 73 74 20 53 rr';.const.OUT.=.'out';..const.S
5f2e0 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 20 53 54 41 TATUS_READY.=.'ready';.const.STA
5f300 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 73 74 20 53 TUS_STARTED.=.'started';.const.S
5f320 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 65 64 27 3b TATUS_TERMINATED.=.'terminated';
5f340 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 4f 55 54 20 ..const.STDIN.=.0;.const.STDOUT.
5f360 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 61 74 65 20 =.1;.const.STDERR.=.2;..private.
5f380 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 70 72 69 76 $commandline;.private.$cwd;.priv
5f3a0 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 69 76 61 74 ate.$env;.private.$stdin;.privat
5f3c0 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 3b 0a 70 72 e.$timeout;.private.$options;.pr
5f3e0 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 70 72 6f 63 65 73 ivate.$exitcode;.private.$proces
5f400 73 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 sInformation;.private.$stdout;.p
5f420 72 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 rivate.$stderr;.private.$enhance
5f440 57 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 70 WindowsCompatibility;.private.$p
5f460 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 69 76 61 74 65 20 ipes;.private.$process;.private.
5f480 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 44 59 3b 0a 0a 70 $status.=.self::STATUS_READY;..p
5f4a0 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 74 65 20 24 72 65 rivate.$fileHandles;.private.$re
5f4c0 61 64 42 79 74 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 73 74 61 74 69 63 20 70 75 62 6c 69 63 20 24 adBytes;.........static.public.$
5f4e0 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 20 exitCodes.=.array(.0.=>.'OK',.1.
5f500 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 65 =>.'General.error',.2.=>.'Misuse
5f520 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 6e .of.shell.builtins',..126.=>.'In
5f540 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 31 voked.command.cannot.execute',.1
5f560 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 3d 27.=>.'Command.not.found',.128.=
5f580 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 32 >.'Invalid.exit.argument',....12
5f5a0 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 74 9.=>.'Hangup',.130.=>.'Interrupt
5f5c0 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 0a ',.131.=>.'Quit.and.dump.core',.
5f5e0 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 33 132.=>.'Illegal.instruction',.13
5f600 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 3.=>.'Trace/breakpoint.trap',.13
5f620 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 27 4.=>.'Process.aborted',.135.=>.'
5f640 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 20 Bus.error:."access.to.undefined.
5f660 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 20 portion.of.memory.object"',.136.
5f680 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 65 =>.'Floating.point.exception:."e
5f6a0 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 2c rroneous.arithmetic.operation"',
5f6c0 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 61 .137.=>.'Kill.(terminate.immedia
5f6e0 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 2c tely)',.138.=>.'User-defined.1',
5f700 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 27 .139.=>.'Segmentation.violation'
5f720 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 3d ,.140.=>.'User-defined.2',.141.=
5f740 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 61 >.'Write.to.pipe.with.no.one.rea
5f760 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 20 ding',.142.=>.'Signal.raised.by.
5f780 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 71 alarm',.143.=>.'Termination.(req
5f7a0 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 43 uest.to.terminate)',...145.=>.'C
5f7c0 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 64 hild.process.terminated,.stopped
5f7e0 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 69 .(or.continued*)',.146.=>.'Conti
5f800 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 78 nue.if.stopped',.147.=>.'Stop.ex
5f820 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 65 ecuting.temporarily',.148.=>.'Te
5f840 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 63 rminal.stop.signal',.149.=>.'Bac
5f860 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 65 kground.process.attempting.to.re
5f880 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 63 ad.from.tty.("in")',.150.=>.'Bac
5f8a0 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 72 kground.process.attempting.to.wr
5f8c0 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 67 ite.to.tty.("out")',.151.=>.'Urg
5f8e0 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 31 ent.data.available.on.socket',.1
5f900 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 2c 52.=>.'CPU.time.limit.exceeded',
5f920 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 65 .153.=>.'File.size.limit.exceede
5f940 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 6d d',.154.=>.'Signal.raised.by.tim
5f960 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 75 er.counting.virtual.time:."virtu
5f980 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 66 al.timer.expired"',.155.=>.'Prof
5f9a0 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 27 iling.timer.expired',...157.=>.'
5f9c0 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 73 Pollable.event',...159.=>.'Bad.s
5f9e0 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 69 yscall',.);................publi
5fa00 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 6c c.function.__construct($commandl
5fa20 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 6e ine,.$cwd.=.null,.array.$env.=.n
5fa40 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 36 ull,.$stdin.=.null,.$timeout.=.6
5fa60 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 69 0,.array.$options.=.array()).{.i
5fa80 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 29 f.(!function_exists('proc_open')
5faa0 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(
5fac0 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
5fae0 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
5fb00 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.');.}..$
5fb20 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
5fb40 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
5fb60 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
5fb80 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
5fba0 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
5fbc0 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
5fbe0 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
5fc00 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
5fc20 3b 0a 24 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 24 74 68 ;.$this->timeout.=.$timeout;.$th
5fc40 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 79 20 is->enhanceWindowsCompatibility.
5fc60 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 =.true;.$this->options.=.array_r
5fc80 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d eplace(array('suppress_errors'.=
5fca0 3e 20 74 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d 3e 20 74 72 75 65 29 2c >.true,.'binary_pipes'.=>.true),
5fcc0 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f .$options);.}..public.function._
5fce0 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 6f 70 28 29 3b 0a 7d _destruct().{...$this->stop();.}
5fd00 0a 0a 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 .....................public.func
5fd20 74 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 24 74 68 tion.run($callback.=.null).{.$th
5fd40 69 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 is->start($callback);..return.$t
5fd60 68 69 73 2d 3e 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a his->wait($callback);.}.........
5fd80 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 73 74 ..............public.function.st
5fda0 61 72 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 art($callback.=.null).{.if.($thi
5fdc0 73 2d 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 s->isRunning()).{.throw.new.\Run
5fde0 74 69 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 timeException('Process.is.alread
5fe00 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 y.running');.}..$this->stdout.=.
5fe20 27 27 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 63 61 6c 6c 62 61 63 '';.$this->stderr.=.'';.$callbac
5fe40 6b 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 k.=.$this->buildCallback($callba
5fe60 63 6b 29 3b 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e ck);........if.(defined('PHP_WIN
5fe80 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 74 68 69 73 2d 3e 66 DOWS_VERSION_BUILD')).{.$this->f
5fea0 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 3a 3a 53 54 44 4f 55 54 ileHandles.=.array(.self::STDOUT
5fec0 20 3d 3e 20 74 6d 70 66 69 6c 65 28 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 .=>.tmpfile(),.);.$this->readByt
5fee0 65 73 20 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 30 2c 0a 29 es.=.array(.self::STDOUT.=>.0,.)
5ff00 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 ;.$descriptors.=.array(array('pi
5ff20 70 65 27 2c 20 27 72 27 29 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 pe',.'r'),.$this->fileHandles[se
5ff40 6c 66 3a 3a 53 54 44 4f 55 54 5d 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 lf::STDOUT],.array('pipe',.'w'))
5ff60 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 28 ;.}.else.{.$descriptors.=.array(
5ff80 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 array('pipe',.'r'),.array('pipe'
5ffa0 2c 20 27 77 27 29 2c 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 7d 0a 0a ,.'w'),.array('pipe',.'w'));.}..
5ffc0 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e $commandline.=.$this->commandlin
5ffe0 65 3b 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 45 52 e;..if.(defined('PHP_WINDOWS_VER
60000 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 SION_BUILD').&&.$this->enhanceWi
60020 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 ndowsCompatibility).{.$commandli
60040 6e 65 20 3d 20 27 63 6d 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 27 2e 24 63 6f 6d ne.=.'cmd./V:ON./E:ON./C."'.$com
60060 6d 61 6e 64 6c 69 6e 65 2e 27 22 27 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e mandline.'"';.if.(!isset($this->
60080 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 74 68 69 options['bypass_shell'])).{.$thi
600a0 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 20 3d 20 74 72 75 s->options['bypass_shell'].=.tru
600c0 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 e;.}.}..$this->process.=.proc_op
600e0 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 24 en($commandline,.$descriptors,.$
60100 74 68 69 73 2d 3e 70 69 70 65 73 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 74 68 69 73 2d 3e this->pipes,.$this->cwd,.$this->
60120 65 6e 76 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 5f 72 env,.$this->options);..if.(!is_r
60140 65 73 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 74 68 72 6f 77 esource($this->process)).{.throw
60160 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 6c 65 20 74 .new.\RuntimeException('Unable.t
60180 6f 20 6c 61 75 6e 63 68 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 24 74 68 o.launch.a.new.process.');.}.$th
601a0 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 53 54 41 52 54 45 is->status.=.self::STATUS_STARTE
601c0 44 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 D;..foreach.($this->pipes.as.$pi
601e0 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c pe).{.stream_set_blocking($pipe,
60200 20 66 61 6c 73 65 29 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 .false);.}..if.(null.===.$this->
60220 73 74 64 69 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 stdin).{.fclose($this->pipes[0])
60240 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 ;.unset($this->pipes[0]);..retur
60260 6e 3b 0a 7d 0a 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d n;.}..$writePipes.=.array($this-
60280 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 >pipes[0]);.unset($this->pipes[0
602a0 5d 29 3b 0a 24 73 74 64 69 6e 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 73 74 ]);.$stdinLen.=.strlen($this->st
602c0 64 69 6e 29 3b 0a 24 73 74 64 69 6e 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 din);.$stdinOffset.=.0;..while.(
602e0 24 77 72 69 74 65 50 69 70 65 73 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f $writePipes).{.if.(defined('PHP_
60300 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 74 68 69 73 WINDOWS_VERSION_BUILD')).{.$this
60320 2d 3e 70 72 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 61 63 6b 29 3b ->processFileHandles($callback);
60340 0a 7d 0a 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 24 77 72 69 .}..$r.=.$this->pipes;.$w.=.$wri
60360 74 65 50 69 70 65 73 3b 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 6e 20 3d 20 40 73 74 72 65 61 tePipes;.$e.=.null;..$n.=.@strea
60380 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 m_select($r,.$w,.$e,.$this->time
603a0 6f 75 74 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 29 20 7b 0a 62 72 65 61 6b out);..if.(false.===.$n).{.break
603c0 3b 0a 7d 0a 69 66 20 28 24 6e 20 3d 3d 3d 20 30 29 20 7b 0a 70 72 6f 63 5f 74 65 72 6d 69 6e 61 ;.}.if.($n.===.0).{.proc_termina
603e0 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 77 20 6e 65 77 20 5c te($this->process);..throw.new.\
60400 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 65 73 73 20 74 69 RuntimeException('The.process.ti
60420 6d 65 64 20 6f 75 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 29 20 7b 0a 24 77 72 69 74 74 65 med.out.');.}..if.($w).{.$writte
60440 6e 20 3d 20 66 77 72 69 74 65 28 24 77 72 69 74 65 50 69 70 65 73 5b 30 5d 2c 20 28 62 69 6e 61 n.=.fwrite($writePipes[0],.(bina
60460 72 79 29 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 73 74 64 69 6e 2c 20 24 73 74 64 69 6e 4f ry).substr($this->stdin,.$stdinO
60480 66 66 73 65 74 29 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 72 ffset),.8192);.if.(false.!==.$wr
604a0 69 74 74 65 6e 29 20 7b 0a 24 73 74 64 69 6e 4f 66 66 73 65 74 20 2b 3d 20 24 77 72 69 74 74 65 itten).{.$stdinOffset.+=.$writte
604c0 6e 3b 0a 7d 0a 69 66 20 28 24 73 74 64 69 6e 4f 66 66 73 65 74 20 3e 3d 20 24 73 74 64 69 6e 4c n;.}.if.($stdinOffset.>=.$stdinL
604e0 65 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 77 72 69 74 65 50 69 70 65 73 5b 30 5d 29 3b 0a 24 77 en).{.fclose($writePipes[0]);.$w
60500 72 69 74 65 50 69 70 65 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 ritePipes.=.null;.}.}..foreach.(
60520 24 72 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 $r.as.$pipe).{.$type.=.array_sea
60540 72 63 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 rch($pipe,.$this->pipes);.$data.
60560 3d 20 66 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e =.fread($pipe,.8192);.if.(strlen
60580 28 24 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 ($data).>.0).{.call_user_func($c
605a0 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 55 54 20 allback,.$type.==.1.?.self::OUT.
605c0 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 :.self::ERR,.$data);.}.if.(false
605e0 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 7b 0a 66 63 6c .===.$data.||.feof($pipe)).{.fcl
60600 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 70 65 73 5b 24 ose($pipe);.unset($this->pipes[$
60620 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 type]);.}.}.}..$this->processInf
60640 6f 72 6d 61 74 69 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 ormation.=.proc_get_status($this
60660 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ->process);.}...............publ
60680 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c ic.function.wait($callback.=.nul
606a0 6c 29 0a 7b 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 l).{.$this->processInformation.=
606c0 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 65 73 73 29 .proc_get_status($this->process)
606e0 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 62 61 ;.$callback.=.$this->buildCallba
60700 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 69 70 ck($callback);.while.($this->pip
60720 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 52 53 es.||.(defined('PHP_WINDOWS_VERS
60740 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 6c 65 ION_BUILD').&&.$this->fileHandle
60760 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 5f 56 s)).{.if.(defined('PHP_WINDOWS_V
60780 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 61 6e ERSION_BUILD').&&.$this->fileHan
607a0 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 6c 65 dles).{.$this->processFileHandle
607c0 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 0a 0a s($callback,.!$this->pipes);.}..
607e0 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 2d 3e if.($this->pipes).{.$r.=.$this->
60800 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 24 6e pipes;.$w.=.null;.$e.=.null;..$n
60820 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 24 74 .=.@stream_select($r,.$w,.$e,.$t
60840 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 24 6e his->timeout);..if.(false.===.$n
60860 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 6f 6e ).{.$this->pipes.=.array();..con
60880 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 74 65 tinue;.}.if.(0.===.$n).{.proc_te
608a0 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 77 20 rminate($this->process);..throw.
608c0 6e 65 77 20 5c 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 65 new.\RuntimeException('The.proce
608e0 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 20 ss.timed.out.');.}..foreach.($r.
60900 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 68 as.$pipe).{.$type.=.array_search
60920 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 66 ($pipe,.$this->pipes);.$data.=.f
60940 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 64 read($pipe,.8192);.if.(strlen($d
60960 61 74 61 29 20 3e 20 30 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c ata).>.0).{.call_user_func($call
60980 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 55 54 20 3a 20 73 back,.$type.==.1.?.self::OUT.:.s
609a0 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d elf::ERR,.$data);.}.if.(false.==
609c0 3d 20 24 64 61 74 61 20 7c 7c 20 66 65 6f 66 28 24 70 69 70 65 29 29 20 7b 0a 66 63 6c 6f 73 65 =.$data.||.feof($pipe)).{.fclose
609e0 28 24 70 69 70 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 ($pipe);.unset($this->pipes[$typ
60a00 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 e]);.}.}.}.}.$this->updateStatus
60a20 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f ();.if.($this->processInformatio
60a40 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 n['signaled']).{.throw.new.\Runt
60a60 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 70 72 6f 63 65 73 imeException(sprintf('The.proces
60a80 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 73 22 20 73 69 67 6e s.stopped.because.of.a."%s".sign
60aa0 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 6d 61 74 69 6f 6e 5b al.',.$this->processInformation[
60ac0 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 30 3b 0a 77 68 69 6c 'stopsig']));.}..$time.=.0;.whil
60ae0 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 24 74 69 6d 65 20 3c e.($this->isRunning().&&.$time.<
60b00 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 3b 0a 75 73 6c 65 65 .1000000).{.$time.+=.1000;.uslee
60b20 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 72 6f 63 5f 63 6c 6f p(1000);.}..$exitcode.=.proc_clo
60b40 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 24 74 68 69 73 2d 3e se($this->process);..if.($this->
60b60 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 29 20 processInformation['signaled']).
60b80 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 73 70 {.throw.new.\RuntimeException(sp
60ba0 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 20 62 65 63 61 75 rintf('The.process.stopped.becau
60bc0 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 69 73 2d 3e 70 72 se.of.a."%s".signal.',.$this->pr
60be0 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 5d 29 29 3b 0a 7d ocessInformation['stopsig']));.}
60c00 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 ..return.$this->exitcode.=.$this
60c20 2d 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 ->processInformation['running'].
60c40 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 73 73 49 6e 66 6f ?.$exitcode.:.$this->processInfo
60c60 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rmation['exitcode'];.}.........p
60c80 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 29 0a 7b 0a 24 74 68 ublic.function.getOutput().{.$th
60ca0 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 72 6e 20 24 74 68 69 is->updateOutput();..return.$thi
60cc0 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 69 63 20 66 75 6e 63 s->stdout;.}.........public.func
60ce0 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 74 68 69 73 2d 3e 75 tion.getErrorOutput().{.$this->u
60d00 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 72 6e 20 24 74 68 69 pdateErrorOutput();..return.$thi
60d20 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s->stderr;.}.........public.func
60d40 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 tion.getExitCode().{.$this->upda
60d60 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 65 78 69 74 63 teStatus();..return.$this->exitc
60d80 6f 64 65 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 6e 63 74 69 ode;.}.............public.functi
60da0 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 on.getExitCodeText().{.$this->up
60dc0 64 61 74 65 53 74 61 74 75 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 dateStatus();..return.isset(self
60de0 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 5d 29 20 3f ::$exitCodes[$this->exitcode]).?
60e00 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 .self::$exitCodes[$this->exitcod
60e20 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a e].:.'Unknown.error';.}.........
60e40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 0a 7b public.function.isSuccessful().{
60e60 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 72 65 74 75 72 6e 20 .$this->updateStatus();..return.
60e80 30 20 3d 3d 20 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 0a 0a 0.==.$this->exitcode;.}.........
60ea0 0a 0a 70 75 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 ..public.function.hasBeenSignale
60ec0 64 28 29 0a 7b 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 72 65 d().{.$this->updateStatus();..re
60ee0 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 5b 27 turn.$this->processInformation['
60f00 73 69 67 6e 61 6c 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 signaled'];.}...........public.f
60f20 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d unction.getTermSignal().{.$this-
60f40 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->
60f60 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d processInformation['termsig'];.}
60f80 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 42 65 ...........public.function.hasBe
60fa0 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 enStopped().{.$this->updateStatu
60fc0 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 72 s();..return.$this->processInfor
60fe0 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 70 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 mation['stopped'];.}...........p
61000 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b ublic.function.getStopSignal().{
61020 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 72 65 74 75 72 6e 20 .$this->updateStatus();..return.
61040 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 74 6f 70 73 $this->processInformation['stops
61060 69 67 27 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 69 73 ig'];.}.......public.function.is
61080 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 Running().{.if.(self::STATUS_STA
610a0 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 74 75 72 6e RTED.!==.$this->status).{.return
610c0 20 66 61 6c 73 65 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 .false;.}..$this->updateStatus()
610e0 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 72 6d 61 74 ;..return.$this->processInformat
61100 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ion['running'];.}...........publ
61120 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 74 69 6d 65 6f 75 74 3d 31 30 29 0a 7b 0a ic.function.stop($timeout=10).{.
61140 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 28 69 6e 74 29 20 24 74 69 6d 65 6f 75 74 2a 31 $timeoutMicro.=.(int).$timeout*1
61160 30 45 36 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 70 0E6;.if.($this->isRunning()).{.p
61180 72 6f 63 5f 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 24 roc_terminate($this->process);.$
611a0 74 69 6d 65 20 3d 20 30 3b 0a 77 68 69 6c 65 20 28 31 20 3d 3d 20 24 74 68 69 73 2d 3e 69 73 52 time.=.0;.while.(1.==.$this->isR
611c0 75 6e 6e 69 6e 67 28 29 20 26 26 20 24 74 69 6d 65 20 3c 20 24 74 69 6d 65 6f 75 74 4d 69 63 72 unning().&&.$time.<.$timeoutMicr
611e0 6f 29 20 7b 0a 24 74 69 6d 65 20 2b 3d 20 31 30 30 30 3b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 o).{.$time.+=.1000;.usleep(1000)
61200 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 ;.}..foreach.($this->pipes.as.$p
61220 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 ipe).{.fclose($pipe);.}.$this->p
61240 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 70 72 6f ipes.=.array();..$exitcode.=.pro
61260 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 24 74 68 69 73 2d 3e c_close($this->process);.$this->
61280 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 exitcode.=.-1.===.$this->process
612a0 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 20 3f 20 24 65 78 69 74 63 Information['exitcode'].?.$exitc
612c0 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 6d 61 74 69 6f 6e 5b ode.:.$this->processInformation[
612e0 27 65 78 69 74 63 6f 64 65 27 5d 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 'exitcode'];..if.(defined('PHP_W
61300 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 66 6f 72 65 61 63 INDOWS_VERSION_BUILD')).{.foreac
61320 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 61 73 20 24 66 69 6c 65 48 61 h.($this->fileHandles.as.$fileHa
61340 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 3b 0a 7d 0a 24 ndle).{.fclose($fileHandle);.}.$
61360 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d this->fileHandles.=.array();.}.}
61380 0a 24 74 68 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 54 45 .$this->status.=.self::STATUS_TE
613a0 52 4d 49 4e 41 54 45 44 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 RMINATED;..return.$this->exitcod
613c0 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 4f 75 74 70 75 74 28 e;.}..public.function.addOutput(
613e0 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b $line).{.$this->stdout..=.$line;
61400 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 .}..public.function.addErrorOutp
61420 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 ut($line).{.$this->stderr..=.$li
61440 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 74 43 6f 6d 6d 61 6e ne;.}..public.function.getComman
61460 64 4c 69 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 dLine().{.return.$this->commandl
61480 69 6e 65 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 6d 6d 61 ine;.}..public.function.setComma
614a0 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 2d 3e 63 6f ndLine($commandline).{.$this->co
614c0 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 7d 0a 0a 70 75 62 mmandline.=.$commandline;.}..pub
614e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 lic.function.getTimeout().{.retu
61500 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e rn.$this->timeout;.}..public.fun
61520 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 24 74 68 ction.setTimeout($timeout).{.$th
61540 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 is->timeout.=.$timeout;.}..publi
61560 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 29 c.function.getWorkingDirectory()
61580 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 .{.return.$this->cwd;.}..public.
615a0 66 75 6e 63 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 function.setWorkingDirectory($cw
615c0 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 7d 0a 0a 70 75 62 6c 69 d).{.$this->cwd.=.$cwd;.}..publi
615e0 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 72 6e 20 24 74 68 c.function.getEnv().{.return.$th
61600 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 is->env;.}..public.function.setE
61620 6e 76 28 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 24 65 nv(array.$env).{.$this->env.=.$e
61640 6e 76 3b 0a 7d 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 28 nv;.}..public.function.getStdin(
61660 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 70 75 62 6c ).{.return.$this->stdin;.}..publ
61680 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b 0a 24 ic.function.setStdin($stdin).{.$
616a0 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 this->stdin.=.$stdin;.}..public.
616c0 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 24 function.getOptions().{.return.$
616e0 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f this->options;.}..public.functio
61700 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 7b 0a 24 n.setOptions(array.$options).{.$
61720 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 7d 0a 0a 70 75 62 this->options.=.$options;.}..pub
61740 6c 69 63 20 66 75 6e 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 lic.function.getEnhanceWindowsCo
61760 6d 70 61 74 69 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 65 6e mpatibility().{.return.$this->en
61780 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 3b 0a 7d 0a 0a 70 75 hanceWindowsCompatibility;.}..pu
617a0 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
617c0 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->
617e0 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
61800 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 oolean).$enhance;.}............p
61820 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 rotected.function.buildCallback(
61840 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 $callback).{.$that.=.$this;.$out
61860 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 65 72 72 20 3d 20 73 65 6c 66 3a 3a 45 52 52 3b 0a .=.self::OUT;.$err.=.self::ERR;.
61880 24 63 61 6c 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 64 61 $callback.=.function.($type,.$da
618a0 74 61 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 6f 75 74 2c ta).use.($that,.$callback,.$out,
618c0 20 24 65 72 72 29 20 7b 0a 69 66 20 28 24 6f 75 74 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 74 .$err).{.if.($out.==.$type).{.$t
618e0 68 61 74 2d 3e 61 64 64 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a hat->addOutput($data);.}.else.{.
61900 24 74 68 61 74 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 0a $that->addErrorOutput($data);.}.
61920 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 0a 63 61 6c 6c 5f .if.(null.!==.$callback).{.call_
61940 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 2c 20 24 64 61 74 user_func($callback,.$type,.$dat
61960 61 29 3b 0a 7d 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a a);.}.};..return.$callback;.}...
61980 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 65 53 74 61 74 75 ..protected.function.updateStatu
619a0 73 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 s().{.if.(self::STATUS_STARTED.!
619c0 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 ==.$this->status).{.return;.}..$
619e0 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 70 72 6f 63 5f this->processInformation.=.proc_
61a00 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 69 66 20 28 get_status($this->process);.if.(
61a20 21 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 72 75 6e 6e !$this->processInformation['runn
61a40 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 ing']).{.$this->status.=.self::S
61a60 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 69 66 20 28 2d 31 20 21 3d 3d 20 24 74 68 TATUS_TERMINATED;.if.(-1.!==.$th
61a80 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 6f 64 65 is->processInformation['exitcode
61aa0 27 5d 29 20 7b 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 3e 70 ']).{.$this->exitcode.=.$this->p
61ac0 72 6f 63 65 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 7d rocessInformation['exitcode'];.}
61ae0 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 75 70 64 61 74 65 45 .}.}..protected.function.updateE
61b00 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e rrorOutput().{.if.(isset($this->
61b20 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 45 52 52 5d 29 20 26 26 20 69 73 5f 72 65 73 6f 75 pipes[self::STDERR]).&&.is_resou
61b40 72 63 65 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 29 rce($this->pipes[self::STDERR]))
61b60 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f .{.$this->addErrorOutput(stream_
61b80 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a get_contents($this->pipes[self::
61ba0 53 54 44 45 52 52 5d 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 STDERR]));.}.}..protected.functi
61bc0 6f 6e 20 75 70 64 61 74 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 on.updateOutput().{.if.(defined(
61be0 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 20 26 26 20 'PHP_WINDOWS_VERSION_BUILD').&&.
61c00 69 73 73 65 74 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 isset($this->fileHandles[self::S
61c20 54 44 4f 55 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 66 69 TDOUT]).&&.is_resource($this->fi
61c40 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 29 20 7b 0a 66 73 65 65 leHandles[self::STDOUT])).{.fsee
61c60 6b 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 k($this->fileHandles[self::STDOU
61c80 54 5d 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 T],.$this->readBytes[self::STDOU
61ca0 54 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f 67 65 74 T]);.$this->addOutput(stream_get
61cc0 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 73 65 6c _contents($this->fileHandles[sel
61ce0 66 3a 3a 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 f::STDOUT]));.}.elseif.(isset($t
61d00 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a 53 54 44 4f 55 54 5d 29 20 26 26 20 69 73 5f his->pipes[self::STDOUT]).&&.is_
61d20 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 3a 53 54 44 4f resource($this->pipes[self::STDO
61d40 55 54 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 75 74 70 75 74 28 73 74 72 65 61 6d 5f UT])).{.$this->addOutput(stream_
61d60 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 73 65 6c 66 3a 3a get_contents($this->pipes[self::
61d80 53 54 44 4f 55 54 5d 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 STDOUT]));.}.}........private.fu
61da0 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 61 6c 6c 62 nction.processFileHandles($callb
61dc0 61 63 6b 2c 20 24 63 6c 6f 73 65 45 6d 70 74 79 48 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 65 29 ack,.$closeEmptyHandles.=.false)
61de0 0a 7b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 66 6f 72 .{.$fh.=.$this->fileHandles;.for
61e00 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 66 69 6c 65 48 61 6e 64 6c each.($fh.as.$type.=>.$fileHandl
61e20 65 29 20 7b 0a 66 73 65 65 6b 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 24 74 68 69 73 2d 3e 72 e).{.fseek($fileHandle,.$this->r
61e40 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 3b 0a 24 64 61 74 61 20 3d 20 66 72 65 61 64 28 eadBytes[$type]);.$data.=.fread(
61e60 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 38 31 39 32 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 $fileHandle,.8192);.if.(strlen($
61e80 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 data).>.0).{.$this->readBytes[$t
61ea0 79 70 65 5d 20 2b 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 63 61 6c 6c 5f 75 73 65 72 ype].+=.strlen($data);.call_user
61ec0 5f 66 75 6e 63 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 _func($callback,.$type.==.1.?.se
61ee0 6c 66 3a 3a 4f 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 69 lf::OUT.:.self::ERR,.$data);.}.i
61f00 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 28 24 63 6c 6f 73 65 45 6d 70 f.(false.===.$data.||.($closeEmp
61f20 74 79 48 61 6e 64 6c 65 73 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 61 74 61 20 26 26 20 66 65 6f tyHandles.&&.''.===.$data.&&.feo
61f40 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 66 69 6c 65 48 f($fileHandle))).{.fclose($fileH
61f60 61 6e 64 6c 65 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 andle);.unset($this->fileHandles
61f80 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a [$type]);.}.}.}.}.<?php.........
61fa0 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
61fc0 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 ocess;.......class.ProcessBuilde
61fe0 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 76 61 74 65 20 r.{.private.$arguments;.private.
62000 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 20 24 73 74 64 $cwd;.private.$env;.private.$std
62020 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 74 65 20 24 6f in;.private.$timeout;.private.$o
62040 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 3b 0a 0a 70 75 ptions;.private.$inheritEnv;..pu
62060 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 79 20 blic.function.__construct(array.
62080 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 69 73 2d 3e 61 $arguments.=.array()).{.$this->a
620a0 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 69 73 2d 3e 74 rguments.=.$arguments;..$this->t
620c0 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 20 3d 20 61 72 imeout.=.60;.$this->options.=.ar
620e0 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 3b 0a 24 74 68 ray();.$this->env.=.array();.$th
62100 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 75 62 6c 69 63 is->inheritEnv.=.true;.}..public
62120 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 61 79 20 24 61 .static.function.create(array.$a
62140 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 6e 20 6e 65 77 rguments.=.array()).{.return.new
62160 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 0a 0a 70 75 62 .static($arguments);.}.......pub
62180 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 0a 7b 0a 24 74 lic.function.add($argument).{.$t
621a0 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 74 3b 0a 0a 72 his->arguments[].=.$argument;..r
621c0 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 20 eturn.$this;.}..public.function.
621e0 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 0a 24 74 68 69 setWorkingDirectory($cwd).{.$thi
62200 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 73 3b 0a 7d 0a s->cwd.=.$cwd;..return.$this;.}.
62220 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 69 72 6f 6e 6d .public.function.inheritEnvironm
62240 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 74 72 75 65 29 entVariables($inheritEnv.=.true)
62260 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 65 72 69 74 45 .{.$this->inheritEnv.=.$inheritE
62280 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 63 20 66 75 6e nv;..return.$this;.}..public.fun
622a0 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 0a 7b 0a 24 74 ction.setEnv($name,.$value).{.$t
622c0 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 72 65 74 75 72 his->env[$name].=.$value;..retur
622e0 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 49 n.$this;.}..public.function.setI
62300 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 20 3d 20 24 73 nput($stdin).{.$this->stdin.=.$s
62320 74 64 69 6e 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 tdin;..return.$this;.}..public.f
62340 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 24 unction.setTimeout($timeout).{.$
62360 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
62380 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
623a0 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
623c0 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.$
623e0 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
62400 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
62420 6e 74 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 65 70 74 69 6f nts)).{.throw.new.\LogicExceptio
62440 6e 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 n('You.must.add().command.argume
62460 6e 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 nts.before.calling.getProcess().
62480 27 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 ');.}..$options.=.$this->options
624a0 3b 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 ;..$script.=.implode('.',.array_
624c0 6d 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 map('escapeshellarg',.$this->arg
624e0 75 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 uments));..if.($this->inheritEnv
62500 29 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 ).{.$env.=.$this->env.?.$this->e
62520 6e 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 nv.+.$_ENV.:.null;.}.else.{.$env
62540 20 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 .=.$this->env;.}..return.new.Pro
62560 63 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 cess($script,.$this->cwd,.$env,.
62580 24 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 $this->stdin,.$this->timeout,.$o
625a0 70 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 ptions);.}.}.<?php...........nam
625c0 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 6f 63 65 73 73 espace.Symfony\Component\Process
625e0 5c 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 \Exception;.......interface.Exce
62600 70 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 ptionInterface.{.}.<?php........
62620 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 50 ...namespace.Symfony\Component\P
62640 72 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 rocess\Exception;.......class.Ru
62660 6e 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 ntimeException.extends.\RuntimeE
62680 78 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 xception.implements.ExceptionInt
626a0 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 6e 61 6d 65 73 erface.{.}.<?php...........names
626c0 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 45 pace.Symfony\Component\Process\E
626e0 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 xception;..use.Symfony\Component
62700 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 \Process\Process;.......class.Pr
62720 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e ocessFailedException.extends.Run
62740 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 timeException.{.private.$process
62760 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 50 ;..public.function.__construct(P
62780 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a 69 66 20 28 24 70 72 6f 63 65 73 73 2d rocess.$process).{.if.($process-
627a0 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e >isSuccessful()).{.throw.new.\In
627c0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 74 65 64 validArgumentException('Expected
627e0 20 61 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 62 75 74 20 74 68 65 20 67 69 76 65 6e .a.failed.process,.but.the.given
62800 20 70 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 2e 27 29 3b 0a 7d 0a 0a 70 .process.was.successful.');.}..p
62820 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 0a 73 70 72 69 6e 74 66 28 0a 27 54 68 arent::__construct(.sprintf(.'Th
62840 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 66 61 69 6c 65 64 2e 27 2e 22 5c 6e 5c 6e 4f 75 74 e.command."%s".failed.'."\n\nOut
62860 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 put:\n================\n".$proce
62880 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2e 22 5c 6e 5c 6e 45 72 72 6f 72 20 4f 75 74 70 75 ss->getOutput()."\n\nError.Outpu
628a0 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 2e 24 70 72 6f 63 65 73 73 t:\n================\n".$process
628c0 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 ->getErrorOutput(),.$process->ge
628e0 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 tCommandLine().).);..$this->proc
62900 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ess.=.$process;.}..public.functi
62920 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getProcess().{.return.$this->
62940 70 72 6f 63 65 73 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 process;.}.}.<?php...........nam
62960 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 6f 63 65 73 73 espace.Symfony\Component\Process
62980 3b 0a 0a 0a 0a 0a 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 ;........class.PhpExecutableFind
629a0 65 72 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 65 72 3b 0a er.{.private.$executableFinder;.
629c0 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 29 0a 7b .public.function.__construct().{
629e0 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 3d 20 6e 65 77 20 45 .$this->executableFinder.=.new.E
62a00 78 65 63 75 74 61 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 xecutableFinder();.}.......publi
62a20 63 20 66 75 6e 63 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 c.function.find().{...if.(define
62a40 64 28 27 50 48 50 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 d('PHP_BINARY').&&.PHP_BINARY.&&
62a60 20 28 27 63 6c 69 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 .('cli'.===.PHP_SAPI)).{.return.
62a80 50 48 50 5f 42 49 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 PHP_BINARY;.}..if.($php.=.getenv
62aa0 28 27 50 48 50 5f 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 ('PHP_PATH')).{.if.(!is_executab
62ac0 6c 65 28 24 70 68 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 le($php)).{.return.false;.}..ret
62ae0 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 44 49 52 45 43 54 4f urn.$php;.}..$suffixes.=.DIRECTO
62b00 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c 27 20 3f 20 28 67 65 74 65 6e 76 28 27 RY_SEPARATOR.==.'\\'.?.(getenv('
62b20 50 41 54 48 45 58 54 27 29 20 3f 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 PATHEXT').?.explode(PATH_SEPARAT
62b40 4f 52 2c 20 67 65 74 65 6e 76 28 27 50 41 54 48 45 58 54 27 29 29 20 3a 20 61 72 72 61 79 28 27 OR,.getenv('PATHEXT')).:.array('
62b60 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e 63 6d 64 27 2c 20 27 2e 63 6f 6d 27 29 29 20 .exe',.'.bat',.'.cmd',.'.com')).
62b80 3a 20 61 72 72 61 79 28 27 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 75 66 66 69 78 65 73 20 :.array('');.foreach.($suffixes.
62ba0 61 73 20 24 73 75 66 66 69 78 29 20 7b 0a 69 66 20 28 69 73 5f 65 78 65 63 75 74 61 62 6c 65 28 as.$suffix).{.if.(is_executable(
62bc0 24 70 68 70 20 3d 20 50 48 50 5f 42 49 4e 44 49 52 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 $php.=.PHP_BINDIR.DIRECTORY_SEPA
62be0 52 41 54 4f 52 2e 27 70 68 70 27 2e 24 73 75 66 66 69 78 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 RATOR.'php'.$suffix)).{.return.$
62c00 70 68 70 3b 0a 7d 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 php;.}.}..if.($php.=.getenv('PHP
62c20 5f 50 45 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 _PEAR_PHP_BIN')).{.if.(is_execut
62c40 61 62 6c 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 able($php)).{.return.$php;.}.}..
62c60 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 72 2d 3e return.$this->executableFinder->
62c80 66 69 6e 64 28 27 70 68 70 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a find('php');.}.}.<?php..........
62ca0 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 6e .namespace.Symfony\Component\Con
62cc0 73 6f 6c 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 sole\Command;..use.Symfony\Compo
62ce0 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 6e 74 nent\Console\Input\InputArgument
62d00 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\
62d20 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 5c 43 Input\InputOption;.use.Symfony\C
62d40 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
62d60 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
62d80 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
62da0 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
62dc0 74 5c 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 6e 65 6e 74 5c t\Output;.use.Symfony\Component\
62de0 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 0a 0a 0a 63 Console\Command\Command;.......c
62e00 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 6d 61 6e 64 lass.HelpCommand.extends.Command
62e20 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 74 65 63 74 .{.private.$command;.....protect
62e40 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 2d ed.function.configure().{.$this-
62e60 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 24 74 68 69 >ignoreValidationErrors();..$thi
62e80 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 69 6e 69 74 s.->setName('help').->setDefinit
62ea0 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 27 63 6f ion(array(.new.InputArgument('co
62ec0 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 4f 50 54 49 mmand_name',.InputArgument::OPTI
62ee0 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 65 6c 70 27 ONAL,.'The.command.name',.'help'
62f00 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 6c 6c 2c 20 ),.new.InputOption('xml',.null,.
62f20 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 20 6f 75 74 InputOption::VALUE_NONE,.'To.out
62f40 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 65 73 63 72 put.help.as.XML'),.)).->setDescr
62f60 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 63 6f 6d 6d iption('Displays.help.for.a.comm
62f80 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 69 6e 66 6f and').->setHelp(<<<EOF.The.<info
62fa0 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 6e 64 20 64 >%command.name%</info>.command.d
62fc0 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 6d 61 6e 64 isplays.help.for.a.given.command
62fe0 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 5f 6e 61 6d :....<info>php.%command.full_nam
63000 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 20 6f 75 74 e%.list</info>..You.can.also.out
63020 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 20 74 68 65 put.the.help.as.XML.by.using.the
63040 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 74 69 6f 6e .<comment>--xml</comment>.option
63060 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 5f 6e 61 6d :....<info>php.%command.full_nam
63080 65 25 20 2d 2d 78 6d 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a e%.--xml.list</info>.EOF.).;.}..
630a0 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 6d 6d 61 6e 64 28 .....public.function.setCommand(
630c0 43 6f 6d 6d 61 6e 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 Command.$command).{.$this->comma
630e0 6e 64 20 3d 20 24 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 nd.=.$command;.}.....protected.f
63100 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 24 unction.execute(InputInterface.$
63120 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 0a input,.OutputInterface.$output).
63140 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 6d 61 6e 64 29 20 7b {.if.(null.===.$this->command).{
63160 0a 24 74 68 69 73 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 .$this->command.=.$this->getAppl
63180 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 ication()->get($input->getArgume
631a0 6e 74 28 27 63 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 nt('command_name'));.}..if.($inp
631c0 75 74 2d 3e 67 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 ut->getOption('xml')).{.$output-
631e0 3e 77 72 69 74 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 >writeln($this->command->asXml()
63200 2c 20 4f 75 74 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 ,.OutputInterface::OUTPUT_RAW);.
63220 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 24 74 68 69 73 2d }.else.{.$output->writeln($this-
63240 3e 63 6f 6d 6d 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 >command->asText());.}..$this->c
63260 6f 6d 6d 61 6e 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 ommand.=.null;.}.}.<?php........
63280 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
632a0 6f 6e 73 6f 6c 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 onsole\Command;..use.Symfony\Com
632c0 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 44 65 66 69 6e 69 ponent\Console\Input\InputDefini
632e0 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
63300 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 6f ole\Input\InputOption;.use.Symfo
63320 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
63340 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\
63360 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 73 Console\Input\InputInterface;.us
63380 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
633a0 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 6e 79 5c ut\OutputInterface;.use.Symfony\
633c0 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 3b 0a 75 Component\Console\Application;.u
633e0 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 48 65 6c se.Symfony\Component\Console\Hel
63400 70 65 72 5c 48 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 per\HelperSet;.........class.Com
63420 6d 61 6e 64 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 69 mand.{.private.$application;.pri
63440 76 61 74 65 20 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 vate.$name;.private.$aliases;.pr
63460 69 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 ivate.$definition;.private.$help
63480 3b 0a 70 72 69 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 ;.private.$description;.private.
634a0 24 69 67 6e 6f 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 $ignoreValidationErrors;.private
634c0 20 24 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 65 64 3b 0a 70 .$applicationDefinitionMerged;.p
634e0 72 69 76 61 74 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 rivate.$code;.private.$synopsis;
63500 0a 70 72 69 76 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 .private.$helperSet;...........p
63520 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 6d 65 ublic.function.__construct($name
63540 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 20 3d 20 6e .=.null).{.$this->definition.=.n
63560 65 77 20 49 6e 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 ew.InputDefinition();.$this->ign
63580 6f 72 65 56 61 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 oreValidationErrors.=.false;.$th
635a0 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 65 64 20 is->applicationDefinitionMerged.
635c0 3d 20 66 61 6c 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 =.false;.$this->aliases.=.array(
635e0 29 3b 0a 0a 69 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 );..if.(null.!==.$name).{.$this-
63600 3e 73 65 74 4e 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 >setName($name);.}..$this->confi
63620 67 75 72 65 28 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 gure();..if.(!$this->name).{.thr
63640 6f 77 20 6e 65 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 ow.new.\LogicException('The.comm
63660 61 6e 64 20 6e 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 and.name.cannot.be.empty.');.}.}
63680 0a 0a 0a 0a 0a 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 .......public.function.ignoreVal
636a0 69 64 61 74 69 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 idationErrors().{.$this->ignoreV
636c0 61 6c 69 64 61 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 alidationErrors.=.true;.}.......
636e0 0a 0a 70 75 62 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 ..public.function.setApplication
63700 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 20 3d 20 6e 75 6c 6c (Application.$application.=.null
63720 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 63 ).{.$this->application.=.$applic
63740 61 74 69 6f 6e 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 ation;.if.($application).{.$this
63760 2d 3e 73 65 74 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 ->setHelperSet($application->get
63780 48 65 6c 70 65 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 HelperSet());.}.else.{.$this->he
637a0 6c 70 65 72 53 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 lperSet.=.null;.}.}.......public
637c0 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 65 72 53 65 74 .function.setHelperSet(HelperSet
637e0 20 24 68 65 6c 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 .$helperSet).{.$this->helperSet.
63800 3d 20 24 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 =.$helperSet;.}.......public.fun
63820 63 74 69 6f 6e 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 ction.getHelperSet().{.return.$t
63840 68 69 73 2d 3e 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 his->helperSet;.}.........public
63860 20 66 75 6e 63 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 .function.getApplication().{.ret
63880 75 72 6e 20 24 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 urn.$this->application;.}.......
638a0 0a 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 64 28 29 0a 7b ...public.function.isEnabled().{
638c0 0a 72 65 74 75 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 .return.true;.}.....protected.fu
638e0 6e 63 74 69 6f 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 nction.configure().{.}..........
63900 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 78 65 63 75 ........protected.function.execu
63920 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 75 74 te(InputInterface.$input,.Output
63940 49 6e 74 65 72 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 Interface.$output).{.throw.new.\
63960 4c 6f 67 69 63 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 LogicException('You.must.overrid
63980 65 20 74 68 65 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 e.the.execute().method.in.the.co
639a0 6e 63 72 65 74 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 ncrete.command.class.');.}......
639c0 0a 0a 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 ..protected.function.interact(In
639e0 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
63a00 66 61 63 65 20 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 face.$output).{.}...........prot
63a20 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
63a40 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
63a60 20 24 6f 75 74 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 .$output).{.}...................
63a80 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 49 6e 74 65 72 66 61 public.function.run(InputInterfa
63aa0 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
63ac0 75 74 29 0a 7b 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 ut).{...$this->getSynopsis();...
63ae0 20 24 74 68 69 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 .$this->mergeApplicationDefiniti
63b00 6f 6e 28 29 3b 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 on();....try.{.$input->bind($thi
63b20 73 2d 3e 64 65 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 s->definition);.}.catch.(\Except
63b40 69 6f 6e 20 24 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 ion.$e).{.if.(!$this->ignoreVali
63b60 64 61 74 69 6f 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 dationErrors).{.throw.$e;.}.}..$
63b80 74 68 69 73 2d 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 this->initialize($input,.$output
63ba0 29 3b 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 );..if.($input->isInteractive())
63bc0 20 7b 0a 24 74 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 .{.$this->interact($input,.$outp
63be0 75 74 29 3b 0a 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 ut);.}..$input->validate();..if.
63c00 28 24 74 68 69 73 2d 3e 63 6f 64 65 29 20 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 ($this->code).{.return.call_user
63c20 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 74 70 _func($this->code,.$input,.$outp
63c40 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 ut);.}..return.$this->execute($i
63c60 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a nput,.$output);.}...............
63c80 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 6f 73 75 72 .public.function.setCode(\Closur
63ca0 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 64 65 3b 0a e.$code).{.$this->code.=.$code;.
63cc0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e .return.$this;.}.....private.fun
63ce0 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 6e 69 74 69 6f 6e ction.mergeApplicationDefinition
63d00 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 61 70 70 6c 69 63 61 ().{.if.(null.===.$this->applica
63d20 74 69 6f 6e 20 7c 7c 20 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 tion.||.true.===.$this->applicat
63d40 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d ionDefinitionMerged).{.return;.}
63d60 0a 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 ..$currentArguments.=.$this->def
63d80 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 24 74 68 69 73 2d 3e inition->getArguments();.$this->
63da0 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e definition->setArguments($this->
63dc0 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 application->getDefinition()->ge
63de0 74 41 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e tArguments());.$this->definition
63e00 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 ->addArguments($currentArguments
63e20 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e );..$this->definition->addOption
63e40 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
63e60 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 70 ion()->getOptions());..$this->ap
63e80 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 74 72 75 65 plicationDefinitionMerged.=.true
63ea0 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 20 73 65 ;.}...........public.function.se
63ec0 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 tDefinition($definition).{.if.($
63ee0 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e definition.instanceof.InputDefin
63f00 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 3d 20 24 64 65 ition).{.$this->definition.=.$de
63f20 66 69 6e 69 74 69 6f 6e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 finition;.}.else.{.$this->defini
63f40 74 69 6f 6e 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 tion->setDefinition($definition)
63f60 3b 0a 7d 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 ;.}..$this->applicationDefinitio
63f80 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a nMerged.=.false;..return.$this;.
63fa0 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 65 74 44 65 66 }.........public.function.getDef
63fc0 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 inition().{.return.$this->defini
63fe0 74 69 6f 6e 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 tion;.}..........protected.funct
64000 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 ion.getNativeDefinition().{.retu
64020 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a rn.$this->getDefinition();.}....
64040 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 64 41 72 67 ..........public.function.addArg
64060 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 ument($name,.$mode.=.null,.$desc
64080 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b ription.=.'',.$default.=.null).{
640a0 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 .$this->definition->addArgument(
640c0 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 2c 20 new.InputArgument($name,.$mode,.
640e0 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 $description,.$default));..retur
64100 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 70 75 62 6c 69 63 20 n.$this;.}...............public.
64120 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 function.addOption($name,.$short
64140 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 cut.=.null,.$mode.=.null,.$descr
64160 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a iption.=.'',.$default.=.null).{.
64180 24 74 68 69 73 2d 3e 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 $this->definition->addOption(new
641a0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 .InputOption($name,.$shortcut,.$
641c0 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 74 29 29 3b 0a mode,.$description,.$default));.
641e0 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 0a .return.$this;.}................
64200 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 ..public.function.setName($name)
64220 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 0a .{.$this->validateName($name);..
64240 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 $this->name.=.$name;..return.$th
64260 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 67 65 is;.}.........public.function.ge
64280 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 65 3b 0a 7d 0a tName().{.return.$this->name;.}.
642a0 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 44 65 73 ..........public.function.setDes
642c0 63 72 69 70 74 69 6f 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 cription($description).{.$this->
642e0 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 0a 72 65 74 description.=.$description;..ret
64300 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
64320 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 74 75 72 6e 20 24 tion.getDescription().{.return.$
64340 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 0a 0a 0a 0a 0a 70 this->description;.}...........p
64360 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 28 24 68 65 6c 70 29 0a 7b 0a ublic.function.setHelp($help).{.
64380 24 74 68 69 73 2d 3e 68 65 6c 70 20 3d 20 24 68 65 6c 70 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 $this->help.=.$help;..return.$th
643a0 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 67 65 is;.}.........public.function.ge
643c0 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 3b 0a 7d 0a tHelp().{.return.$this->help;.}.
643e0 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 72 6f 63 65 73 .......public.function.getProces
64400 73 65 64 48 65 6c 70 28 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b sedHelp().{.$name.=.$this->name;
64420 0a 0a 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 27 25 63 6f 6d 6d 61 ..$placeholders.=.array(.'%comma
64440 6e 64 2e 6e 61 6d 65 25 27 2c 0a 27 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 27 nd.name%',.'%command.full_name%'
64460 0a 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 .);.$replacements.=.array(.$name
64480 2c 0a 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 27 5d 2e 27 20 27 2e 24 6e 61 6d 65 ,.$_SERVER['PHP_SELF'].'.'.$name
644a0 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 70 6c 61 63 65 68 6f .);..return.str_replace($placeho
644c0 6c 64 65 72 73 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 67 65 74 lders,.$replacements,.$this->get
644e0 48 65 6c 70 28 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 Help());.}...........public.func
64500 74 69 6f 6e 20 73 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 tion.setAliases($aliases).{.fore
64520 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 74 68 69 73 ach.($aliases.as.$alias).{.$this
64540 2d 3e 76 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 ->validateName($alias);.}..$this
64560 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ->aliases.=.$aliases;..return.$t
64580 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 74 69 6f 6e 20 67 his;.}.........public.function.g
645a0 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 61 etAliases().{.return.$this->alia
645c0 73 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 6e 20 67 65 74 ses;.}.......public.function.get
645e0 53 79 6e 6f 70 73 69 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 Synopsis().{.if.(null.===.$this-
64600 3e 73 79 6e 6f 70 73 69 73 29 20 7b 0a 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 20 3d 20 74 >synopsis).{.$this->synopsis.=.t
64620 72 69 6d 28 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 rim(sprintf('%s.%s',.$this->name
64640 2c 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 ,.$this->definition->getSynopsis
64660 28 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 3b ()));.}..return.$this->synopsis;
64680 0a 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 .}.............public.function.g
646a0 65 74 48 65 6c 70 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etHelper($name).{.return.$this->
646c0 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 helperSet->get($name);.}.......p
646e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 6d 65 73 73 61 ublic.function.asText().{.$messa
64700 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 ges.=.array(.'<comment>Usage:</c
64720 6f 6d 6d 65 6e 74 3e 27 2c 0a 27 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 omment>',.'.'.$this->getSynopsis
64740 28 29 2c 0a 27 27 2c 0a 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 (),.'',.);..if.($this->getAliase
64760 73 28 29 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 41 s()).{.$messages[].=.'<comment>A
64780 6c 69 61 73 65 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3c 69 6e 66 6f 3e 27 2e 69 6d 70 6c 6f 64 liases:</comment>.<info>'.implod
647a0 65 28 27 2c 20 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f e(',.',.$this->getAliases()).'</
647c0 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e info>';.}..$messages[].=.$this->
647e0 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 61 73 54 65 78 74 28 29 3b getNativeDefinition()->asText();
64800 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 ..if.($help.=.$this->getProcesse
64820 64 48 65 6c 70 28 29 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 dHelp()).{.$messages[].=.'<comme
64840 6e 74 3e 48 65 6c 70 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d nt>Help:</comment>';.$messages[]
64860 20 3d 20 27 20 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 .=.'.'.str_replace("\n",."\n.",.
64880 24 68 65 6c 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 $help)."\n";.}..return.implode("
648a0 5c 6e 22 2c 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 \n",.$messages);.}.........publi
648c0 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 66 61 6c 73 65 29 c.function.asXml($asDom.=.false)
648e0 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 28 27 31 2e 30 27 .{.$dom.=.new.\DOMDocument('1.0'
64900 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 20 3d ,.'UTF-8');.$dom->formatOutput.=
64920 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 63 6f 6d 6d 61 6e .true;.$dom->appendChild($comman
64940 64 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 63 6f 6d 6d dXML.=.$dom->createElement('comm
64960 61 6e 64 27 29 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 74 and'));.$commandXML->setAttribut
64980 65 28 27 69 64 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d e('id',.$this->name);.$commandXM
649a0 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 74 68 69 73 2d 3e 6e L->setAttribute('name',.$this->n
649c0 61 6d 65 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 28 ame);..$commandXML->appendChild(
649e0 24 75 73 61 67 65 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 $usageXML.=.$dom->createElement(
64a00 27 75 73 61 67 65 27 29 29 3b 0a 24 75 73 61 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 'usage'));.$usageXML->appendChil
64a20 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 70 72 69 6e 74 66 28 24 d($dom->createTextNode(sprintf($
64a40 74 68 69 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 27 27 29 29 29 3b 0a 0a 24 63 6f this->getSynopsis(),.'')));..$co
64a60 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 mmandXML->appendChild($descripti
64a80 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 74 28 27 64 65 73 onXML.=.$dom->createElement('des
64aa0 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 4d 4c 2d 3e 61 70 cription'));.$descriptionXML->ap
64ac0 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 73 pendChild($dom->createTextNode(s
64ae0 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 2d 3e 67 tr_replace("\n",."\n.",.$this->g
64b00 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c etDescription())));..$commandXML
64b20 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 68 65 6c 70 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 ->appendChild($helpXML.=.$dom->c
64b40 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 68 65 6c 70 27 29 29 3b 0a 24 68 65 6c 70 58 4d 4c 2d reateElement('help'));.$helpXML-
64b60 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 4e 6f 64 >appendChild($dom->createTextNod
64b80 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 74 68 69 73 e(str_replace("\n",."\n.",.$this
64ba0 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 ->getProcessedHelp())));..$comma
64bc0 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d ndXML->appendChild($aliasesXML.=
64be0 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 65 73 27 29 29 .$dom->createElement('aliases'))
64c00 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 ;.foreach.($this->getAliases().a
64c20 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 s.$alias).{.$aliasesXML->appendC
64c40 68 69 6c 64 28 24 61 6c 69 61 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 hild($aliasXML.=.$dom->createEle
64c60 6d 65 6e 74 28 27 61 6c 69 61 73 27 29 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e ment('alias'));.$aliasXML->appen
64c80 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 61 6c 69 dChild($dom->createTextNode($ali
64ca0 61 73 29 29 3b 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 as));.}..$definition.=.$this->ge
64cc0 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 tNativeDefinition()->asXml(true)
64ce0 3b 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 28 24 64 6f 6d 2d ;.$commandXML->appendChild($dom-
64d00 3e 69 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 >importNode($definition->getElem
64d20 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 61 72 67 75 6d 65 6e 74 73 27 29 2d 3e 69 74 65 6d entsByTagName('arguments')->item
64d40 28 30 29 2c 20 74 72 75 65 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 (0),.true));.$commandXML->append
64d60 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 64 65 66 69 6e 69 74 69 Child($dom->importNode($definiti
64d80 6f 6e 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d 65 28 27 6f 70 74 69 6f 6e on->getElementsByTagName('option
64da0 73 27 29 2d 3e 69 74 65 6d 28 30 29 2c 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 s')->item(0),.true));..return.$a
64dc0 73 44 6f 6d 20 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 sDom.?.$dom.:.$dom->saveXml();.}
64de0 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 4e 61 6d 65 28 ..private.function.validateName(
64e00 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 5e 5c 3a $name).{.if.(!preg_match('/^[^\:
64e20 5d 2b 28 5c 3a 5b 5e 5c 3a 5d 2b 29 2a 24 2f 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f ]+(\:[^\:]+)*$/',.$name)).{.thro
64e40 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(
64e60 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 22 25 73 22 20 69 73 20 69 6e sprintf('Command.name."%s".is.in
64e80 76 61 6c 69 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a valid.',.$name));.}.}.}.<?php...
64ea0 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
64ec0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e ent\Console\Command;..use.Symfon
64ee0 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 41 y\Component\Console\Input\InputA
64f00 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 43 rgument;.use.Symfony\Component\C
64f20 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 79 onsole\Input\InputOption;.use.Sy
64f40 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 6e mfony\Component\Console\Input\In
64f60 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
64f80 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 66 61 ent\Console\Output\OutputInterfa
64fa0 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
64fc0 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d e\Output\Output;.use.Symfony\Com
64fe0 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 6d 61 6e 64 3b 0a ponent\Console\Command\Command;.
65000 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
65020 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 0a 63 6c 61 73 73 put\InputDefinition;.......class
65040 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 6e 64 0a 7b 0a 0a .ListCommand.extends.Command.{..
65060 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()
65080 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 0a 2d 3e 73 65 74 .{.$this.->setName('list').->set
650a0 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 66 69 6e 69 74 69 Definition($this->createDefiniti
650c0 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 73 74 73 20 63 6f on()).->setDescription('Lists.co
650e0 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 54 68 65 20 3c 69 mmands').->setHelp(<<<EOF.The.<i
65100 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 6e nfo>%command.name%</info>.comman
65120 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 69 6e 66 6f 3e 70 d.lists.all.commands:....<info>p
65140 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 66 6f 3e 0a 0a 59 hp.%command.full_name%</info>..Y
65160 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 6d 6d 61 6e 64 73 ou.can.also.display.the.commands
65180 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 0a 0a 20 20 3c 69 .for.a.specific.namespace:....<i
651a0 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 20 74 65 73 74 nfo>php.%command.full_name%.test
651c0 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 75 74 20 74 68 65 </info>..You.can.also.output.the
651e0 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 6e 67 20 74 68 65 .information.as.XML.by.using.the
65200 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 74 69 6f 6e .<comment>--xml</comment>.option
65220 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 5f 6e 61 6d :....<info>php.%command.full_nam
65240 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 20 70 6f 73 73 69 e%.--xml</info>..It's.also.possi
65260 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 6d 61 6e 64 73 20 ble.to.get.raw.list.of.commands.
65280 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 61 6e 64 20 72 75 (useful.for.embedding.command.ru
652a0 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 6e 64 2e 66 75 6c nner):....<info>php.%command.ful
652c0 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 0a 3b 0a 7d 0a 0a l_name%.--raw</info>.EOF.).;.}..
652e0 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 61 74 69 76 65 44 ...protected.function.getNativeD
65300 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 2d 3e 63 72 65 61 efinition().{.return.$this->crea
65320 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 65 63 74 65 64 20 teDefinition();.}.....protected.
65340 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.
65360 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)
65380 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 78 6d 6c 27 29 29 .{.if.($input->getOption('xml'))
653a0 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
653c0 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 3e 67 65 74 41 72 plication()->asXml($input->getAr
653e0 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 75 74 49 6e 74 65 gument('namespace')),.OutputInte
65400 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 20 7b 0a 24 6f 75 rface::OUTPUT_RAW);.}.else.{.$ou
65420 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 70 6c 69 63 61 74 tput->writeln($this->getApplicat
65440 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 72 67 75 6d 65 6e ion()->asText($input->getArgumen
65460 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 74 4f 70 74 69 6f t('namespace'),.$input->getOptio
65480 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 75 6e 63 74 69 6f n('raw')));.}.}..private.functio
654a0 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 75 72 6e 20 6e 65 n.createDefinition().{.return.ne
654c0 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 65 77 20 49 6e 70 w.InputDefinition(array(.new.Inp
654e0 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 70 75 74 41 72 67 utArgument('namespace',.InputArg
65500 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 73 70 61 63 65 20 ument::OPTIONAL,.'The.namespace.
65520 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 6d 6c 27 2c 20 6e name'),.new.InputOption('xml',.n
65540 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 54 ull,.InputOption::VALUE_NONE,.'T
65560 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 77 20 49 6e 70 75 o.output.help.as.XML'),.new.Inpu
65580 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 4f 70 74 69 6f 6e tOption('raw',.null,.InputOption
655a0 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 61 77 20 63 6f 6d ::VALUE_NONE,.'To.output.raw.com
655c0 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 0a 0a 0a 0a 0a 0a mand.list'),.));.}.}.<?php......
655e0 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
65600 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 6f 6e 79 5c 43 6f \Console\Tester;..use.Symfony\Co
65620 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 3b 0a 75 73 65 mponent\Console\Application;.use
65640 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
65660 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 6f 6d 70 6f 6e 65 \ArrayInput;.use.Symfony\Compone
65680 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;
656a0 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
656c0 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
656e0 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 53 74 72 65 ny\Component\Console\Output\Stre
65700 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 69 63 61 74 69 6f amOutput;.......class.Applicatio
65720 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 74 69 6f 6e 3b 0a nTester.{.private.$application;.
65740 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 75 74 70 75 74 3b private.$input;.private.$output;
65760 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
65780 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 29 0a 7b 0a 24 ct(Application.$application).{.$
657a0 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
657c0 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 69 ;.}................public.functi
657e0 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 6f 6e 73 20 3d 20 on.run(array.$input,.$options.=.
65800 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 77 20 41 72 array()).{.$this->input.=.new.Ar
65820 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 24 6f 70 74 rayInput($input);.if.(isset($opt
65840 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 73 2d 3e 69 ions['interactive'])).{.$this->i
65860 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 73 5b 27 69 nput->setInteractive($options['i
65880 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 70 75 74 20 nteractive']);.}..$this->output.
658a0 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 70 3a 2f 2f =.new.StreamOutput(fopen('php://
658c0 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 73 73 65 74 memory',.'w',.false));.if.(isset
658e0 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 74 68 69 73 ($options['decorated'])).{.$this
65900 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 6f 6e 73 5b ->output->setDecorated($options[
65920 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 6f 70 74 69 'decorated']);.}.if.(isset($opti
65940 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 6f 75 74 70 ons['verbosity'])).{.$this->outp
65960 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 65 72 62 6f ut->setVerbosity($options['verbo
65980 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 61 70 70 6c 69 63 sity']);.}..return.$this->applic
659a0 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 74 68 69 73 2d 3e ation->run($this->input,.$this->
659c0 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
659e0 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
65a00 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
65a20 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
65a40 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
65a60 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->
65a80 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
65aa0 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
65ac0 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
65ae0 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 54 65 73 74 65 .Symfony\Component\Console\Teste
65b00 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 43 6f 6e 73 6f 6c r;..use.Symfony\Component\Consol
65b20 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 66 6f 6e 79 5c 43 e\Command\Command;.use.Symfony\C
65b40 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 61 79 49 6e 70 75 omponent\Console\Input\ArrayInpu
65b60 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
65b80 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 0a 0a 63 6c 61 73 \Output\StreamOutput;.......clas
65ba0 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 24 63 6f 6d 6d 61 s.CommandTester.{.private.$comma
65bc0 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 65 20 24 6f 75 74 nd;.private.$input;.private.$out
65be0 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 6f 6e put;.......public.function.__con
65c00 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 0a 24 74 68 69 73 struct(Command.$command).{.$this
65c20 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 0a 0a 0a 0a 0a 0a ->command.=.$command;.}.........
65c40 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 74 65 28 61 .......public.function.execute(a
65c60 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 73 20 3d 20 61 72 rray.$input,.array.$options.=.ar
65c80 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 77 20 41 72 72 61 ray()).{.$this->input.=.new.Arra
65ca0 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 24 6f 70 74 69 6f yInput($input);.if.(isset($optio
65cc0 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 73 2d 3e 69 6e 70 ns['interactive'])).{.$this->inp
65ce0 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 73 5b 27 69 6e 74 ut->setInteractive($options['int
65d00 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 70 75 74 20 3d 20 eractive']);.}..$this->output.=.
65d20 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 70 3a 2f 2f 6d 65 new.StreamOutput(fopen('php://me
65d40 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 73 73 65 74 28 24 mory',.'w',.false));.if.(isset($
65d60 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 74 68 69 73 2d 3e options['decorated'])).{.$this->
65d80 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 6f 6e 73 5b 27 64 output->setDecorated($options['d
65da0 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 6f 70 74 69 6f 6e ecorated']);.}.if.(isset($option
65dc0 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 6f 75 74 70 75 74 s['verbosity'])).{.$this->output
65de0 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 65 72 62 6f 73 69 ->setVerbosity($options['verbosi
65e00 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 6d 6d 61 6e 64 2d ty']);.}..return.$this->command-
65e20 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 6f 75 74 70 75 74 >run($this->input,.$this->output
65e40 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 44 69 );.}.......public.function.getDi
65e60 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 74 70 75 74 2d 3e splay().{.rewind($this->output->
65e80 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 61 6d 5f 67 65 74 getStream());..return.stream_get
65ea0 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 65 74 53 74 72 65 _contents($this->output->getStre
65ec0 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 74 69 6f 6e 20 67 am());.}.......public.function.g
65ee0 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 69 6e 70 75 74 3b etInput().{.return.$this->input;
65f00 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 75 74 70 .}.......public.function.getOutp
65f20 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 74 3b 0a 7d 0a 7d ut().{.return.$this->output;.}.}
65f40 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
65f60 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 72 3b 0a ny\Component\Console\Formatter;.
65f80 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 74 79 6c 65 53 74 ....class.OutputFormatterStyleSt
65fa0 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 0a 0a 0a 0a 70 72 ack.{....private.$styles;.....pr
65fc0 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 75 62 6c 69 63 20 ivate.$emptyStyle;.......public.
65fe0 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 74 46 6f 72 6d 61 function.__construct(OutputForma
66000 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 74 79 6c 65 20 3d tterStyleInterface.$emptyStyle.=
66020 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 20 3d 20 24 65 6d .null).{.$this->emptyStyle.=.$em
66040 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 61 74 74 65 72 53 ptyStyle.?:.new.OutputFormatterS
66060 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 0a 0a 0a 0a 70 75 tyle();.$this->reset();.}.....pu
66080 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 68 69 73 2d 3e 73 blic.function.reset().{.$this->s
660a0 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 75 62 6c 69 63 20 tyles.=.array();.}.......public.
660c0 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 74 65 72 53 74 79 function.push(OutputFormatterSty
660e0 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 73 2d 3e 73 74 79 leInterface.$style).{.$this->sty
66100 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 0a 0a 70 75 62 6c les[].=.$style;.}...........publ
66120 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 61 74 74 65 72 53 ic.function.pop(OutputFormatterS
66140 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 6c 29 0a 7b 0a 69 tyleInterface.$style.=.null).{.i
66160 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
66180 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 20 28 6e 75 6c 6c n.$this->emptyStyle;.}..if.(null
661a0 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 79 5f 70 6f 70 28 .===.$style).{.return.array_pop(
661c0 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 20 28 61 72 72 61 $this->styles);.}..foreach.(arra
661e0 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 72 75 65 29 20 61 y_reverse($this->styles,.true).a
66200 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 20 7b 0a 69 66 20 s.$index.=>.$stackedStyle).{.if.
66220 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 61 63 6b 65 64 53 ($style->apply('').===.$stackedS
66240 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 73 74 79 6c 65 73 tyle->apply('')).{.$this->styles
66260 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 65 73 2c 20 30 2c .=.array_slice($this->styles,.0,
66280 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 53 74 79 6c 65 3b .$index);..return.$stackedStyle;
662a0 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 67 75 6d 65 6e 74 .}.}..throw.new.\InvalidArgument
662c0 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 74 65 64 20 73 74 Exception('Incorrectly.nested.st
662e0 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 70 75 62 6c 69 63 yle.tag.found.');.}.......public
66300 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 66 20 28 65 6d 70 .function.getCurrent().{.if.(emp
66320 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 6e 20 24 74 68 69 ty($this->styles)).{.return.$thi
66340 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 74 68 69 73 2d 3e s->emptyStyle;.}..return.$this->
66360 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 29 2d 31 5d 3b 0a styles[count($this->styles)-1];.
66380 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 70 74 79 }.......public.function.setEmpty
663a0 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 49 6e 74 65 72 66 Style(OutputFormatterStyleInterf
663c0 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 65 6d 70 74 79 53 ace.$emptyStyle).{.$this->emptyS
663e0 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 6e 20 24 74 68 69 tyle.=.$emptyStyle;..return.$thi
66400 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 45 6d 70 74 s;.}.....public.function.getEmpt
66420 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 6d 70 74 79 53 74 yStyle().{.return.$this->emptySt
66440 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 61 6d 65 73 70 61 yle;.}.}.<?php...........namespa
66460 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 46 6f 72 ce.Symfony\Component\Console\For
66480 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 75 74 46 6f 72 6d matter;.........class.OutputForm
664a0 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 75 74 46 6f 72 6d atterStyle.implements.OutputForm
664c0 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 73 74 61 74 69 63 20 70 72 69 atterStyleInterface.{.static.pri
664e0 76 61 74 65 20 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 20 vate.$availableForegroundColors.
66500 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 65 64 27 20 3d 3e =.array(.'black'.=>.30,.'red'.=>
66520 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 77 27 20 3d 3e 20 .31,.'green'.=>.32,.'yellow'.=>.
66540 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 27 20 3d 3e 20 33 33,.'blue'.=>.34,.'magenta'.=>.3
66560 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 3e 20 33 37 0a 29 5,.'cyan'.=>.36,.'white'.=>.37.)
66580 3b 0a 73 74 61 74 69 63 20 70 72 69 76 61 74 65 20 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 ;.static.private.$availableBackg
665a0 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 6b 27 20 3d 3e 20 roundColors.=.array(.'black'.=>.
665c0 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 3e 20 34 32 2c 0a 40,.'red'.=>.41,.'green'.=>.42,.
665e0 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 34 34 2c 0a 27 6d 'yellow'.=>.43,.'blue'.=>.44,.'m
66600 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 36 2c 0a 27 77 68 agenta'.=>.45,.'cyan'.=>.46,.'wh
66620 69 74 65 27 20 3d 3e 20 34 37 0a 29 3b 0a 73 74 61 74 69 63 20 70 72 69 76 61 74 65 20 24 61 76 ite'.=>.47.);.static.private.$av
66640 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 6f 6c 64 27 20 3d ailableOptions.=.array(.'bold'.=
66660 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 6c 69 6e 6b 27 20 >.1,.'underscore'.=>.4,.'blink'.
66680 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 63 65 61 6c 27 20 =>.5,.'reverse'.=>.7,.'conceal'.
666a0 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 6e 64 3b 0a 70 72 =>.8.);..private.$foreground;.pr
666c0 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 20 24 6f 70 74 69 ivate.$background;.private.$opti
666e0 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 75 62 6c 69 63 20 ons.=.array();...........public.
66700 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 67 72 6f 75 6e 64 function.__construct($foreground
66720 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 6c 2c 20 61 72 72 .=.null,.$background.=.null,.arr
66740 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 66 20 28 6e 75 6c ay.$options.=.array()).{.if.(nul
66760 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 2d 3e 73 65 74 46 l.!==.$foreground).{.$this->setF
66780 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 69 66 20 28 6e 75 oreground($foreground);.}.if.(nu
667a0 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 73 2d 3e 73 65 74 ll.!==.$background).{.$this->set
667c0 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 0a 69 66 20 28 63 Background($background);.}.if.(c
667e0 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 65 74 4f 70 74 69 ount($options)).{.$this->setOpti
66800 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 0a 0a 0a 70 75 62 ons($options);.}.}...........pub
66820 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 28 24 63 6f 6c 6f lic.function.setForeground($colo
66840 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 63 6f 6c 6f 72 29 r.=.null).{.if.(null.===.$color)
66860 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 6c 3b 0a 0a 72 65 .{.$this->foreground.=.null;..re
66880 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 3a 3a 24 61 76 61 turn;.}..if.(!isset(static::$ava
668a0 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 6f 72 5d 29 29 ilableForegroundColors[$color]))
668c0 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
668e0 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 6f 72 65 67 72 6f eption(sprintf(.'Invalid.foregro
66900 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 20 45 78 70 65 63 und.color.specified:."%s"..Expec
66920 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 69 6d 70 6c 6f 64 ted.one.of.(%s)',.$color,.implod
66940 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 76 61 69 e(',.',.array_keys(static::$avai
66960 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 3b 0a 7d 0a 0a 24 lableForegroundColors)).));.}..$
66980 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 3a 24 61 76 61 69 this->foreground.=.static::$avai
669a0 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 6f 72 5d 3b 0a 7d lableForegroundColors[$color];.}
669c0 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 42 61 ...........public.function.setBa
669e0 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 69 66 20 28 6e 75 ckground($color.=.null).{.if.(nu
66a00 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 63 6b 67 72 6f 75 ll.===.$color).{.$this->backgrou
66a20 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 28 21 69 73 73 65 nd.=.null;..return;.}..if.(!isse
66a40 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 6f 75 6e 64 43 6f t(static::$availableBackgroundCo
66a60 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 20 5c 49 6e 76 61 lors[$color])).{.throw.new.\Inva
66a80 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 0a 27 49 lidArgumentException(sprintf(.'I
66aa0 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 65 63 69 66 69 65 nvalid.background.color.specifie
66ac0 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 25 73 29 27 2c 0a d:."%s"..Expected.one.of.(%s)',.
66ae0 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 79 5f 6b 65 79 73 $color,.implode(',.',.array_keys
66b00 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 75 6e 64 43 6f 6c (static::$availableBackgroundCol
66b20 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 6f 75 6e 64 20 3d ors)).));.}..$this->background.=
66b40 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 75 6e 64 43 6f 6c .static::$availableBackgroundCol
66b60 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 75 62 6c 69 63 20 ors[$color];.}...........public.
66b80 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 29 0a 7b 0a 69 66 function.setOption($option).{.if
66ba0 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 65 4f 70 74 69 6f .(!isset(static::$availableOptio
66bc0 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 5c 49 6e 76 61 6c ns[$option])).{.throw.new.\Inval
66be0 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 0a 27 49 6e idArgumentException(sprintf(.'In
66c00 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 73 22 2e 20 45 78 valid.option.specified:."%s"..Ex
66c20 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 6f 6e 2c 0a 69 6d pected.one.of.(%s)',.$option,.im
66c40 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 3a 24 plode(',.',.array_keys(static::$
66c60 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 69 66 20 28 66 61 availableOptions)).));.}..if.(fa
66c80 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 63 3a 3a 24 61 76 lse.===.array_search(static::$av
66ca0 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 74 68 69 73 2d 3e ailableOptions[$option],.$this->
66cc0 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 5b 5d 20 3d 20 73 options)).{.$this->options[].=.s
66ce0 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 6f 70 74 69 6f 6e tatic::$availableOptions[$option
66d00 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 63 74 69 6f 6e 20 ];.}.}..........public.function.
66d20 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 28 21 69 73 73 65 unsetOption($option).{.if.(!isse
66d40 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 73 5b 24 6f 70 74 t(static::$availableOptions[$opt
66d60 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 64 41 72 67 75 6d ion])).{.throw.new.\InvalidArgum
66d80 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 6f entException(sprintf(.'Invalid.o
66da0 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 65 63 74 65 64 20 ption.specified:."%s"..Expected.
66dc0 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 6c 6f 64 65 28 27 one.of.(%s)',.$option,.implode('
66de0 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 76 61 69 6c 61 62 ,.',.array_keys(static::$availab
66e00 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 61 72 72 61 79 5f leOptions)).));.}..$pos.=.array_
66e20 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 70 74 69 6f 6e 73 search(static::$availableOptions
66e40 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 3b 0a 69 66 20 28 [$option],.$this->options);.if.(
66e60 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 68 69 73 2d 3e 6f false.!==.$pos).{.unset($this->o
66e80 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 75 62 6c 69 63 20 ptions[$pos]);.}.}.......public.
66ea0 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 6f 70 74 69 6f function.setOptions(array.$optio
66ec0 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 61 79 28 29 3b 0a ns).{.$this->options.=.array();.
66ee0 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 6f 6e 29 20 7b .foreach.($options.as.$option).{
66f00 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 3b 0a 7d 0a 7d 0a .$this->setOption($option);.}.}.
66f20 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 70 6c 79 28 24 74 ........public.function.apply($t
66f40 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 69 66 20 28 6e 75 ext).{.$codes.=.array();..if.(nu
66f60 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 7b 0a 24 63 6f 64 ll.!==.$this->foreground).{.$cod
66f80 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 7d 0a 69 66 20 28 es[].=.$this->foreground;.}.if.(
66fa0 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 29 20 7b 0a 24 63 null.!==.$this->background).{.$c
66fc0 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 3b 0a 7d 0a 69 66 odes[].=.$this->background;.}.if
66fe0 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 0a 24 63 6f 64 65 .(count($this->options)).{.$code
67000 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 68 69 73 2d 3e 6f s.=.array_merge($codes,.$this->o
67020 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5c 30 33 33 ptions);.}..return.sprintf("\033
67040 5b 25 73 6d 25 73 5c 30 33 33 5b 30 6d 22 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c 20 24 63 6f [%sm%s\033[0m",.implode(';',.$co
67060 64 65 73 29 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a des),.$text);.}.}.<?php.........
67080 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
670a0 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 69 6e 74 65 72 66 61 nsole\Formatter;.........interfa
670c0 63 65 20 4f 75 74 70 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 ce.OutputFormatterStyleInterface
670e0 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 .{........function.setForeground
67100 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f ($color.=.null);.........functio
67120 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);.
67140 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 ........function.setOption($opti
67160 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 on);.......function.unsetOption(
67180 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 $option);.......function.setOpti
671a0 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e ons(array.$options);.........fun
671c0 63 74 69 6f 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 ction.apply($text);.}.<?php.....
671e0 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
67200 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 0a 0a 0a 0a 63 6c 61 t\Console\Formatter;.........cla
67220 73 73 20 4f 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 ss.OutputFormatter.implements.Ou
67240 74 70 75 74 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 tputFormatterInterface.{....cons
67260 74 20 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 20 3d 20 27 23 3c 28 2f 3f 29 28 5b 61 2d 7a 5d t.FORMAT_PATTERN.=.'#<(/?)([a-z]
67280 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2b 29 3f 3e 28 5b 5e 3c 5d 2a 29 23 69 73 27 3b 0a 0a 70 72 [a-z0-9_=;-]+)?>([^<]*)#is';..pr
672a0 69 76 61 74 65 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 ivate.$decorated;.private.$style
672c0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 53 74 61 63 6b s.=.array();.private.$styleStack
672e0 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
67300 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 struct($decorated.=.null,.array.
67320 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f $styles.=.array()).{.$this->deco
67340 72 61 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 0a 24 rated.=.(Boolean).$decorated;..$
67360 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 65 72 72 6f 72 27 2c 20 6e 65 77 20 4f 75 74 70 this->setStyle('error',.new.Outp
67380 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 77 68 69 74 65 27 2c 20 27 72 65 64 27 29 utFormatterStyle('white',.'red')
673a0 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 69 6e 66 6f 27 2c 20 6e 65 77 20 4f );.$this->setStyle('info',.new.O
673c0 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 67 72 65 65 6e 27 29 29 3b 0a 24 utputFormatterStyle('green'));.$
673e0 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 63 6f 6d 6d 65 6e 74 27 2c 20 6e 65 77 20 4f 75 this->setStyle('comment',.new.Ou
67400 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 tputFormatterStyle('yellow'));.$
67420 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 71 75 65 73 74 69 6f 6e 27 2c 20 6e 65 77 20 4f this->setStyle('question',.new.O
67440 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 2c 20 27 63 79 utputFormatterStyle('black',.'cy
67460 61 6e 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 74 79 6c 65 73 20 61 73 20 24 6e 61 6d an'));..foreach.($styles.as.$nam
67480 65 20 3d 3e 20 24 73 74 79 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 24 e.=>.$style).{.$this->setStyle($
674a0 6e 61 6d 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 name,.$style);.}..$this->styleSt
674c0 61 63 6b 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 6c 65 53 74 ack.=.new.OutputFormatterStyleSt
674e0 61 63 6b 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 69 6f 6e ack();.}.........public.function
67500 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 .setDecorated($decorated).{.$thi
67520 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 s->decorated.=.(Boolean).$decora
67540 74 65 64 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 69 ted;.}.........public.function.i
67560 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 64 65 63 sDecorated().{.return.$this->dec
67580 6f 72 61 74 65 64 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 orated;.}..........public.functi
675a0 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 on.setStyle($name,.OutputFormatt
675c0 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 73 erStyleInterface.$style).{.$this
675e0 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 20 3d 20 24 73 ->styles[strtolower($name)].=.$s
67600 74 79 6c 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 74 69 6f tyle;.}...........public.functio
67620 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 n.hasStyle($name).{.return.isset
67640 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 ($this->styles[strtolower($name)
67660 5d 29 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 6e 63 74 69 6f ]);.}.............public.functio
67680 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e n.getStyle($name).{.if.(!$this->
676a0 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e hasStyle($name)).{.throw.new.\In
676c0 76 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 64 65 66 69 6e 65 validArgumentException('Undefine
676e0 64 20 73 74 79 6c 65 3a 20 27 2e 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 d.style:.'.$name);.}..return.$th
67700 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 3b 0a 7d is->styles[strtolower($name)];.}
67720 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 6f 72 6d 61 ...........public.function.forma
67740 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 t($message).{.return.preg_replac
67760 65 5f 63 61 6c 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 e_callback(self::FORMAT_PATTERN,
67780 20 61 72 72 61 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 .array($this,.'replaceStyle'),.$
677a0 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 63 74 69 6f 6e 20 message);.}.....public.function.
677c0 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 74 68 69 73 2d 3e getStyleStack().{.return.$this->
677e0 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 61 74 65 20 66 75 styleStack;.}.........private.fu
67800 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 29 0a 7b 0a 69 66 nction.replaceStyle($match).{.if
67820 20 28 27 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 32 5d 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d .(''.===.$match[2]).{.if.('/'.==
67840 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 =.$match[1]).{...$this->styleSta
67860 63 6b 2d 3e 70 6f 70 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 53 ck->pop();..return.$this->applyS
67880 74 79 6c 65 28 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 tyle($this->styleStack->getCurre
678a0 6e 74 28 29 2c 20 24 6d 61 74 63 68 5b 33 5d 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 27 3c nt(),.$match[3]);.}....return.'<
678c0 3e 27 2e 24 6d 61 74 63 68 5b 33 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 >'.$match[3];.}..if.(isset($this
678e0 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 32 5d 29 5d 29 ->styles[strtolower($match[2])])
67900 29 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f ).{.$style.=.$this->styles[strto
67920 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 32 5d 29 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 lower($match[2])];.}.else.{.$sty
67940 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e le.=.$this->createStyleFromStrin
67960 67 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 g($match[2]);..if.(false.===.$st
67980 79 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 7d 0a 7d 0a 0a 69 66 yle).{.return.$match[0];.}.}..if
679a0 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 .('/'.===.$match[1]).{.$this->st
679c0 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 24 73 74 79 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a yleStack->pop($style);.}.else.{.
679e0 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 75 73 68 28 24 73 74 79 6c 65 29 3b $this->styleStack->push($style);
67a00 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 53 74 79 6c 65 28 24 74 68 .}..return.$this->applyStyle($th
67a20 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 29 2c 20 24 6d is->styleStack->getCurrent(),.$m
67a40 61 74 63 68 5b 33 5d 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 atch[3]);.}.........private.func
67a60 74 69 6f 6e 20 63 72 65 61 74 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 73 74 72 69 tion.createStyleFromString($stri
67a80 6e 67 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d ng).{.if.(!preg_match_all('/([^=
67aa0 5d 2b 29 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c 24 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 ]+)=([^;]+)(;|$)/',.strtolower($
67ac0 73 74 72 69 6e 67 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 string),.$matches,.PREG_SET_ORDE
67ae0 52 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 R)).{.return.false;.}..$style.=.
67b00 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 29 3b 0a 66 6f 72 65 new.OutputFormatterStyle();.fore
67b20 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 ach.($matches.as.$match).{.array
67b40 5f 73 68 69 66 74 28 24 6d 61 74 63 68 29 3b 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 _shift($match);..if.('fg'.==.$ma
67b60 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 tch[0]).{.$style->setForeground(
67b80 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d $match[1]);.}.elseif.('bg'.==.$m
67ba0 61 74 63 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 atch[0]).{.$style->setBackground
67bc0 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 ($match[1]);.}.else.{.$style->se
67be0 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 tOption($match[1]);.}.}..return.
67c00 24 73 74 79 6c 65 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 $style;.}..........private.funct
67c20 69 6f 6e 20 61 70 70 6c 79 53 74 79 6c 65 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 ion.applyStyle(OutputFormatterSt
67c40 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 2c 20 24 74 65 78 74 29 0a 7b 0a 72 65 yleInterface.$style,.$text).{.re
67c60 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 turn.$this->isDecorated().&&.str
67c80 6c 65 6e 28 24 74 65 78 74 29 20 3e 20 30 20 3f 20 24 73 74 79 6c 65 2d 3e 61 70 70 6c 79 28 24 len($text).>.0.?.$style->apply($
67ca0 74 65 78 74 29 20 3a 20 24 74 65 78 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a text).:.$text;.}.}.<?php........
67cc0 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
67ce0 6f 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 69 6e 74 65 72 66 onsole\Formatter;.........interf
67d00 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a ace.OutputFormatterInterface.{..
67d20 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 ......function.setDecorated($dec
67d40 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f orated);.........function.isDeco
67d60 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 rated();..........function.setSt
67d80 79 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 yle($name,.OutputFormatterStyleI
67da0 6e 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 66 75 6e 63 nterface.$style);...........func
67dc0 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 0a 0a 0a 0a 0a 0a tion.hasStyle($name);...........
67de0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a function.getStyle($name);.......
67e00 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d ....function.format($message);.}
67e20 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
67e40 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f ny\Component\Console;..use.Symfo
67e60 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
67e80 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
67ea0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 67 76 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 \Console\Input\ArgvInput;.use.Sy
67ec0 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 41 72 mfony\Component\Console\Input\Ar
67ee0 72 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 rayInput;.use.Symfony\Component\
67f00 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 0a 75 Console\Input\InputDefinition;.u
67f20 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
67f40 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
67f60 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 6e onent\Console\Input\InputArgumen
67f80 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
67fa0 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 53 79 6d \Output\OutputInterface;.use.Sym
67fc0 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
67fe0 74 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 6f 6e 73 tput;.use.Symfony\Component\Cons
68000 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 0a 75 73 65 20 53 79 ole\Output\ConsoleOutput;.use.Sy
68020 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 43 mfony\Component\Console\Output\C
68040 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 65 20 53 79 6d 66 6f onsoleOutputInterface;.use.Symfo
68060 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
68080 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
680a0 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 75 73 65 20 53 79 6d ole\Command\HelpCommand;.use.Sym
680c0 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 4c fony\Component\Console\Command\L
680e0 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 6f 6d 70 6f 6e 65 6e istCommand;.use.Symfony\Componen
68100 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 75 73 65 20 t\Console\Helper\HelperSet;.use.
68120 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 72 Symfony\Component\Console\Helper
68140 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 66 6f 6e 79 5c 43 6f \FormatterHelper;.use.Symfony\Co
68160 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 61 6c 6f 67 48 65 6c mponent\Console\Helper\DialogHel
68180 70 65 72 3b 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 per;...................class.App
681a0 6c 69 63 61 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 lication.{.private.$commands;.pr
681c0 69 76 61 74 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 ivate.$wantHelps.=.false;.privat
681e0 65 20 24 72 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 e.$runningCommand;.private.$name
68200 3b 0a 70 72 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 ;.private.$version;.private.$cat
68220 63 68 45 78 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 chExceptions;.private.$autoExit;
68240 0a 70 72 69 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 .private.$definition;.private.$h
68260 65 6c 70 65 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 elperSet;..........public.functi
68280 6f 6e 20 5f 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 on.__construct($name.=.'UNKNOWN'
682a0 2c 20 24 76 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 ,.$version.=.'UNKNOWN').{.$this-
682c0 3e 6e 61 6d 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 >name.=.$name;.$this->version.=.
682e0 24 76 65 72 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 $version;.$this->catchExceptions
68300 20 3d 20 74 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 .=.true;.$this->autoExit.=.true;
68320 0a 24 74 68 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 .$this->commands.=.array();.$thi
68340 73 2d 3e 68 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 s->helperSet.=.$this->getDefault
68360 48 65 6c 70 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 HelperSet();.$this->definition.=
68380 20 24 74 68 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 .$this->getDefaultInputDefinitio
683a0 6e 28 29 3b 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 n();..foreach.($this->getDefault
683c0 43 6f 6d 6d 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 Commands().as.$command).{.$this-
683e0 3e 61 64 64 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 >add($command);.}.}.............
68400 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 49 6e 74 65 72 66 .public.function.run(InputInterf
68420 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 6e 74 65 72 66 61 ace.$input.=.null,.OutputInterfa
68440 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 75 6c 6c 20 3d 3d ce.$output.=.null).{.if.(null.==
68460 3d 20 24 69 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 =.$input).{.$input.=.new.ArgvInp
68480 75 74 28 29 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 ut();.}..if.(null.===.$output).{
684a0 0a 24 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 28 29 3b 0a .$output.=.new.ConsoleOutput();.
684c0 7d 0a 0a 74 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 }..try.{.$statusCode.=.$this->do
684e0 52 75 6e 28 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 Run($input,.$output);.}.catch.(\
68500 45 78 63 65 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 Exception.$e).{.if.(!$this->catc
68520 68 45 78 63 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 hExceptions).{.throw.$e;.}..if.(
68540 24 6f 75 74 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 $output.instanceof.ConsoleOutput
68560 49 6e 74 65 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 Interface).{.$this->renderExcept
68580 69 6f 6e 28 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 ion($e,.$output->getErrorOutput(
685a0 29 29 3b 0a 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 ));.}.else.{.$this->renderExcept
685c0 69 6f 6e 28 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 ion($e,.$output);.}.$statusCode.
685e0 3d 20 24 65 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 =.$e->getCode();..$statusCode.=.
68600 69 73 5f 6e 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 is_numeric($statusCode).&&.$stat
68620 75 73 43 6f 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 usCode.?.$statusCode.:.1;.}..if.
68640 28 24 74 68 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 ($this->autoExit).{.if.($statusC
68660 6f 64 65 20 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 ode.>.255).{.$statusCode.=.255;.
68680 7d 0a 0a 20 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 }...exit($statusCode);...}..retu
686a0 72 6e 20 24 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 rn.$statusCode;.}..........publi
686c0 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 20 c.function.doRun(InputInterface.
686e0 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)
68700 0a 7b 0a 24 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 .{.$name.=.$this->getCommandName
68720 28 24 69 6e 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 ($input);..if.(true.===.$input->
68740 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 61 6e 73 69 hasParameterOption(array('--ansi
68760 27 29 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 74 72 75 '))).{.$output->setDecorated(tru
68780 65 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 75 74 2d 3e 68 e);.}.elseif.(true.===.$input->h
687a0 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 6e 6f 2d 61 6e asParameterOption(array('--no-an
687c0 73 69 27 29 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 si'))).{.$output->setDecorated(f
687e0 61 6c 73 65 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 alse);.}..if.(true.===.$input->h
68800 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 68 65 6c 70 27 asParameterOption(array('--help'
68820 2c 20 27 2d 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 ,.'-h'))).{.if.(!$name).{.$name.
68840 3d 20 27 68 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 =.'help';.$input.=.new.ArrayInpu
68860 74 28 61 72 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 t(array('command'.=>.'help'));.}
68880 20 65 6c 73 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 .else.{.$this->wantHelps.=.true;
688a0 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 2d 3e 68 61 73 50 61 .}.}..if.(true.===.$input->hasPa
688c0 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 69 6e 74 65 72 61 rameterOption(array('--no-intera
688e0 63 74 69 6f 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 ction',.'-n'))).{.$input->setInt
68900 65 72 61 63 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 eractive(false);.}..if.(function
68920 5f 65 78 69 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 _exists('posix_isatty').&&.$this
68940 2d 3e 67 65 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 ->getHelperSet()->has('dialog'))
68960 20 7b 0a 24 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 .{.$inputStream.=.$this->getHelp
68980 65 72 53 65 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 erSet()->get('dialog')->getInput
689a0 53 74 72 65 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 Stream();.if.(!posix_isatty($inp
689c0 75 74 53 74 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 utStream)).{.$input->setInteract
689e0 69 76 65 28 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 ive(false);.}.}..if.(true.===.$i
68a00 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 27 nput->hasParameterOption(array('
68a20 2d 2d 71 75 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 --quiet',.'-q'))).{.$output->set
68a40 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
68a60 53 49 54 59 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 SITY_QUIET);.}.elseif.(true.===.
68a80 24 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 $input->hasParameterOption(array
68aa0 28 27 2d 2d 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 ('--verbose',.'-v'))).{.$output-
68ac0 3e 73 65 74 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 >setVerbosity(OutputInterface::V
68ae0 45 52 42 4f 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 ERBOSITY_VERBOSE);.}..if.(true.=
68b00 3d 3d 20 24 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 ==.$input->hasParameterOption(ar
68b20 72 61 79 28 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 ray('--version',.'-V'))).{.$outp
68b40 75 74 2d 3e 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 ut->writeln($this->getLongVersio
68b60 6e 28 29 29 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 n());..return.0;.}..if.(!$name).
68b80 7b 0a 24 6e 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 {.$name.=.'list';.$input.=.new.A
68ba0 72 72 61 79 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 rrayInput(array('command'.=>.'li
68bc0 73 74 27 29 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 st'));.}....$command.=.$this->fi
68be0 6e 64 28 24 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 nd($name);..$this->runningComman
68c00 64 20 3d 20 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 d.=.$command;.$statusCode.=.$com
68c20 6d 61 6e 64 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 mand->run($input,.$output);.$thi
68c40 73 2d 3e 72 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 s->runningCommand.=.null;..retur
68c60 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 20 3f 20 24 73 74 61 n.is_numeric($statusCode).?.$sta
68c80 74 75 73 43 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 tusCode.:.0;.}.........public.fu
68ca0 6e 63 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 nction.setHelperSet(HelperSet.$h
68cc0 65 6c 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 elperSet).{.$this->helperSet.=.$
68ce0 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
68d00 74 69 6f 6e 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 tion.getHelperSet().{.return.$th
68d20 69 73 2d 3e 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 is->helperSet;.}.......public.fu
68d40 6e 63 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 nction.getDefinition().{.return.
68d60 24 74 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 70 75 62 6c 69 $this->definition;.}.......publi
68d80 63 20 66 75 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 c.function.getHelp().{.$messages
68da0 20 3d 20 61 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 .=.array(.$this->getLongVersion(
68dc0 29 2c 0a 27 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 ),.'',.'<comment>Usage:</comment
68de0 3e 27 2c 0a 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 >',.sprintf("..[options].command
68e00 20 5b 61 72 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 .[arguments]\n"),.'<comment>Opti
68e20 6f 6e 73 3a 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 ons:</comment>',.);..foreach.($t
68e40 68 69 73 2d 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 his->getDefinition()->getOptions
68e60 28 29 20 61 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 ().as.$option).{.$messages[].=.s
68e80 70 72 69 6e 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 printf('..%-29s.%s.%s',.'<info>-
68ea0 2d 27 2e 24 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 -'.$option->getName().'</info>',
68ec0 0a 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 27 3c 69 6e 66 6f .$option->getShortcut().?.'<info
68ee0 3e 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 2e 27 3c 2f 69 6e >-'.$option->getShortcut().'</in
68f00 66 6f 3e 27 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 fo>'.:.'..',.$option->getDescrip
68f20 74 69 6f 6e 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 tion().);.}..return.implode(PHP_
68f40 45 4f 4c 2c 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 EOL,.$messages);.}.........publi
68f60 63 20 66 75 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 c.function.setCatchExceptions($b
68f80 6f 6f 6c 65 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 oolean).{.$this->catchExceptions
68fa0 20 3d 20 28 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 .=.(Boolean).$boolean;.}........
68fc0 0a 70 75 62 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 .public.function.setAutoExit($bo
68fe0 6f 6c 65 61 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 olean).{.$this->autoExit.=.(Bool
69000 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 6c 69 63 20 ean).$boolean;.}.........public.
69020 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
69040 73 2d 3e 6e 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 s->name;.}.........public.functi
69060 6f 6e 20 73 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 on.setName($name).{.$this->name.
69080 3d 20 24 6e 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 =.$name;.}.........public.functi
690a0 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 73 2d 3e on.getVersion().{.return.$this->
690c0 76 65 72 73 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 version;.}.........public.functi
690e0 6f 6e 20 73 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 on.setVersion($version).{.$this-
69100 3e 76 65 72 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 >version.=.$version;.}.........p
69120 75 62 6c 69 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 ublic.function.getLongVersion().
69140 7b 0a 69 66 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 {.if.('UNKNOWN'.!==.$this->getNa
69160 6d 65 28 29 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 me().&&.'UNKNOWN'.!==.$this->get
69180 56 65 72 73 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 Version()).{.return.sprintf('<in
691a0 66 6f 3e 25 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 fo>%s</info>.version.<comment>%s
691c0 3c 2f 63 6f 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 </comment>',.$this->getName(),.$
691e0 74 68 69 73 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 this->getVersion());.}..return.'
69200 3c 69 6e 66 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 <info>Console.Tool</info>';.}...
69220 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 67 69 73 74 65 72 ........public.function.register
69240 28 24 6e 61 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 ($name).{.return.$this->add(new.
69260 43 6f 6d 6d 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 Command($name));.}.........publi
69280 63 20 66 75 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 c.function.addCommands(array.$co
692a0 6d 6d 61 6e 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 mmands).{.foreach.($commands.as.
692c0 24 63 6f 6d 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 $command).{.$this->add($command)
692e0 3b 0a 7d 0a 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 ;.}.}.............public.functio
69300 6e 20 61 64 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 n.add(Command.$command).{.$comma
69320 6e 64 2d 3e 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 nd->setApplication($this);..if.(
69340 21 24 63 6f 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 !$command->isEnabled()).{.$comma
69360 6e 64 2d 3e 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 nd->setApplication(null);..retur
69380 6e 3b 0a 7d 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 n;.}..$this->commands[$command->
693a0 67 65 74 4e 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 getName()].=.$command;..foreach.
693c0 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 73 20 24 61 6c 69 61 ($command->getAliases().as.$alia
693e0 73 29 20 7b 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 s).{.$this->commands[$alias].=.$
69400 63 6f 6d 6d 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 command;.}..return.$command;.}..
69420 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 28 24 ...........public.function.get($
69440 6e 61 6d 65 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 name).{.if.(!isset($this->comman
69460 64 73 5b 24 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 ds[$name])).{.throw.new.\Invalid
69480 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 63 ArgumentException(sprintf('The.c
694a0 6f 6d 6d 61 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 ommand."%s".does.not.exist.',.$n
694c0 61 6d 65 29 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 ame));.}..$command.=.$this->comm
694e0 61 6e 64 73 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 ands[$name];..if.($this->wantHel
69500 70 73 29 20 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 ps).{.$this->wantHelps.=.false;.
69520 0a 24 68 65 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 .$helpCommand.=.$this->get('help
69540 27 29 3b 0a 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 ');.$helpCommand->setCommand($co
69560 6d 6d 61 6e 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 mmand);..return.$helpCommand;.}.
69580 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 0a 0a 0a 0a 0a 70 75 .return.$command;.}...........pu
695a0 62 6c 69 63 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 blic.function.has($name).{.retur
695c0 6e 20 69 73 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 n.isset($this->commands[$name]);
695e0 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 65 74 4e 61 .}.........public.function.getNa
69600 6d 65 73 70 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 mespaces().{.$namespaces.=.array
69620 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 73 20 61 73 20 ();.foreach.($this->commands.as.
69640 24 63 6f 6d 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 $command).{.$namespaces[].=.$thi
69660 73 2d 3e 65 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 s->extractNamespace($command->ge
69680 74 4e 61 6d 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 tName());..foreach.($command->ge
696a0 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 6e 61 6d 65 73 70 61 tAliases().as.$alias).{.$namespa
696c0 63 65 73 5b 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 ces[].=.$this->extractNamespace(
696e0 24 61 6c 69 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 $alias);.}.}..return.array_value
69700 73 28 61 72 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 s(array_unique(array_filter($nam
69720 65 73 70 61 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 espaces)));.}...........public.f
69740 75 6e 63 74 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 unction.findNamespace($namespace
69760 29 0a 7b 0a 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 ).{.$allNamespaces.=.array();.fo
69780 72 65 61 63 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 reach.($this->getNamespaces().as
697a0 20 24 6e 29 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 .$n).{.$allNamespaces[$n].=.expl
697c0 6f 64 65 28 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 ode(':',.$n);.}..$found.=.array(
697e0 29 3b 0a 66 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 );.foreach.(explode(':',.$namesp
69800 61 63 65 29 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 ace).as.$i.=>.$part).{.$abbrevs.
69820 3d 20 73 74 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 =.static::getAbbreviations(array
69840 5f 75 6e 69 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 _unique(array_values(array_filte
69860 72 28 61 72 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 r(array_map(function.($p).use.($
69880 69 29 20 7b 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 i).{.return.isset($p[$i]).?.$p[$
698a0 69 5d 20 3a 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 i].:.'';.},.$allNamespaces)))));
698c0 0a 0a 69 66 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 ..if.(!isset($abbrevs[$part])).{
698e0 0a 24 6d 65 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 .$message.=.sprintf('There.are.n
69900 6f 20 63 6f 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 o.commands.defined.in.the."%s".n
69920 61 6d 65 73 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 amespace.',.$namespace);..if.(1.
69940 3c 3d 20 24 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 <=.$i).{.$part.=.implode(':',.$f
69960 6f 75 6e 64 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 ound).':'.$part;.}..if.($alterna
69980 74 69 76 65 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 tives.=.$this->findAlternativeNa
699a0 6d 65 73 70 61 63 65 28 24 70 61 72 74 2c 20 24 61 62 62 72 65 76 73 29 29 20 7b 0a 24 6d 65 73 mespace($part,.$abbrevs)).{.$mes
699c0 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 6f 6e 65 20 6f 66 sage..=."\n\nDid.you.mean.one.of
699e0 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c .these?\n....";.$message..=.impl
69a00 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a ode("\n....",.$alternatives);.}.
69a20 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
69a40 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 62 tion($message);.}..if.(count($ab
69a60 62 72 65 76 73 5b 24 70 61 72 74 5d 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c brevs[$part]).>.1).{.throw.new.\
69a80 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 66 InvalidArgumentException(sprintf
69aa0 28 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 ('The.namespace."%s".is.ambiguou
69ac0 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 s.(%s).',.$namespace,.$this->get
69ae0 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
69b00 5b 24 70 61 72 74 5d 29 29 29 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 5b 5d 20 3d 20 24 61 62 62 72 65 [$part])));.}..$found[].=.$abbre
69b20 76 73 5b 24 70 61 72 74 5d 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 vs[$part][0];.}..return.implode(
69b40 27 3a 27 2c 20 24 66 6f 75 6e 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ':',.$found);.}................p
69b60 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 29 0a 7b 0a 0a 20 24 ublic.function.find($name).{...$
69b80 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e namespace.=.'';.$searchName.=.$n
69ba0 61 6d 65 3b 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 72 70 6f ame;.if.(false.!==.$pos.=.strrpo
69bc0 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 74 s($name,.':')).{.$namespace.=.$t
69be0 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c his->findNamespace(substr($name,
69c00 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 73 65 61 72 63 68 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 73 .0,.$pos));.$searchName.=.$names
69c20 70 61 63 65 2e 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 0a 20 24 pace.substr($name,.$pos);.}....$
69c40 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 24 74 68 commands.=.array();.foreach.($th
69c60 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 69 66 20 28 is->commands.as.$command).{.if.(
69c80 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 63 6f 6d 6d 61 6e 64 $this->extractNamespace($command
69ca0 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 63 ->getName()).==.$namespace).{.$c
69cc0 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 3b ommands[].=.$command->getName();
69ce0 0a 7d 0a 7d 0a 0a 24 61 62 62 72 65 76 73 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 41 62 62 72 .}.}..$abbrevs.=.static::getAbbr
69d00 65 76 69 61 74 69 6f 6e 73 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 63 6f 6d 6d 61 6e 64 73 eviations(array_unique($commands
69d20 29 29 3b 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 4e 61 ));.if.(isset($abbrevs[$searchNa
69d40 6d 65 5d 29 20 26 26 20 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 me]).&&.1.==.count($abbrevs[$sea
69d60 72 63 68 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 rchName])).{.return.$this->get($
69d80 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 abbrevs[$searchName][0]);.}..if.
69da0 28 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 26 26 (isset($abbrevs[$searchName]).&&
69dc0 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 3e 20 .count($abbrevs[$searchName]).>.
69de0 31 29 20 7b 0a 24 73 75 67 67 65 73 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 62 1).{.$suggestions.=.$this->getAb
69e00 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 5b 24 breviationSuggestions($abbrevs[$
69e20 73 65 61 72 63 68 4e 61 6d 65 5d 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 searchName]);..throw.new.\Invali
69e40 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
69e60 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 2c 20 24 6e and."%s".is.ambiguous.(%s).',.$n
69e80 61 6d 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 0a 20 24 61 6c 69 61 73 ame,.$suggestions));.}....$alias
69ea0 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 2d 3e 63 6f es.=.array();.foreach.($this->co
69ec0 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 mmands.as.$command).{.foreach.($
69ee0 63 6f 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 command->getAliases().as.$alias)
69f00 20 7b 0a 69 66 20 28 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 .{.if.($this->extractNamespace($
69f20 61 6c 69 61 73 29 20 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 61 6c 69 61 73 65 73 alias).==.$namespace).{.$aliases
69f40 5b 5d 20 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 [].=.$alias;.}.}.}..$aliases.=.s
69f60 74 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 tatic::getAbbreviations(array_un
69f80 69 71 75 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 ique($aliases));.if.(!isset($ali
69fa0 61 73 65 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 ases[$searchName])).{.$message.=
69fc0 20 73 70 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 .sprintf('Command."%s".is.not.de
69fe0 66 69 6e 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 fined.',.$name);..if.($alternati
6a000 76 65 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 43 6f 6d 6d ves.=.$this->findAlternativeComm
6a020 61 6e 64 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 24 ands($searchName,.$abbrevs)).{.$
6a040 6d 65 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 6f 6e 65 message..=."\n\nDid.you.mean.one
6a060 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 .of.these?\n....";.$message..=.i
6a080 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b mplode("\n....",.$alternatives);
6a0a0 0a 7d 0a 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
6a0c0 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 ception($message);.}..if.(count(
6a0e0 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 29 20 3e 20 31 29 20 7b 0a 74 68 $aliases[$searchName]).>.1).{.th
6a100 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
6a120 6e 28 73 70 72 69 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 n(sprintf('Command."%s".is.ambig
6a140 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 62 uous.(%s).',.$name,.$this->getAb
6a160 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 6c 69 61 73 65 73 5b 24 breviationSuggestions($aliases[$
6a180 73 65 61 72 63 68 4e 61 6d 65 5d 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d searchName])));.}..return.$this-
6a1a0 3e 67 65 74 28 24 61 6c 69 61 73 65 73 5b 24 73 65 61 72 63 68 4e 61 6d 65 5d 5b 30 5d 29 3b 0a >get($aliases[$searchName][0]);.
6a1c0 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 6c }.............public.function.al
6a1e0 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 l($namespace.=.null).{.if.(null.
6a200 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ===.$namespace).{.return.$this->
6a220 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 commands;.}..$commands.=.array()
6a240 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 73 20 61 73 20 24 6e ;.foreach.($this->commands.as.$n
6a260 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 ame.=>.$command).{.if.($namespac
6a280 65 20 3d 3d 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 6e e.===.$this->extractNamespace($n
6a2a0 61 6d 65 2c 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 3a ame,.substr_count($namespace,.':
6a2c0 27 29 20 2b 20 31 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 ').+.1)).{.$commands[$name].=.$c
6a2e0 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d ommand;.}.}..return.$commands;.}
6a300 0a 0a 0a 0a 0a 0a 0a 0a 0a 73 74 61 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .........static.public.function.
6a320 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 24 6e 61 6d 65 73 29 0a 7b 0a 24 61 62 62 72 getAbbreviations($names).{.$abbr
6a340 65 76 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 evs.=.array();.foreach.($names.a
6a360 73 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 20 28 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e s.$name).{.for.($len.=.strlen($n
6a380 61 6d 65 29 20 2d 20 31 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 6c 65 6e 29 20 7b 0a 24 61 ame).-.1;.$len.>.0;.--$len).{.$a
6a3a0 62 62 72 65 76 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 6c 65 6e 29 3b 0a bbrev.=.substr($name,.0,.$len);.
6a3c0 69 66 20 28 21 69 73 73 65 74 28 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 29 29 20 7b if.(!isset($abbrevs[$abbrev])).{
6a3e0 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 20 3d 20 61 72 72 61 79 28 24 6e 61 6d 65 .$abbrevs[$abbrev].=.array($name
6a400 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b 5d 20 );.}.else.{.$abbrevs[$abbrev][].
6a420 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 =.$name;.}.}.}....foreach.($name
6a440 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 61 62 62 72 65 76 73 5b 24 6e 61 6d 65 5d 20 3d 20 s.as.$name).{.$abbrevs[$name].=.
6a460 61 72 72 61 79 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 array($name);.}..return.$abbrevs
6a480 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 61 73 54 ;.}..........public.function.asT
6a4a0 65 78 74 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 ext($namespace.=.null,.$raw.=.fa
6a4c0 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 65 20 3f 20 lse).{.$commands.=.$namespace.?.
6a4e0 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 61 63 65 28 $this->all($this->findNamespace(
6a500 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 64 73 3b 0a $namespace)).:.$this->commands;.
6a520 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 .$width.=.0;.foreach.($commands.
6a540 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 as.$command).{.$width.=.strlen($
6a560 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 20 3f 20 73 command->getName()).>.$width.?.s
6a580 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3a 20 24 77 69 trlen($command->getName()).:.$wi
6a5a0 64 74 68 3b 0a 7d 0a 24 77 69 64 74 68 20 2b 3d 20 32 3b 0a 0a 69 66 20 28 24 72 61 77 29 20 7b dth;.}.$width.+=.2;..if.($raw).{
6a5c0 0a 24 6d 65 73 73 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 .$messages.=.array();.foreach.($
6a5e0 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 73 this->sortCommands($commands).as
6a600 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 .$space.=>.$commands).{.foreach.
6a620 28 24 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 ($commands.as.$name.=>.$command)
6a640 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 25 2d 24 7b 77 69 .{.$messages[].=.sprintf("%-${wi
6a660 64 74 68 7d 73 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 dth}s.%s",.$name,.$command->getD
6a680 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f escription());.}.}..return.implo
6a6a0 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 24 6d 65 73 73 de(PHP_EOL,.$messages);.}..$mess
6a6c0 61 67 65 73 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 2c 20 27 ages.=.array($this->getHelp(),.'
6a6e0 27 29 3b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b ');.if.($namespace).{.$messages[
6a700 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 ].=.sprintf("<comment>Available.
6a720 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 commands.for.the.\"%s\".namespac
6a740 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 65 6c e:</comment>",.$namespace);.}.el
6a760 73 65 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 41 76 61 se.{.$messages[].=.'<comment>Ava
6a780 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a ilable.commands:</comment>';.}..
6a7a0 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 ..foreach.($this->sortCommands($
6a7c0 63 6f 6d 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 commands).as.$space.=>.$commands
6a7e0 29 20 7b 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 20 26 26 20 27 5f 67 6c 6f 62 61 6c 27 ).{.if.(!$namespace.&&.'_global'
6a800 20 21 3d 3d 20 24 73 70 61 63 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 63 .!==.$space).{.$messages[].=.'<c
6a820 6f 6d 6d 65 6e 74 3e 27 2e 24 73 70 61 63 65 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a omment>'.$space.'</comment>';.}.
6a840 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 3d 3e 20 .foreach.($commands.as.$name.=>.
6a860 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 $command).{.$messages[].=.sprint
6a880 66 28 22 20 20 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 f("..<info>%-${width}s</info>.%s
6a8a0 22 2c 20 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 ",.$name,.$command->getDescripti
6a8c0 6f 6e 28 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 on());.}.}..return.implode(PHP_E
6a8e0 4f 4c 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 OL,.$messages);.}..........publi
6a900 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 c.function.asXml($namespace.=.nu
6a920 6c 6c 2c 20 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 ll,.$asDom.=.false).{.$commands.
6a940 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 24 74 68 69 73 2d =.$namespace.?.$this->all($this-
6a960 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 29 20 3a 20 24 74 >findNamespace($namespace)).:.$t
6a980 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 his->commands;..$dom.=.new.\DOMD
6a9a0 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 64 6f 6d 2d 3e 66 ocument('1.0',.'UTF-8');.$dom->f
6a9c0 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 61 70 70 65 6e 64 ormatOutput.=.true;.$dom->append
6a9e0 43 68 69 6c 64 28 24 78 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 Child($xml.=.$dom->createElement
6aa00 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 0a 24 78 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 ('symfony'));..$xml->appendChild
6aa20 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d ($commandsXML.=.$dom->createElem
6aa40 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 ent('commands'));..if.($namespac
6aa60 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 e).{.$commandsXML->setAttribute(
6aa80 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d 20 65 6c 73 65 'namespace',.$namespace);.}.else
6aaa0 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 .{.$namespacesXML.=.$dom->create
6aac0 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 73 27 29 3b 0a 24 78 6d 6c 2d 3e 61 70 70 Element('namespaces');.$xml->app
6aae0 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 29 3b 0a 7d 0a 0a 0a 20 66 endChild($namespacesXML);.}....f
6ab00 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 63 6f 6d oreach.($this->sortCommands($com
6ab20 6d 61 6e 64 73 29 20 61 73 20 24 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b mands).as.$space.=>.$commands).{
6ab40 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 .if.(!$namespace).{.$namespaceAr
6ab60 72 61 79 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 rayXML.=.$dom->createElement('na
6ab80 6d 65 73 70 61 63 65 27 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 70 70 65 6e mespace');.$namespacesXML->appen
6aba0 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 29 3b 0a 24 6e 61 6d dChild($namespaceArrayXML);.$nam
6abc0 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 espaceArrayXML->setAttribute('id
6abe0 27 2c 20 24 73 70 61 63 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 ',.$space);.}..foreach.($command
6ac00 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 0a 69 66 20 28 24 6e s.as.$name.=>.$command).{.if.($n
6ac20 61 6d 65 20 21 3d 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 63 ame.!==.$command->getName()).{.c
6ac40 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 ontinue;.}..if.(!$namespace).{.$
6ac60 63 6f 6d 6d 61 6e 64 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 commandXML.=.$dom->createElement
6ac80 28 27 63 6f 6d 6d 61 6e 64 27 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d ('command');.$namespaceArrayXML-
6aca0 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 29 3b 0a 24 63 6f 6d 6d >appendChild($commandXML);.$comm
6acc0 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 63 72 65 61 74 65 andXML->appendChild($dom->create
6ace0 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6e 6f 64 65 20 3d 20 24 63 6f TextNode($name));.}..$node.=.$co
6ad00 6d 6d 61 6e 64 2d 3e 61 73 58 6d 6c 28 74 72 75 65 29 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 mmand->asXml(true)->getElementsB
6ad20 79 54 61 67 4e 61 6d 65 28 27 63 6f 6d 6d 61 6e 64 27 29 2d 3e 69 74 65 6d 28 30 29 3b 0a 24 6e yTagName('command')->item(0);.$n
6ad40 6f 64 65 20 3d 20 24 64 6f 6d 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 6e 6f 64 65 2c 20 74 72 ode.=.$dom->importNode($node,.tr
6ad60 75 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 ue);..$commandsXML->appendChild(
6ad80 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 73 44 6f 6d 20 3f 20 24 64 6f $node);.}.}..return.$asDom.?.$do
6ada0 6d 20 3a 20 24 64 6f 6d 2d 3e 73 61 76 65 58 6d 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 m.:.$dom->saveXml();.}........pu
6adc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 blic.function.renderException($e
6ade0 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 73 74 72 6c 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 ,.$output).{.$strlen.=.function.
6ae00 28 24 73 74 72 69 6e 67 29 20 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 ($string).{.if.(!function_exists
6ae20 28 27 6d 62 5f 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 ('mb_strlen')).{.return.strlen($
6ae40 73 74 72 69 6e 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 string);.}..if.(false.===.$encod
6ae60 69 6e 67 20 3d 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 ing.=.mb_detect_encoding($string
6ae80 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 0a )).{.return.strlen($string);.}..
6aea0 72 65 74 75 72 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 return.mb_strlen($string,.$encod
6aec0 69 6e 67 29 3b 0a 7d 3b 0a 0a 64 6f 20 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 ing);.};..do.{.$title.=.sprintf(
6aee0 27 20 20 5b 25 73 5d 20 20 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a 24 6c 65 6e '..[%s]..',.get_class($e));.$len
6af00 20 3d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 3b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 .=.$strlen($title);.$width.=.$th
6af20 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 2d 3e is->getTerminalWidth().?.$this->
6af40 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 4e 54 getTerminalWidth().-.1.:.PHP_INT
6af60 5f 4d 41 58 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 _MAX;.$lines.=.array();.foreach.
6af80 28 70 72 65 67 5f 73 70 6c 69 74 28 22 7b 5c 72 3f 5c 6e 7d 22 2c 20 24 65 2d 3e 67 65 74 4d 65 (preg_split("{\r?\n}",.$e->getMe
6afa0 73 73 61 67 65 28 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 73 74 ssage()).as.$line).{.foreach.(st
6afc0 72 5f 73 70 6c 69 74 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 73 20 24 6c r_split($line,.$width.-.4).as.$l
6afe0 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 25 73 20 ine).{.$lines[].=.sprintf('..%s.
6b000 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 73 74 72 6c 65 6e 28 24 .',.$line);.$len.=.max($strlen($
6b020 6c 69 6e 65 29 20 2b 20 34 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 line).+.4,.$len);.}.}..$messages
6b040 20 3d 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 2c 20 .=.array(str_repeat('.',.$len),.
6b060 24 74 69 74 6c 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 2c 20 24 6c $title.str_repeat('.',.max(0,.$l
6b080 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 29 29 29 3b 0a 0a 66 6f 72 65 61 63 en.-.$strlen($title))));..foreac
6b0a0 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 73 61 67 65 73 5b h.($lines.as.$line).{.$messages[
6b0c0 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 24 6c 65 6e 20 2d ].=.$line.str_repeat('.',.$len.-
6b0e0 20 24 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 5b 5d .$strlen($line));.}..$messages[]
6b100 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 0a 24 6f 75 74 70 .=.str_repeat('.',.$len);..$outp
6b120 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 65 6c ut->writeln("");.$output->writel
6b140 6e 28 22 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 n("");.foreach.($messages.as.$me
6b160 73 73 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 3c 65 72 72 6f ssage).{.$output->writeln('<erro
6b180 72 3e 27 2e 24 6d 65 73 73 61 67 65 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 24 6f 75 74 r>'.$message.'</error>');.}.$out
6b1a0 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 65 put->writeln("");.$output->write
6b1c0 6c 6e 28 22 22 29 3b 0a 0a 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 ln("");..if.(OutputInterface::VE
6b1e0 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d 3d 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 RBOSITY_VERBOSE.===.$output->get
6b200 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 Verbosity()).{.$output->writeln(
6b220 27 3c 63 6f 6d 6d 65 6e 74 3e 45 78 63 65 70 74 69 6f 6e 20 74 72 61 63 65 3a 3c 2f 63 6f 6d 6d '<comment>Exception.trace:</comm
6b240 65 6e 74 3e 27 29 3b 0a 0a 0a 20 24 74 72 61 63 65 20 3d 20 24 65 2d 3e 67 65 74 54 72 61 63 65 ent>');....$trace.=.$e->getTrace
6b260 28 29 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 72 61 63 65 2c 20 61 72 72 61 79 28 ();.array_unshift($trace,.array(
6b280 0a 27 66 75 6e 63 74 69 6f 6e 27 20 3d 3e 20 27 27 2c 0a 27 66 69 6c 65 27 20 3d 3e 20 24 65 2d .'function'.=>.'',.'file'.=>.$e-
6b2a0 3e 67 65 74 46 69 6c 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 46 69 6c 65 >getFile().!=.null.?.$e->getFile
6b2c0 28 29 20 3a 20 27 6e 2f 61 27 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 4c 69 6e ().:.'n/a',.'line'.=>.$e->getLin
6b2e0 65 28 29 20 21 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 3a 20 27 6e e().!=.null.?.$e->getLine().:.'n
6b300 2f 61 27 2c 0a 27 61 72 67 73 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 29 29 3b 0a 0a 66 6f 72 /a',.'args'.=>.array(),.));..for
6b320 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 72 61 63 65 29 .($i.=.0,.$count.=.count($trace)
6b340 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 ;.$i.<.$count;.$i++).{.$class.=.
6b360 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 74 72 isset($trace[$i]['class']).?.$tr
6b380 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 20 3a 20 27 27 3b 0a 24 74 79 70 65 20 3d 20 69 ace[$i]['class'].:.'';.$type.=.i
6b3a0 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 74 72 61 63 sset($trace[$i]['type']).?.$trac
6b3c0 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 20 3a 20 27 27 3b 0a 24 66 75 6e 63 74 69 6f 6e 20 3d 20 e[$i]['type'].:.'';.$function.=.
6b3e0 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d 3b 0a 24 66 69 6c 65 20 3d 20 $trace[$i]['function'];.$file.=.
6b400 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 29 20 3f 20 24 74 72 61 isset($trace[$i]['file']).?.$tra
6b420 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 24 6c 69 6e 65 20 3d 20 ce[$i]['file'].:.'n/a';.$line.=.
6b440 69 73 73 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 29 20 3f 20 24 74 72 61 isset($trace[$i]['line']).?.$tra
6b460 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 0a 24 6f 75 74 70 75 74 ce[$i]['line'].:.'n/a';..$output
6b480 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 20 25 73 25 73 25 73 28 29 20 61 74 20 ->writeln(sprintf('.%s%s%s().at.
6b4a0 3c 69 6e 66 6f 3e 25 73 3a 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 24 63 6c 61 73 73 2c 20 24 74 79 <info>%s:%s</info>',.$class,.$ty
6b4c0 70 65 2c 20 24 66 75 6e 63 74 69 6f 6e 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 29 3b 0a 7d pe,.$function,.$file,.$line));.}
6b4e0 0a 0a 24 6f 75 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 ..$output->writeln("");.$output-
6b500 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 3d 20 24 65 >writeln("");.}.}.while.($e.=.$e
6b520 2d 3e 67 65 74 50 72 65 76 69 6f 75 73 28 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 ->getPrevious());..if.(null.!==.
6b540 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6f 75 74 70 75 74 $this->runningCommand).{.$output
6b560 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 ->writeln(sprintf('<info>%s</inf
6b580 6f 3e 27 2c 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 o>',.sprintf($this->runningComma
6b5a0 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d nd->getSynopsis(),.$this->getNam
6b5c0 65 28 29 29 29 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 24 6f e())));.$output->writeln("");.$o
6b5e0 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 utput->writeln("");.}.}.......pr
6b600 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 otected.function.getTerminalWidt
6b620 68 28 29 0a 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 h().{.if.(defined('PHP_WINDOWS_V
6b640 45 52 53 49 4f 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 ERSION_BUILD')).{.if.($ansicon.=
6b660 20 67 65 74 65 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 .getenv('ANSICON')).{.return.pre
6b680 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 64 2b 29 78 2e 2a 24 7d 27 2c 20 27 24 31 27 2c 20 g_replace('{^(\d+)x.*$}',.'$1',.
6b6a0 24 61 6e 73 69 63 6f 6e 29 3b 0a 7d 0a 0a 65 78 65 63 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 $ansicon);.}..exec('mode.CON',.$
6b6c0 65 78 65 63 44 61 74 61 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 63 6f 6c 75 execData);.if.(preg_match('{colu
6b6e0 6d 6e 73 3a 5c 73 2a 28 5c 64 2b 29 7d 69 27 2c 20 24 65 78 65 63 44 61 74 61 5b 34 5d 2c 20 24 mns:\s*(\d+)}i',.$execData[4],.$
6b700 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 5d 3b 0a matches)).{.return.$matches[1];.
6b720 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 64 2b 29 }.}..if.(preg_match("{rows.(\d+)
6b740 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 65 74 53 ;.columns.(\d+);}i",.$this->getS
6b760 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 72 6e 20 ttyColumns(),.$match)).{.return.
6b780 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 64 20 66 $match[2];.}.}.......protected.f
6b7a0 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 0a 69 66 unction.getTerminalHeight().{.if
6b7c0 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
6b7e0 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 6e 76 28 UILD')).{.if.($ansicon.=.getenv(
6b800 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 6c 61 63 'ANSICON')).{.return.preg_replac
6b820 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 2c 20 27 e('{^\d+x\d+.\(\d+x(\d+)\)$}',.'
6b840 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 65 78 65 63 28 27 6d $1',.trim($ansicon));.}..exec('m
6b860 6f 64 65 20 43 4f 4e 27 2c 20 24 65 78 65 63 44 61 74 61 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d ode.CON',.$execData);.if.(preg_m
6b880 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 24 65 78 65 63 44 atch('{lines:\s*(\d+)}i',.$execD
6b8a0 61 74 61 5b 33 5d 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 ata[3],.$matches)).{.return.$mat
6b8c0 63 68 65 73 5b 31 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 ches[1];.}.}..if.(preg_match("{r
6b8e0 6f 77 73 2e 28 5c 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 ows.(\d+);.columns.(\d+);}i",.$t
6b900 68 69 73 2d 3e 67 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 his->getSttyColumns(),.$match)).
6b920 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a {.return.$match[1];.}.}.........
6b940 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d protected.function.getCommandNam
6b960 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 e(InputInterface.$input).{.retur
6b980 6e 20 24 69 6e 70 75 74 2d 3e 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d n.$input->getFirstArgument('comm
6b9a0 61 6e 64 27 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 and');.}.......protected.functio
6b9c0 6e 20 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 0a 7b 0a n.getDefaultInputDefinition().{.
6b9e0 72 65 74 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 return.new.InputDefinition(array
6ba00 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 49 (.new.InputArgument('command',.I
6ba20 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 54 68 65 20 63 6f 6d nputArgument::REQUIRED,.'The.com
6ba40 6d 61 6e 64 20 74 6f 20 65 78 65 63 75 74 65 27 29 2c 0a 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 mand.to.execute'),..new.InputOpt
6ba60 69 6f 6e 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a ion('--help',.'-h',.InputOption:
6ba80 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 68 65 6c 70 20 :VALUE_NONE,.'Display.this.help.
6baa0 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 71 message.'),.new.InputOption('--q
6bac0 75 69 65 74 27 2c 20 27 2d 71 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f uiet',.'-q',.InputOption::VALUE_
6bae0 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 61 6e 79 20 6d 65 73 73 61 67 65 NONE,.'Do.not.output.any.message
6bb00 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 .'),.new.InputOption('--verbose'
6bb20 2c 20 27 2d 76 27 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 ,.'-v',.InputOption::VALUE_NONE,
6bb40 20 27 49 6e 63 72 65 61 73 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 73 .'Increase.verbosity.of.messages
6bb60 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 .'),.new.InputOption('--version'
6bb80 2c 20 27 2d 56 27 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 ,.'-V',.InputOption::VALUE_NONE,
6bba0 20 27 44 69 73 70 6c 61 79 20 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 .'Display.this.application.versi
6bbc0 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c on.'),.new.InputOption('--ansi',
6bbe0 20 27 27 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 .'',.InputOption::VALUE_NONE,.'F
6bc00 6f 72 63 65 20 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 orce.ANSI.output.'),.new.InputOp
6bc20 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f tion('--no-ansi',.'',.InputOptio
6bc40 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 n::VALUE_NONE,.'Disable.ANSI.out
6bc60 70 75 74 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e put.'),.new.InputOption('--no-in
6bc80 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d 6e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 teraction',.'-n',.InputOption::V
6bca0 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 ALUE_NONE,.'Do.not.ask.any.inter
6bcc0 61 63 74 69 76 65 20 71 75 65 73 74 69 6f 6e 2e 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a active.question.'),.));.}.......
6bce0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d protected.function.getDefaultCom
6bd00 6d 61 6e 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 mands().{.return.array(new.HelpC
6bd20 6f 6d 6d 61 6e 64 28 29 2c 20 6e 65 77 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a ommand(),.new.ListCommand());.}.
6bd40 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 66 61 ......protected.function.getDefa
6bd60 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 ultHelperSet().{.return.new.Help
6bd80 65 72 53 65 74 28 61 72 72 61 79 28 0a 6e 65 77 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 erSet(array(.new.FormatterHelper
6bda0 28 29 2c 0a 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a (),.new.DialogHelper(),.));.}...
6bdc0 0a 0a 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 ....private.function.getSttyColu
6bde0 6d 6e 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 mns().{.if.(!function_exists('pr
6be00 6f 63 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 oc_open')).{.return;.}..$descrip
6be20 74 6f 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 torspec.=.array(1.=>.array('pipe
6be40 27 2c 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 ',.'w'),.2.=>.array('pipe',.'w')
6be60 29 3b 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 );.$process.=.proc_open('stty.-a
6be80 20 7c 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 .|.grep.columns',.$descriptorspe
6bea0 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
6bec0 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
6bee0 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
6bf00 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
6bf20 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[
6bf40 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
6bf60 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
6bf80 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).{
6bfa0 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();.
6bfc0 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.=>.$
6bfe0 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
6c000 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).
6c020 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
6c040 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
6c060 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)
6c080 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.
6c0a0 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
6c0c0 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
6c0e0 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
6c100 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
6c120 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',.$
6c140 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($
6c160 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.
6c180 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).:.''
6c1a0 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
6c1c0 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.=.
6c1e0 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
6c200 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
6c220 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.?.
6c240 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,.
6c260 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
6c280 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
6c2a0 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
6c2c0 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
6c2e0 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
6c300 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
6c320 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);.}......
6c340 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
6c360 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).{
6c380 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(
6c3a0 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(),.$
6c3c0 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.
6c3e0 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,
6c400 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
6c420 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
6c440 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
6c460 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).{
6c480 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
6c4a0 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
6c4c0 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
6c4e0 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
6c500 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
6c520 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
6c540 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.
6c560 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
6c580 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.<=.
6c5a0 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
6c5c0 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.($
6c5e0 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
6c600 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
6c620 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
6c640 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...
6c660 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
6c680 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
6c6a0 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.
6c6c0 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
6c6e0 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
6c700 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
6c720 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;.............
6c740 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
6c760 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.=
6c780 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
6c7a0 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
6c7c0 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).|
6c7e0 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
6c800 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(
6c820 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
6c840 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
6c860 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
6c880 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
6c8a0 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
6c8c0 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
6c8e0 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;.}....
6c900 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().
6c920 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
6c940 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);.}...
6c960 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().{.
6c980 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:
6c9a0 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);.}.....
6c9c0 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($
6c9e0 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
6ca00 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.!==
6ca20 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
6ca40 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
6ca60 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
6ca80 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
6caa0 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).{.$
6cac0 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
6cae0 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
6cb00 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
6cb20 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.
6cb40 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.=.
6cb60 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
6cb80 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
6cba0 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.
6cbc0 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-
6cbe0 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.........
6cc00 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
6cc20 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
6cc40 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
6cc60 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;
6cc80 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.$
6cca0 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
6ccc0 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.
6cce0 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
6cd00 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.===.$
6cd20 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.
6cd40 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.
6cd60 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
6cd80 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.
6cda0 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
6cdc0 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.=.
6cde0 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(
6ce00 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
6ce20 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
6ce40 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();.
6ce60 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()
6ce80 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).<
6cea0 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
6cec0 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
6cee0 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
6cf00 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
6cf20 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
6cf40 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
6cf60 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
6cf80 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
6cfa0 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
6cfc0 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
6cfe0 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
6d000 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->
6d020 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
6d040 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.
6d060 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
6d080 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
6d0a0 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"
6d0c0 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
6d0e0 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
6d100 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
6d120 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
6d140 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();.}
6d160 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
6d180 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
6d1a0 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
6d1c0 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
6d1e0 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
6d200 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));.}
6d220 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
6d240 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
6d260 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-
6d280 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);
6d2a0 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
6d2c0 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
6d2e0 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(
6d300 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);.}...........
6d320 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)
6d340 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
6d360 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
6d380 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.
6d3a0 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
6d3c0 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
6d3e0 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[$
6d400 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
6d420 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();.}....
6d440 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(
6d460 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
6d480 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
6d4a0 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
6d4c0 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
6d4e0 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
6d500 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;.}.......
6d520 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
6d540 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
6d560 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......
6d580 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
6d5a0 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
6d5c0 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.
6d5e0 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.=.'([^.]+?)
6d600 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 (?:.|(?<!\\\\)"|(?<!\\\\)\'|$)';
6d620 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.=.'(?
6d640 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 :"([^"\\\\]*(?:\\\\.[^"\\\\]*)*)
6d660 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 "|\'([^\'\\\\]*(?:\\\\.[^\'\\\\]
6d680 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
6d6a0 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
6d6c0 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
6d6e0 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
6d700 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-
6d720 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));.}...........
6d740 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
6d760 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\
6d780 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
6d7a0 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
6d7c0 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.($
6d7e0 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
6d800 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
6d820 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
6d840 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
6d860 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
6d880 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
6d8a0 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
6d8c0 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('"\
6d8e0 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
6d900 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
6d920 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
6d940 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.
6d960 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
6d980 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
6d9a0 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
6d9c0 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
6d9e0 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'
6da00 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)
6da20 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
6da40 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
6da60 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
6da80 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."
6daa0 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
6dac0 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
6dae0 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
6db00 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
6db20 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
6db40 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
6db60 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_
6db80 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
6dba0 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
6dbc0 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
6dbe0 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
6dc00 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;.....
6dc20 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
6dc40 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,.$
6dc60 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.=.'',.
6dc80 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
6dca0 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
6dcc0 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
6dce0 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
6dd00 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.
6dd20 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
6dd40 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.
6dd60 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.('-'.=
6dd80 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
6dda0 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
6ddc0 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
6dde0 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
6de00 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.');.}.}.
6de20 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
6de40 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
6de60 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
6de80 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
6dea0 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
6dec0 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));.}
6dee0 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
6df00 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.
6df20 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
6df40 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(
6df60 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
6df80 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
6dfa0 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.
6dfc0 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
6dfe0 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.');.}.
6e000 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);.}.
6e020 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
6e040 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;.}.
6e060 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().
6e080 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
6e0a0 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
6e0c0 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().||
6e0e0 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();.}....
6e100 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
6e120 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
6e140 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.&.$
6e160 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
6e180 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.
6e1a0 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::
6e1c0 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);.}
6e1e0 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()
6e200 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.=
6e220 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
6e240 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
6e260 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).{
6e280 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:
6e2a0 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
6e2c0 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
6e2e0 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
6e300 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
6e320 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
6e340 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
6e360 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
6e380 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
6e3a0 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
6e3c0 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.
6e3e0 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
6e400 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
6e420 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
6e440 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-
6e460 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
6e480 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
6e4a0 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.
6e4c0 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
6e4e0 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()
6e500 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
6e520 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
6e540 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(
6e560 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
6e580 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
6e5a0 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
6e5c0 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().
6e5e0 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().==
6e600 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().;.}.}
6e620 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
6e640 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;.....
6e660 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
6e680 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.
6e6a0 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;.......
6e6c0 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
6e6e0 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
6e700 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
6e720 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[
6e740 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)
6e760 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
6e780 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);.}..
6e7a0 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
6e7c0 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
6e7e0 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.
6e800 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;.
6e820 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
6e840 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
6e860 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
6e880 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
6e8a0 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
6e8c0 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
6e8e0 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
6e900 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
6e920 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
6e940 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.(
6e960 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[
6e980 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
6e9a0 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
6e9c0 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
6e9e0 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
6ea00 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);
6ea20 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.($
6ea40 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
6ea60 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
6ea80 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
6eaa0 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
6eac0 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
6eae0 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
6eb00 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
6eb20 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);.}
6eb40 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
6eb60 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.=.
6eb80 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.<
6eba0 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
6ebc0 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])).{
6ebe0 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
6ec00 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.
6ec20 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
6ec40 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
6ec60 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
6ec80 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
6eca0 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
6ecc0 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
6ece0 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.{.
6ed00 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
6ed20 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
6ed40 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
6ed60 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)
6ed80 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($
6eda0 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
6edc0 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
6ede0 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
6ee00 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);
6ee20 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
6ee40 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
6ee60 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
6ee80 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)).{
6eea0 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
6eec0 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
6eee0 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()?
6ef00 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
6ef20 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
6ef40 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
6ef60 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(
6ef80 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
6efa0 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
6efc0 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
6efe0 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
6f000 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.')
6f020 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.
6f040 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
6f060 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
6f080 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.
6f0a0 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."
6f0c0 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
6f0e0 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
6f100 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
6f120 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()
6f140 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
6f160 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
6f180 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
6f1a0 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
6f1c0 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
6f1e0 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
6f200 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
6f220 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.
6f240 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
6f260 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(
6f280 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
6f2a0 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.{
6f2c0 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
6f2e0 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).
6f300 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()
6f320 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(
6f340 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
6f360 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
6f380 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().?
6f3a0 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;.}
6f3c0 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
6f3e0 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;.}.
6f400 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].=.$
6f420 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
6f440 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.($
6f460 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
6f480 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
6f4a0 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;.}.}....
6f4c0 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
6f4e0 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.=.
6f500 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
6f520 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($
6f540 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;.}.}.
6f560 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
6f580 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(
6f5a0 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
6f5c0 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
6f5e0 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.
6f600 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
6f620 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.==
6f640 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.(
6f660 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,.
6f680 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
6f6a0 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($
6f6c0 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;
6f6e0 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
6f700 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;.
6f720 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.{
6f740 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 ......function.getFirstArgument(
6f760 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 );............function.hasParame
6f780 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a terOption($values);.............
6f7a0 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 24 76 61 6c function.getParameterOption($val
6f7c0 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 ues,.$default.=.false);.......fu
6f7e0 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 65 66 nction.bind(InputDefinition.$def
6f800 69 6e 69 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 inition);.........function.valid
6f820 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e ate();.......function.getArgumen
6f840 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 ts();.........function.getArgume
6f860 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 nt($name);..........function.set
6f880 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a Argument($name,.$value);........
6f8a0 0a 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 .function.hasArgument($name);...
6f8c0 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a ....function.getOptions();......
6f8e0 0a 0a 0a 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 3b 0a 0a 0a ...function.getOption($name);...
6f900 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c .......function.setOption($name,
6f920 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 .$value);.........function.hasOp
6f940 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e tion($name);.......function.isIn
6f960 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 teractive();.......function.setI
6f980 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a 3c 3f 70 68 nteractive($interactive);.}.<?ph
6f9a0 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
6f9c0 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 0a 0a 0a 0a 0a mponent\Console\Input;..........
6f9e0 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 ...class.ArrayInput.extends.Inpu
6fa00 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a t.{.private.$parameters;........
6fa20 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 72 ..public.function.__construct(ar
6fa40 72 61 79 20 24 70 61 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e ray.$parameters,.InputDefinition
6fa60 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 .$definition.=.null).{.$this->pa
6fa80 72 61 6d 65 74 65 72 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a rameters.=.$parameters;..parent:
6faa0 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 0a 0a :__construct($definition);.}....
6fac0 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 67 75 6d ...public.function.getFirstArgum
6fae0 65 6e 74 28 29 0a 7b 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 ent().{.foreach.($this->paramete
6fb00 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 20 28 24 6b 65 79 rs.as.$key.=>.$value).{.if.($key
6fb20 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b .&&.'-'.===.$key[0]).{.continue;
6fb40 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .}..return.$value;.}.}..........
6fb60 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 65 74 65 72 4f 70 ..public.function.hasParameterOp
6fb80 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 28 61 72 72 61 79 tion($values).{.$values.=.(array
6fba0 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 2d 3e 70 61 72 61 ).$values;..foreach.($this->para
6fbc0 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 21 69 73 5f 69 6e meters.as.$k.=>.$v).{.if.(!is_in
6fbe0 74 28 24 6b 29 29 20 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 t($k)).{.$v.=.$k;.}..if.(in_arra
6fc00 79 28 24 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 y($v,.$values)).{.return.true;.}
6fc20 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 0a 0a 0a 0a .}..return.false;.}.............
6fc40 70 75 62 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 public.function.getParameterOpti
6fc60 6f 6e 28 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 on($values,.$default.=.false).{.
6fc80 24 76 61 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 66 6f 72 65 $values.=.(array).$values;..fore
6fca0 61 63 68 20 28 24 74 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 ach.($this->parameters.as.$k.=>.
6fcc0 24 76 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 20 26 26 20 69 6e 5f 61 72 72 61 79 $v).{.if.(is_int($k).&&.in_array
6fce0 28 24 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 20 ($v,.$values)).{.return.true;.}.
6fd00 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 65 73 29 29 20 7b elseif.(in_array($k,.$values)).{
6fd20 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 .return.$v;.}.}..return.$default
6fd40 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 70 61 72 73 65 ;.}.....protected.function.parse
6fd60 28 29 0a 7b 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 ().{.foreach.($this->parameters.
6fd80 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 30 20 3d 3d 3d 20 73 as.$key.=>.$value).{.if.(0.===.s
6fda0 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c trpos($key,.'--')).{.$this->addL
6fdc0 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 76 61 6c 75 ongOption(substr($key,.2),.$valu
6fde0 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b e);.}.elseif.('-'.===.$key[0]).{
6fe00 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b .$this->addShortOption(substr($k
6fe20 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ey,.1),.$value);.}.else.{.$this-
6fe40 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a >addArgument($key,.$value);.}.}.
6fe60 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 61 64 64 53 }..........private.function.addS
6fe80 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 29 0a 7b 0a hortOption($shortcut,.$value).{.
6fea0 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 68 6f 72 74 if.(!$this->definition->hasShort
6fec0 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 5c 49 6e 76 cut($shortcut)).{.throw.new.\Inv
6fee0 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 54 alidArgumentException(sprintf('T
6ff00 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 65 78 69 73 74 2e 27 he."-%s".option.does.not.exist.'
6ff20 2c 20 24 73 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 ,.$shortcut));.}..$this->addLong
6ff40 4f 70 74 69 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 Option($this->definition->getOpt
6ff60 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 2d 3e 67 65 74 4e 61 ionForShortcut($shortcut)->getNa
6ff80 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 me(),.$value);.}...........priva
6ffa0 74 65 20 66 75 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 te.function.addLongOption($name,
6ffc0 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 69 6e 69 74 69 6f .$value).{.if.(!$this->definitio
6ffe0 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 6f 77 20 6e 65 77 n->hasOption($name)).{.throw.new
70000 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
70020 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 tf('The."--%s".option.does.not.e
70040 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 xist.',.$name));.}..$option.=.$t
70060 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 28 24 6e 61 6d 65 his->definition->getOption($name
70080 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 );..if.(null.===.$value).{.if.($
700a0 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 29 20 7b 0a 74 68 72 option->isValueRequired()).{.thr
700c0 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
700e0 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 72 65 71 75 (sprintf('The."--%s".option.requ
70100 69 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 ires.a.value.',.$name));.}..$val
70120 75 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 ue.=.$option->isValueOptional().
70140 3f 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 ?.$option->getDefault().:.true;.
70160 7d 0a 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 76 61 6c 75 }..$this->options[$name].=.$valu
70180 65 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 61 e;.}..........private.function.a
701a0 64 64 41 72 67 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 ddArgument($name,.$value).{.if.(
701c0 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 28 !$this->definition->hasArgument(
701e0 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
70200 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 20 mentException(sprintf('The."%s".
70220 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 65 argument.does.not.exist.',.$name
70240 29 29 3b 0a 7d 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 ));.}..$this->arguments[$name].=
70260 20 24 76 61 6c 75 65 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 .$value;.}.}.<?php...........nam
70280 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
702a0 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 \Input;................class.Inp
702c0 75 74 44 65 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 utDefinition.{.private.$argument
702e0 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 70 72 69 76 61 s;.private.$requiredCount;.priva
70300 74 65 20 24 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 0a te.$hasAnArrayArgument.=.false;.
70320 70 72 69 76 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 72 69 76 61 74 65 20 24 6f private.$hasOptional;.private.$o
70340 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 73 3b 0a 0a 0a 0a 0a ptions;.private.$shortcuts;.....
70360 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(
70380 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 array.$definition.=.array()).{.$
703a0 74 68 69 73 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 this->setDefinition($definition)
703c0 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 44 ;.}.........public.function.setD
703e0 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 efinition(array.$definition).{.$
70400 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 arguments.=.array();.$options.=.
70420 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 61 73 array();.foreach.($definition.as
70440 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 .$item).{.if.($item.instanceof.I
70460 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 24 69 74 65 6d nputOption).{.$options[].=.$item
70480 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 69 74 65 6d 3b ;.}.else.{.$arguments[].=.$item;
704a0 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d .}.}..$this->setArguments($argum
704c0 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e ents);.$this->setOptions($option
704e0 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 74 69 6f 6e 20 73 65 s);.}.........public.function.se
70500 74 41 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 tArguments($arguments.=.array())
70520 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 .{.$this->arguments.=.array();.$
70540 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e this->requiredCount.=.0;.$this->
70560 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 68 61 73 41 hasOptional.=.false;.$this->hasA
70580 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 61 nArrayArgument.=.false;.$this->a
705a0 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ddArguments($arguments);.}......
705c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 73 28 ...public.function.addArguments(
705e0 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c $arguments.=.array()).{.if.(null
70600 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 72 67 .!==.$arguments).{.foreach.($arg
70620 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 uments.as.$argument).{.$this->ad
70640 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a dArgument($argument);.}.}.}.....
70660 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 72 67 75 6d 65 6e ......public.function.addArgumen
70680 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 69 66 20 t(InputArgument.$argument).{.if.
706a0 28 69 73 73 65 74 28 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 (isset($this->arguments[$argumen
706c0 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 t->getName()])).{.throw.new.\Log
706e0 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 61 72 67 75 6d 65 6e 74 icException(sprintf('An.argument
70700 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 .with.name."%s".already.exists.'
70720 2c 20 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 0a 69 66 20 ,.$argument->getName()));.}..if.
70740 28 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 29 20 7b 0a 74 68 ($this->hasAnArrayArgument).{.th
70760 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 row.new.\LogicException('Cannot.
70780 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 61 72 72 61 79 20 61 add.an.argument.after.an.array.a
707a0 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 rgument.');.}..if.($argument->is
707c0 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c Required().&&.$this->hasOptional
707e0 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 27 43 ).{.throw.new.\LogicException('C
70800 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e 74 20 61 66 annot.add.a.required.argument.af
70820 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 ter.an.optional.one.');.}..if.($
70840 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 argument->isArray()).{.$this->ha
70860 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 sAnArrayArgument.=.true;.}..if.(
70880 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 2b 2b 24 74 68 $argument->isRequired()).{.++$th
708a0 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 is->requiredCount;.}.else.{.$thi
708c0 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d s->hasOptional.=.true;.}..$this-
708e0 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d >arguments[$argument->getName()]
70900 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .=.$argument;.}.............publ
70920 69 63 20 66 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 ic.function.getArgument($name).{
70940 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 3f 20 61 72 .$arguments.=.is_int($name).?.ar
70960 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 20 3a 20 24 ray_values($this->arguments).:.$
70980 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 this->arguments;..if.(!$this->ha
709a0 73 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 sArgument($name)).{.throw.new.\I
709c0 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 66 28 nvalidArgumentException(sprintf(
709e0 27 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 'The."%s".argument.does.not.exis
70a00 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 72 67 75 6d 65 6e t.',.$name));.}..return.$argumen
70a20 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ts[$name];.}...........public.fu
70a40 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 0a 7b 0a 24 61 72 67 nction.hasArgument($name).{.$arg
70a60 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 61 72 72 61 79 5f 76 uments.=.is_int($name).?.array_v
70a80 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 74 68 69 73 2d alues($this->arguments).:.$this-
70aa0 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 72 67 75 6d >arguments;..return.isset($argum
70ac0 65 6e 74 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 20 66 ents[$name]);.}.........public.f
70ae0 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 72 6e 20 unction.getArguments().{.return.
70b00 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $this->arguments;.}.......public
70b20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 43 6f 75 6e 74 28 29 0a 7b 0a 72 .function.getArgumentCount().{.r
70b40 65 74 75 72 6e 20 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 eturn.$this->hasAnArrayArgument.
70b60 3f 20 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 ?.PHP_INT_MAX.:.count($this->arg
70b80 75 6d 65 6e 74 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 uments);.}.......public.function
70ba0 20 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 28 29 0a 7b 0a 72 65 .getArgumentRequiredCount().{.re
70bc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 0a 0a 0a 0a turn.$this->requiredCount;.}....
70be0 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 44 65 ...public.function.getArgumentDe
70c00 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
70c20 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 reach.($this->arguments.as.$argu
70c40 6d 65 6e 74 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 ment).{.$values[$argument->getNa
70c60 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b me()].=.$argument->getDefault();
70c80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .}..return.$values;.}.........pu
70ca0 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 24 6f 70 74 69 6f 6e blic.function.setOptions($option
70cc0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 s.=.array()).{.$this->options.=.
70ce0 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 20 3d 20 61 72 72 61 array();.$this->shortcuts.=.arra
70d00 79 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 y();.$this->addOptions($options)
70d20 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 4f ;.}.........public.function.addO
70d40 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 ptions($options.=.array()).{.for
70d60 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 each.($options.as.$option).{.$th
70d80 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a is->addOption($option);.}.}.....
70da0 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 4f 70 74 69 6f 6e 28 ......public.function.addOption(
70dc0 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 InputOption.$option).{.if.(isset
70de0 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 65 ($this->options[$option->getName
70e00 28 29 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 ()]).&&.!$option->equals($this->
70e20 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a options[$option->getName()])).{.
70e40 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 6e 74 throw.new.\LogicException(sprint
70e60 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 f('An.option.named."%s".already.
70e80 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a exists.',.$option->getName()));.
70ea0 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 }.elseif.(isset($this->shortcuts
70ec0 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 29 20 26 26 20 21 24 6f [$option->getShortcut()]).&&.!$o
70ee0 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 74 68 ption->equals($this->options[$th
70f00 69 73 2d 3e 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 is->shortcuts[$option->getShortc
70f20 75 74 28 29 5d 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 ut()]])).{.throw.new.\LogicExcep
70f40 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 73 68 6f tion(sprintf('An.option.with.sho
70f60 72 74 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 rtcut."%s".already.exists.',.$op
70f80 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d tion->getShortcut()));.}..$this-
70fa0 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 >options[$option->getName()].=.$
70fc0 6f 70 74 69 6f 6e 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 option;.if.($option->getShortcut
70fe0 28 29 29 20 7b 0a 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 ()).{.$this->shortcuts[$option->
71000 67 65 74 53 68 6f 72 74 63 75 74 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d getShortcut()].=.$option->getNam
71020 65 28 29 3b 0a 7d 0a 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 e();.}.}.............public.func
71040 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 tion.getOption($name).{.if.(!$th
71060 69 73 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 6f 77 20 6e 65 is->hasOption($name)).{.throw.ne
71080 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
710a0 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 ntf('The."--%s".option.does.not.
710c0 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 20 24 74 68 69 exist.',.$name));.}..return.$thi
710e0 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 s->options[$name];.}...........p
71100 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 65 29 0a ublic.function.hasOption($name).
71120 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e {.return.isset($this->options[$n
71140 61 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 ame]);.}.........public.function
71160 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 2d 3e 6f 70 .getOptions().{.return.$this->op
71180 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 74 69 6f 6e tions;.}.........public.function
711a0 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 .hasShortcut($name).{.return.iss
711c0 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a et($this->shortcuts[$name]);.}..
711e0 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 6f 6e .......public.function.getOption
71200 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 ForShortcut($shortcut).{.return.
71220 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 $this->getOption($this->shortcut
71240 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ToName($shortcut));.}.......publ
71260 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 0a ic.function.getOptionDefaults().
71280 7b 0a 24 76 61 6c 75 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 {.$values.=.array();.foreach.($t
712a0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 76 61 6c 75 his->options.as.$option).{.$valu
712c0 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e es[$option->getName()].=.$option
712e0 2d 3e 67 65 74 44 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 ->getDefault();.}..return.$value
71300 73 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 74 69 6f 6e 20 s;.}...........private.function.
71320 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 0a 7b 0a 69 66 20 28 shortcutToName($shortcut).{.if.(
71340 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 !isset($this->shortcuts[$shortcu
71360 74 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 65 6e t])).{.throw.new.\InvalidArgumen
71380 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 2d 25 73 22 20 6f 70 tException(sprintf('The."-%s".op
713a0 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 68 6f 72 74 63 75 74 tion.does.not.exist.',.$shortcut
713c0 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 ));.}..return.$this->shortcuts[$
713e0 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 shortcut];.}.......public.functi
71400 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 0a 7b 0a 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 on.getSynopsis().{.$elements.=.a
71420 72 72 61 79 28 29 3b 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 rray();.foreach.($this->getOptio
71440 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 24 ns().as.$option).{.$shortcut.=.$
71460 6f 70 74 69 6f 6e 2d 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 option->getShortcut().?.sprintf(
71480 27 2d 25 73 7c 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 '-%s|',.$option->getShortcut()).
714a0 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 5b 27 2e :.'';.$elements[].=.sprintf('['.
714c0 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 20 3f 20 27 25 ($option->isValueRequired().?.'%
714e0 73 2d 2d 25 73 3d 22 2e 2e 2e 22 27 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 s--%s="..."'.:.($option->isValue
71500 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 27 25 73 2d 2d 25 73 5b 3d 22 2e 2e 2e 22 5d 27 20 3a 20 Optional().?.'%s--%s[="..."]'.:.
71520 27 25 73 2d 2d 25 73 27 29 29 2e 27 5d 27 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6f 70 74 69 '%s--%s')).']',.$shortcut,.$opti
71540 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 on->getName());.}..foreach.($thi
71560 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 s->getArguments().as.$argument).
71580 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 61 72 67 75 6d 65 6e {.$elements[].=.sprintf($argumen
715a0 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 27 20 3a 20 27 5b 25 73 5d 27 2c t->isRequired().?.'%s'.:.'[%s]',
715c0 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 28 24 61 72 67 75 6d 65 6e 74 .$argument->getName().($argument
715e0 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 31 27 20 3a 20 27 27 29 29 3b 0a 0a 69 66 20 28 24 ->isArray().?.'1'.:.''));..if.($
71600 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 argument->isArray()).{.$elements
71620 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 2e 2e 2e 20 5b 25 73 4e 5d 27 2c 20 24 61 72 67 75 6d [].=.sprintf('....[%sN]',.$argum
71640 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 ent->getName());.}.}..return.imp
71660 6c 6f 64 65 28 27 20 27 2c 20 24 65 6c 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 lode('.',.$elements);.}.......pu
71680 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 0a 20 24 6d 61 78 20 blic.function.asText().{...$max.
716a0 3d 20 30 3b 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 =.0;.foreach.($this->getOptions(
716c0 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 73 74 ).as.$option).{.$nameLength.=.st
716e0 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 2b 20 32 3b 0a 69 66 rlen($option->getName()).+.2;.if
71700 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a 24 6e 61 6d .($option->getShortcut()).{.$nam
71720 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 eLength.+=.strlen($option->getSh
71740 6f 72 74 63 75 74 28 29 29 20 2b 20 33 3b 0a 7d 0a 0a 24 6d 61 78 20 3d 20 6d 61 78 28 24 6d 61 ortcut()).+.3;.}..$max.=.max($ma
71760 78 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 x,.$nameLength);.}.foreach.($thi
71780 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 s->getArguments().as.$argument).
717a0 7b 0a 24 6d 61 78 20 3d 20 6d 61 78 28 24 6d 61 78 2c 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d {.$max.=.max($max,.strlen($argum
717c0 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 6d 61 78 3b 0a 0a 24 74 65 ent->getName()));.}.++$max;..$te
717e0 78 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 xt.=.array();..if.($this->getArg
71800 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e uments()).{.$text[].=.'<comment>
71820 41 72 67 75 6d 65 6e 74 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 66 6f 72 65 61 63 68 20 28 Arguments:</comment>';.foreach.(
71840 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 72 67 75 6d 65 $this->getArguments().as.$argume
71860 6e 74 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 nt).{.if.(null.!==.$argument->ge
71880 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 61 72 67 75 6d 65 tDefault().&&.(!is_array($argume
718a0 6e 74 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 61 72 67 75 nt->getDefault()).||.count($argu
718c0 6d 65 6e 74 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 ment->getDefault()))).{.$default
718e0 20 3d 20 73 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 .=.sprintf('<comment>.(default:.
71900 25 73 29 3c 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 %s)</comment>',.$this->formatDef
71920 61 75 6c 74 56 61 6c 75 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 aultValue($argument->getDefault(
71940 29 29 29 3b 0a 7d 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 )));.}.else.{.$default.=.'';.}..
71960 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c $description.=.str_replace("\n",
71980 20 22 5c 6e 22 2e 73 74 72 5f 70 61 64 28 27 27 2c 20 24 6d 61 78 20 2b 20 32 2c 20 27 20 27 29 ."\n".str_pad('',.$max.+.2,.'.')
719a0 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a ,.$argument->getDescription());.
719c0 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 2d 24 7b 6d .$text[].=.sprintf(".<info>%-${m
719e0 61 78 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 25 73 22 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 ax}s</info>.%s%s",.$argument->ge
71a00 74 4e 61 6d 65 28 29 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 tName(),.$description,.$default)
71a20 3b 0a 7d 0a 0a 24 74 65 78 74 5b 5d 20 3d 20 27 27 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d ;.}..$text[].=.'';.}..if.($this-
71a40 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 65 78 74 5b 5d 20 3d 20 27 3c 63 6f 6d >getOptions()).{.$text[].=.'<com
71a60 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 0a 66 6f 72 65 61 ment>Options:</comment>';..forea
71a80 63 68 20 28 24 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 ch.($this->getOptions().as.$opti
71aa0 6f 6e 29 20 7b 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 on).{.if.($option->acceptValue()
71ac0 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 .&&.null.!==.$option->getDefault
71ae0 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 ().&&.(!is_array($option->getDef
71b00 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 ault()).||.count($option->getDef
71b20 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 ault()))).{.$default.=.sprintf('
71b40 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 <comment>.(default:.%s)</comment
71b60 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 6f >',.$this->formatDefaultValue($o
71b80 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ption->getDefault()));.}.else.{.
71ba0 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 70 6c 65 20 3d 20 24 6f $default.=.'';.}..$multiple.=.$o
71bc0 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 6d ption->isArray().?.'<comment>.(m
71be0 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73 20 61 6c 6c 6f 77 65 64 29 3c 2f 63 6f 6d 6d 65 6e 74 ultiple.values.allowed)</comment
71c00 3e 27 20 3a 20 27 27 3b 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
71c20 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 70 61 64 28 27 27 2c 20 24 6d 61 78 20 ace("\n",."\n".str_pad('',.$max.
71c40 2b 20 32 2c 20 27 20 27 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 +.2,.'.'),.$option->getDescripti
71c60 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 20 2d 20 73 74 72 6c on());..$optionMax.=.$max.-.strl
71c80 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 32 3b 0a 24 74 65 78 en($option->getName()).-.2;.$tex
71ca0 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 2f 69 6e 66 6f 3e 20 t[].=.sprintf(".<info>%s</info>.
71cc0 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 2d 2d 27 2e 24 6f 70 %-${optionMax}s%s%s%s",.'--'.$op
71ce0 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 3e 67 65 74 53 68 6f tion->getName(),.$option->getSho
71d00 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 27 2c 20 24 6f 70 74 rtcut().?.sprintf('(-%s).',.$opt
71d20 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 0a 24 64 65 73 63 72 ion->getShortcut()).:.'',.$descr
71d40 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 6c 65 0a 29 3b 0a 7d iption,.$default,.$multiple.);.}
71d60 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 20 69 6d 70 6c 6f 64 ..$text[].=.'';.}..return.implod
71d80 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 0a 70 75 62 6c 69 63 e("\n",.$text);.}.........public
71da0 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 66 61 6c 73 65 29 0a .function.asXml($asDom.=.false).
71dc0 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 28 27 31 2e 30 27 2c {.$dom.=.new.\DOMDocument('1.0',
71de0 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 20 3d 20 .'UTF-8');.$dom->formatOutput.=.
71e00 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 64 65 66 69 6e 69 74 true;.$dom->appendChild($definit
71e20 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 74 28 27 64 65 ionXML.=.$dom->createElement('de
71e40 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 58 4d 4c 2d 3e 61 70 finition'));..$definitionXML->ap
71e60 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 20 24 64 6f 6d 2d 3e pendChild($argumentsXML.=.$dom->
71e80 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 29 29 3b 0a 66 6f 72 createElement('arguments'));.for
71ea0 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 73 20 24 each.($this->getArguments().as.$
71ec0 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 2d 3e 61 70 70 65 6e argument).{.$argumentsXML->appen
71ee0 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 6d 2d 3e 63 72 65 61 dChild($argumentXML.=.$dom->crea
71f00 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 61 72 67 75 6d 65 6e teElement('argument'));.$argumen
71f20 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 2c 20 24 61 72 67 75 tXML->setAttribute('name',.$argu
71f40 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 6e 74 58 4d 4c 2d 3e ment->getName());.$argumentXML->
71f60 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 27 2c 20 24 61 72 67 setAttribute('is_required',.$arg
71f80 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 20 30 29 3b 0a 24 61 ument->isRequired().?.1.:.0);.$a
71fa0 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 69 73 5f 61 72 72 rgumentXML->setAttribute('is_arr
71fc0 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 20 3f 20 31 20 3a 20 ay',.$argument->isArray().?.1.:.
71fe0 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 68 69 6c 64 28 24 64 0);.$argumentXML->appendChild($d
72000 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 61 74 65 45 6c 65 6d escriptionXML.=.$dom->createElem
72020 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 63 72 69 70 74 69 6f ent('description'));.$descriptio
72040 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 72 65 61 74 65 54 65 nXML->appendChild($dom->createTe
72060 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 72 69 70 74 69 6f 6e xtNode($argument->getDescription
72080 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 6e 64 43 68 69 6c 64 ()));..$argumentXML->appendChild
720a0 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 61 74 65 45 6c 65 6d ($defaultsXML.=.$dom->createElem
720c0 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 74 73 20 3d 20 69 73 ent('defaults'));.$defaults.=.is
720e0 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 75 6c 74 28 29 29 20 _array($argument->getDefault()).
72100 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 20 3a 20 28 69 73 5f ?.$argument->getDefault().:.(is_
72120 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 74 28 29 29 20 3f 20 bool($argument->getDefault()).?.
72140 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 74 2d 3e 67 65 74 44 array(var_export($argument->getD
72160 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 6d 65 6e 74 2d 3e 67 efault(),.true)).:.($argument->g
72180 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 6d 65 6e 74 2d 3e 67 etDefault().?.array($argument->g
721a0 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 0a 66 6f 72 65 61 63 etDefault()).:.array()));.foreac
721c0 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 20 7b 0a 24 64 65 66 h.($defaults.as.$default).{.$def
721e0 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 66 61 75 6c 74 58 4d aultsXML->appendChild($defaultXM
72200 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 61 75 6c 74 L.=.$dom->createElement('default
72220 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 68 69 6c 64 28 24 64 '));.$defaultXML->appendChild($d
72240 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 6c 74 29 29 3b 0a 7d om->createTextNode($default));.}
72260 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 64 43 68 69 6c 64 28 .}..$definitionXML->appendChild(
72280 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 65 45 6c 65 6d 65 6e $optionsXML.=.$dom->createElemen
722a0 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 74 68 69 73 2d 3e 67 t('options'));.foreach.($this->g
722c0 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 6f 70 74 69 6f etOptions().as.$option).{.$optio
722e0 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 6e 58 4d 4c 20 3d 20 nsXML->appendChild($optionXML.=.
72300 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 6f 6e 27 29 29 3b 0a $dom->createElement('option'));.
72320 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 6e 61 6d 65 27 2c $optionXML->setAttribute('name',
72340 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 3b 0a 24 6f 70 74 69 .'--'.$option->getName());.$opti
72360 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 74 63 75 74 27 2c 20 onXML->setAttribute('shortcut',.
72380 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 27 2d 27 2e 24 6f 70 $option->getShortcut().?.'-'.$op
723a0 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 3b 0a 24 6f 70 74 69 tion->getShortcut().:.'');.$opti
723c0 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 70 74 5f 76 61 6c 75 onXML->setAttribute('accept_valu
723e0 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 29 20 3f 20 31 20 3a e',.$option->acceptValue().?.1.:
72400 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 62 75 74 65 28 27 69 .0);.$optionXML->setAttribute('i
72420 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 6e 2d 3e 69 73 56 61 s_value_required',.$option->isVa
72440 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 6f 70 74 69 6f 6e 58 lueRequired().?.1.:.0);.$optionX
72460 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 69 70 6c 65 27 2c 20 ML->setAttribute('is_multiple',.
72480 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 30 29 3b 0a 24 6f 70 $option->isArray().?.1.:.0);.$op
724a0 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 63 72 69 70 74 69 6f tionXML->appendChild($descriptio
724c0 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 64 65 73 63 nXML.=.$dom->createElement('desc
724e0 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 4d 4c 2d 3e 61 70 70 ription'));.$descriptionXML->app
72500 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 6f endChild($dom->createTextNode($o
72520 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 3b 0a 0a 69 66 20 28 ption->getDescription()));..if.(
72540 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 0a 24 6f 70 74 69 6f $option->acceptValue()).{.$optio
72560 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 74 73 58 4d 4c 20 3d nXML->appendChild($defaultsXML.=
72580 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 61 75 6c 74 73 27 29 .$dom->createElement('defaults')
725a0 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 6f 70 74 69 6f 6e 2d );.$defaults.=.is_array($option-
725c0 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 3e 67 65 74 44 65 66 >getDefault()).?.$option->getDef
725e0 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 2d 3e 67 65 74 44 65 ault().:.(is_bool($option->getDe
72600 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 72 74 28 24 6f 70 74 fault()).?.array(var_export($opt
72620 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 20 3a 20 28 24 6f 70 ion->getDefault(),.true)).:.($op
72640 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 79 28 24 6f 70 74 69 tion->getDefault().?.array($opti
72660 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 28 29 29 29 3b 0a 66 on->getDefault()).:.array()));.f
72680 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 20 7b oreach.($defaults.as.$default).{
726a0 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 66 61 .$defaultsXML->appendChild($defa
726c0 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 64 65 ultXML.=.$dom->createElement('de
726e0 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 68 69 fault'));.$defaultXML->appendChi
72700 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 6c 74 ld($dom->createTextNode($default
72720 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 3f 20 24 64 6f 6d 20 ));.}.}.}..return.$asDom.?.$dom.
72740 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 76 61 74 65 20 66 75 :.$dom->saveXml();.}..private.fu
72760 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 28 24 64 65 66 61 75 nction.formatDefaultValue($defau
72780 6c 74 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 20 26 26 20 lt).{.if.(is_array($default).&&.
727a0 24 64 65 66 61 75 6c 74 20 3d 3d 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 66 61 75 $default.===.array_values($defau
727c0 6c 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 61 72 72 61 79 28 27 25 73 lt)).{.return.sprintf("array('%s
727e0 27 29 22 2c 20 69 6d 70 6c 6f 64 65 28 22 27 2c 20 27 22 2c 20 24 64 65 66 61 75 6c 74 29 29 3b ')",.implode("',.'",.$default));
72800 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c .}..return.str_replace("\n",.'',
72820 20 76 61 72 5f 65 78 70 6f 72 74 28 24 64 65 66 61 75 6c 74 2c 20 74 72 75 65 29 29 3b 0a 7d 0a .var_export($default,.true));.}.
72840 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
72860 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 73 65 20 53 79 6d 66 ony\Component\Console;..use.Symf
72880 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
728a0 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
728c0 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 79 6d 66 6f 6e 79 5c \Input\StringInput;.use.Symfony\
728e0 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 43 6f 6e 73 6f 6c 65 Component\Console\Output\Console
72900 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 6e 65 6e 74 5c 50 72 Output;.use.Symfony\Component\Pr
72920 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 20 53 79 6d 66 6f 6e ocess\ProcessBuilder;.use.Symfon
72940 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 65 63 75 74 61 62 6c y\Component\Process\PhpExecutabl
72960 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 53 68 65 6c 6c 0a 7b eFinder;...........class.Shell.{
72980 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 24 .private.$application;.private.$
729a0 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 0a 70 72 69 76 61 74 history;.private.$output;.privat
729c0 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 70 72 6f 6d 70 74 3b e.$hasReadline;.private.$prompt;
729e0 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 6e 3b 0a 0a 0a 0a 0a .private.$processIsolation;.....
72a00 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 74 .....public.function.__construct
72a20 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 29 0a 7b 0a 24 74 68 (Application.$application).{.$th
72a40 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 6e 5f 65 78 69 73 74 is->hasReadline.=.function_exist
72a60 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 6c 69 63 61 74 69 6f s('readline');.$this->applicatio
72a80 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 68 69 73 74 6f 72 79 n.=.$application;.$this->history
72aa0 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 6f 72 79 5f 27 2e 24 .=.getenv('HOME').'/.history_'.$
72ac0 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 74 68 69 73 2d 3e 6f application->getName();.$this->o
72ae0 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 29 3b 0a 24 74 68 utput.=.new.ConsoleOutput();.$th
72b00 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 2d 3e 67 65 74 4e 61 is->prompt.=.$application->getNa
72b20 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 73 49 73 6f 6c 61 74 me().'.>.';.$this->processIsolat
72b40 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 20 66 75 6e 63 74 69 ion.=.false;.}.....public.functi
72b60 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 74 69 6f 6e 2d 3e 73 on.run().{.$this->application->s
72b80 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 3e 61 70 70 6c 69 63 etAutoExit(false);.$this->applic
72ba0 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 28 74 72 75 65 29 3b ation->setCatchExceptions(true);
72bc0 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 7b 0a 72 65 61 64 ..if.($this->hasReadline).{.read
72be0 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 68 69 73 74 6f 72 79 line_read_history($this->history
72c00 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 6e 63 74 69 6f 6e 28 );.readline_completion_function(
72c20 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 65 72 27 29 29 3b 0a array($this,.'autocompleter'));.
72c40 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 28 24 74 68 69 73 2d }..$this->output->writeln($this-
72c60 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 6c 3b 0a 69 66 20 28 >getHeader());.$php.=.null;.if.(
72c80 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 7b 0a 24 66 69 6e 64 $this->processIsolation).{.$find
72ca0 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 64 65 72 28 29 3b 0a er.=.new.PhpExecutableFinder();.
72cc0 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 74 68 69 73 2d 3e 6f $php.=.$finder->find();.$this->o
72ce0 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 66 6f 3e 52 75 6e 6e utput->writeln(<<<EOF.<info>Runn
72d00 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 6e 2c 20 79 6f 75 20 ing.with.process.isolation,.you.
72d20 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 66 6f 3e 0a 20 20 2a should.consider.this:</info>...*
72d40 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 20 61 73 20 73 65 70 .each.command.is.executed.as.sep
72d60 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 64 73 20 64 6f 6e 27 arate.process,...*.commands.don'
72d80 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 61 6c 6c 20 70 61 72 t.support.interactivity,.all.par
72da0 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 69 74 6c 79 2c 0a 20 ams.must.be.passed.explicitly,..
72dc0 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 20 63 6f 6c 6f 72 69 .*.commands.output.is.not.colori
72de0 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 75 65 29 20 7b 0a 24 zed...EOF.);.}..while.(true).{.$
72e00 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 28 29 3b 0a 0a 69 66 command.=.$this->readline();..if
72e20 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 74 68 69 73 2d 3e 6f .(false.===.$command).{.$this->o
72e40 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 65 61 6b 3b 0a 7d 0a utput->writeln("\n");..break;.}.
72e60 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 7b 0a 72 65 61 64 6c .if.($this->hasReadline).{.readl
72e80 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 3b 0a 72 65 61 64 6c ine_add_history($command);.readl
72ea0 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 68 69 73 74 6f 72 79 ine_write_history($this->history
72ec0 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 73 6f 6c 61 74 69 6f );.}..if.($this->processIsolatio
72ee0 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 6c 64 65 72 28 29 3b n).{.$pb.=.new.ProcessBuilder();
72f00 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 68 70 29 0a 2d 3e 61 ..$process.=.$pb.->add($php).->a
72f20 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 3e 61 64 64 28 24 63 dd($_SERVER['argv'][0]).->add($c
72f40 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 65 6e 74 56 61 72 69 ommand).->inheritEnvironmentVari
72f60 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 29 0a 3b 0a 0a 24 6f ables(true).->getProcess().;..$o
72f80 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 72 6f 63 65 73 73 2d utput.=.$this->output;.$process-
72fa0 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 61 29 20 75 73 65 20 >run(function($type,.$data).use.
72fc0 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 65 6c 6e 28 24 64 61 ($output).{.$output->writeln($da
72fe0 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 2d 3e 67 65 74 45 78 ta);.});..$ret.=.$process->getEx
73000 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 20 24 74 68 69 73 2d itCode();.}.else.{.$ret.=.$this-
73020 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 69 6e 67 49 6e 70 75 >application->run(new.StringInpu
73040 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 74 29 3b 0a 7d 0a 0a t($command),.$this->output);.}..
73060 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 6f 75 74 70 75 74 2d if.(0.!==.$ret).{.$this->output-
73080 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 54 68 65 20 63 6f 6d >writeln(sprintf('<error>The.com
730a0 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 72 72 6f 72 20 73 74 mand.terminated.with.an.error.st
730c0 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 29 3b 0a 7d 0a 7d 0a atus.(%s)</error>',.$ret));.}.}.
730e0 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 48 65 }.......protected.function.getHe
73100 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 65 6c 63 6f 6d 65 20 ader().{.return.<<<EOF..Welcome.
73120 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 69 63 61 74 69 6f 6e to.the.<info>{$this->application
73140 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 20 28 3c 63 6f 6d 6d ->getName()}</info>.shell.(<comm
73160 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 67 65 74 56 65 72 73 ent>{$this->application->getVers
73180 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 65 20 70 72 6f 6d 70 ion()}</comment>)...At.the.promp
731a0 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 6d 6d 65 6e 74 3e 20 t,.type.<comment>help</comment>.
731c0 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 74 3e 6c 69 73 74 3c for.some.help,.or.<comment>list<
731e0 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 66 20 61 76 61 69 6c /comment>.to.get.a.list.of.avail
73200 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 68 65 20 73 68 65 6c able.commands...To.exit.the.shel
73220 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 65 6e 74 3e 2e 0a 0a l,.type.<comment>^D</comment>...
73240 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 6e 63 74 69 6f 6e 20 EOF;.}.........private.function.
73260 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 6e 66 6f 20 3d 20 72 autocompleter($text).{.$info.=.r
73280 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 75 62 73 74 72 28 24 eadline_info();.$text.=.substr($
732a0 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 69 6e 66 6f 5b 27 65 info['line_buffer'],.0,.$info['e
732c0 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 5d 20 21 3d 3d 20 24 nd']);..if.($info['point'].!==.$
732e0 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 65 3b 0a 7d 0a 0a 0a info['end']).{.return.true;.}...
73300 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 78 74 2c 20 27 20 27 .if.(false.===.strpos($text,.'.'
73320 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 61 79 5f 6b 65 79 73 ).||.!$text).{.return.array_keys
73340 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 29 29 3b 0a 7d 0a 0a ($this->application->all());.}..
73360 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 3e 61 70 70 6c 69 63 ..try.{.$command.=.$this->applic
73380 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 20 30 2c 20 73 74 72 ation->find(substr($text,.0,.str
733a0 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 68 20 28 5c 45 78 63 pos($text,.'.')));.}.catch.(\Exc
733c0 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 0a 7d 0a 0a 24 6c 69 eption.$e).{.return.true;.}..$li
733e0 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 65 61 63 68 20 28 24 st.=.array('--help');.foreach.($
73400 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 3e 67 65 74 4f 70 74 command->getDefinition()->getOpt
73420 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 74 5b 5d 20 3d 20 27 ions().as.$option).{.$list[].=.'
73440 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 0a 0a 72 65 74 75 72 --'.$option->getName();.}..retur
73460 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 66 75 6e 63 74 69 6f n.$list;.}.......private.functio
73480 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 3e 68 61 73 52 65 61 n.readline().{.if.($this->hasRea
734a0 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 28 24 74 68 69 73 2d dline).{.$line.=.readline($this-
734c0 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 3e 6f 75 74 70 75 74 >prompt);.}.else.{.$this->output
734e0 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 6c 69 6e 65 20 3d 20 ->write($this->prompt);.$line.=.
73500 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 20 3d 20 28 21 24 6c fgets(STDIN,.1024);.$line.=.(!$l
73520 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 29 20 3f 20 66 61 6c ine.&&.strlen($line).==.0).?.fal
73540 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 75 72 6e 20 24 6c 69 se.:.rtrim($line);.}..return.$li
73560 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 74 50 72 6f 63 65 73 ne;.}..public.function.getProces
73580 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 69 73 2d 3e 70 72 6f sIsolation().{.return.$this->pro
735a0 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 66 75 6e 63 74 69 6f cessIsolation;.}..public.functio
735c0 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 6f 63 65 73 73 49 73 n.setProcessIsolation($processIs
735e0 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 49 73 6f 6c 61 74 69 olation).{.$this->processIsolati
73600 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 6f 6c 61 74 69 6f 6e on.=.(Boolean).$processIsolation
73620 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 20 ;.}.}.<?php...........namespace.
73640 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
73660 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
73680 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 49 6e 74 65 72 66 \Formatter\OutputFormatterInterf
736a0 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 73 6f ace;.use.Symfony\Component\Conso
736c0 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 3b 0a 0a 0a le\Formatter\OutputFormatter;...
736e0 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 73 20 4f 75 74 70 75 ............abstract.class.Outpu
73700 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 61 63 65 0a 7b 0a 70 t.implements.OutputInterface.{.p
73720 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 65 20 24 66 6f 72 6d rivate.$verbosity;.private.$form
73740 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 75 6e 63 74 69 6f 6e atter;...........public.function
73760 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 20 73 65 6c 66 3a 3a .__construct($verbosity.=.self::
73780 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 74 65 64 20 3d 20 6e VERBOSITY_NORMAL,.$decorated.=.n
737a0 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 66 61 63 65 20 24 66 ull,.OutputFormatterInterface.$f
737c0 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 3e 76 65 72 62 6f 73 ormatter.=.null).{.$this->verbos
737e0 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 20 3f 20 73 65 6c 66 ity.=.null.===.$verbosity.?.self
73800 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 62 6f 73 69 74 79 3b ::VERBOSITY_NORMAL.:.$verbosity;
73820 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 3d 3d 3d 20 24 66 6f .$this->formatter.=.null.===.$fo
73840 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 74 74 65 72 28 29 20 rmatter.?.new.OutputFormatter().
73860 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 61 74 74 65 72 2d 3e :.$formatter;.$this->formatter->
73880 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 61 74 65 setDecorated((Boolean).$decorate
738a0 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 20 73 65 d);.}.........public.function.se
738c0 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 72 49 6e 74 65 72 66 tFormatter(OutputFormatterInterf
738e0 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 66 6f 72 6d 61 74 74 ace.$formatter).{.$this->formatt
73900 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 0a 0a 70 75 62 6c 69 er.=.$formatter;.}.........publi
73920 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 0a 7b 0a 72 65 74 75 c.function.getFormatter().{.retu
73940 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 0a 0a 0a 0a 0a 0a 70 rn.$this->formatter;.}.........p
73960 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 64 65 63 ublic.function.setDecorated($dec
73980 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 72 2d 3e 73 65 74 44 orated).{.$this->formatter->setD
739a0 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 61 74 65 64 29 3b 0a ecorated((Boolean).$decorated);.
739c0 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 69 73 44 65 63 6f }.........public.function.isDeco
739e0 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 6f 72 6d 61 74 74 65 rated().{.return.$this->formatte
73a00 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 0a 0a 0a 70 75 62 6c r->isDecorated();.}.........publ
73a20 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 24 6c 65 76 65 6c 29 ic.function.setVerbosity($level)
73a40 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 74 29 20 24 6c 65 76 .{.$this->verbosity.=.(int).$lev
73a60 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 74 69 6f 6e 20 67 65 el;.}.........public.function.ge
73a80 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 69 73 2d 3e 76 65 72 tVerbosity().{.return.$this->ver
73aa0 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 20 66 75 6e 63 74 69 bosity;.}..........public.functi
73ac0 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 70 65 20 3d 20 30 29 on.writeln($messages,.$type.=.0)
73ae0 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 2c 20 74 72 75 65 2c .{.$this->write($messages,.true,
73b00 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 62 6c 69 63 20 66 75 .$type);.}.............public.fu
73b20 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 65 nction.write($messages,.$newline
73b40 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 20 28 73 65 6c 66 3a .=.false,.$type.=.0).{.if.(self:
73b60 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 73 2d 3e 76 65 72 62 :VERBOSITY_QUIET.===.$this->verb
73b80 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 61 67 65 73 20 3d 20 osity).{.return;.}..$messages.=.
73ba0 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 63 68 20 28 24 6d 65 (array).$messages;..foreach.($me
73bc0 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 74 63 68 20 28 24 74 ssages.as.$message).{.switch.($t
73be0 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 63 65 3a 3a 4f 55 54 ype).{.case.OutputInterface::OUT
73c00 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 68 69 73 2d 3e 66 6f PUT_NORMAL:.$message.=.$this->fo
73c20 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 3b 0a 62 72 65 61 6b rmatter->format($message);.break
73c40 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 55 54 50 55 54 5f 52 ;.case.OutputInterface::OUTPUT_R
73c60 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 65 72 66 61 63 65 3a AW:.break;.case.OutputInterface:
73c80 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 20 73 74 72 69 70 5f :OUTPUT_PLAIN:.$message.=.strip_
73ca0 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 72 6d 61 74 28 24 6d tags($this->formatter->format($m
73cc0 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 0a 74 68 72 6f 77 20 essage));.break;.default:.throw.
73ce0 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
73d00 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 65 20 67 69 76 65 6e rintf('Unknown.output.type.given
73d20 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 2d 3e 64 6f 57 72 69 .(%s)',.$type));.}..$this->doWri
73d40 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 0a 7d 0a 0a 0a 0a 0a te($message,.$newline);.}.}.....
73d60 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 6f 6e 20 64 ...abstract.protected.function.d
73d80 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 0a 3c 3f oWrite($message,.$newline);.}.<?
73da0 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\
73dc0 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 0a 0a 0a 0a 0a 0a 0a Component\Console\Output;.......
73de0 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 6e 64 73 20 4f 75 74 ....class.NullOutput.extends.Out
73e00 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 63 74 69 6f 6e 20 64 put.{.......protected.function.d
73e20 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 0a 7b 0a 7d 0a 7d oWrite($message,.$newline).{.}.}
73e40 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
73e60 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 0a 0a 75 73 ny\Component\Console\Output;..us
73e80 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
73ea0 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 0a 69 6e 74 65 72 ut\OutputInterface;........inter
73ec0 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 63 65 20 65 78 74 65 face.ConsoleOutputInterface.exte
73ee0 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 70 75 62 6c 69 63 20 nds.OutputInterface.{....public.
73f00 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 3b 0a 0a 70 75 62 6c function.getErrorOutput();..publ
73f20 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 74 28 4f 75 74 70 75 ic.function.setErrorOutput(Outpu
73f40 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 68 70 0a 0a 0a 0a 0a tInterface.$error);.}.<?php.....
73f60 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
73f80 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 6d 66 6f 6e 79 5c 43 t\Console\Output;..use.Symfony\C
73fa0 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
73fc0 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 0a 0a 0a 0a 0a 0a 0a tFormatterInterface;............
73fe0 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 78 74 65 6e 64 73 20 .....class.StreamOutput.extends.
74000 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 0a 0a 0a 0a 0a 0a 0a Output.{.private.$stream;.......
74020 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
74040 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 20 73 65 6c 66 3a 3a uct($stream,.$verbosity.=.self::
74060 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 74 65 64 20 3d 20 6e VERBOSITY_NORMAL,.$decorated.=.n
74080 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 66 61 63 65 20 24 66 ull,.OutputFormatterInterface.$f
740a0 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 73 5f 72 65 73 6f 75 ormatter.=.null).{.if.(!is_resou
740c0 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 21 3d 3d 20 67 65 74 rce($stream).||.'stream'.!==.get
740e0 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 7b 0a 74 68 72 6f 77 _resource_type($stream)).{.throw
74100 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 27 .new.\InvalidArgumentException('
74120 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 65 64 73 20 61 20 73 The.StreamOutput.class.needs.a.s
74140 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 6e 74 2e 27 29 3b 0a tream.as.its.first.argument.');.
74160 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 6d 3b 0a 0a 69 66 20 }..$this->stream.=.$stream;..if.
74180 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 64 65 63 6f 72 61 74 (null.===.$decorated).{.$decorat
741a0 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 72 74 28 24 64 65 63 ed.=.$this->hasColorSupport($dec
741c0 6f 72 61 74 65 64 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 orated);.}..parent::__construct(
741e0 24 76 65 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 $verbosity,.$decorated,.$formatt
74200 65 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 67 65 74 er);.}.......public.function.get
74220 53 74 72 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 Stream().{.return.$this->stream;
74240 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 20 64 .}..........protected.function.d
74260 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 0a 7b 0a 69 66 20 oWrite($message,.$newline).{.if.
74280 28 66 61 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 (false.===.@fwrite($this->stream
742a0 2c 20 24 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 ,.$message.($newline.?.PHP_EOL.:
742c0 20 27 27 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 .''))).{.....throw.new.\RuntimeE
742e0 78 63 65 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 xception('Unable.to.write.output
74300 2e 27 29 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 .');...}..fflush($this->stream);
74320 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 6f 6e .}............protected.function
74340 20 68 61 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 .hasColorSupport().{...if.(DIREC
74360 54 4f 52 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 TORY_SEPARATOR.==.'\\').{.return
74380 20 66 61 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 3b 0a 7d 0a .false.!==.getenv('ANSICON');.}.
743a0 0a 72 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 .return.function_exists('posix_i
743c0 73 61 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 satty').&&.@posix_isatty($this->
743e0 73 74 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 stream);...}.}.<?php...........n
74400 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
74420 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 6f 6e 65 6e le\Output;..use.Symfony\Componen
74440 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
74460 74 65 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 terInterface;.........interface.
74480 4f 75 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 OutputInterface.{.const.VERBOSIT
744a0 59 5f 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 Y_QUIET.=.0;.const.VERBOSITY_NOR
744c0 4d 41 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 MAL.=.1;.const.VERBOSITY_VERBOSE
744e0 20 3d 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 .=.2;..const.OUTPUT_NORMAL.=.0;.
74500 63 6f 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 const.OUTPUT_RAW.=.1;.const.OUTP
74520 55 54 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 UT_PLAIN.=.2;.............functi
74540 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 20 66 on.write($messages,.$newline.=.f
74560 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 66 75 6e 63 74 alse,.$type.=.0);..........funct
74580 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 70 65 20 3d 20 30 ion.writeln($messages,.$type.=.0
745a0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 );.........function.setVerbosity
745c0 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 ($level);.........function.getVe
745e0 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 rbosity();.........function.setD
74600 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 66 75 ecorated($decorated);.........fu
74620 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 0a 66 75 nction.isDecorated();.........fu
74640 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 72 6d 61 74 nction.setFormatter(OutputFormat
74660 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a terInterface.$formatter);.......
74680 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 3c 3f 70 ..function.getFormatter();.}.<?p
746a0 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
746c0 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
746e0 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
74700 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 r\OutputFormatter;.use.Symfony\C
74720 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
74740 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 tFormatterInterface;.use.Symfony
74760 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 43 6f 6e 73 6f 6c \Component\Console\Output\Consol
74780 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eOutputInterface;...............
747a0 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 ..class.ConsoleOutput.extends.St
747c0 72 65 61 6d 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 reamOutput.implements.ConsoleOut
747e0 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a putInterface.{.private.$stderr;.
74800 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 6e ...........public.function.__con
74820 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 struct($verbosity.=.self::VERBOS
74840 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f ITY_NORMAL,.$decorated.=.null,.O
74860 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 6d 61 74 74 utputFormatterInterface.$formatt
74880 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 er.=.null).{.$outputStream.=.'ph
748a0 70 3a 2f 2f 73 74 64 6f 75 74 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 64 6f p://stdout';.if.(!$this->hasStdo
748c0 75 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 utSupport()).{.$outputStream.=.'
748e0 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 php://output';.}..parent::__cons
74900 74 72 75 63 74 28 66 6f 70 65 6e 28 24 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 29 2c truct(fopen($outputStream,.'w'),
74920 20 24 76 65 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 .$verbosity,.$decorated,.$format
74940 74 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 6e 65 77 20 53 74 72 65 61 ter);..$this->stderr.=.new.Strea
74960 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 mOutput(fopen('php://stderr',.'w
74980 27 29 2c 20 24 76 65 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 '),.$verbosity,.$decorated,.$for
749a0 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 44 matter);.}..public.function.setD
749c0 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 ecorated($decorated).{.parent::s
749e0 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 24 74 68 69 73 2d 3e etDecorated($decorated);.$this->
74a00 73 74 64 65 72 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 stderr->setDecorated($decorated)
74a20 3b 0a 7d 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 65 ;.}..public.function.setFormatte
74a40 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 6d r(OutputFormatterInterface.$form
74a60 61 74 74 65 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 atter).{.parent::setFormatter($f
74a80 6f 72 6d 61 74 74 65 72 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 6f 72 ormatter);.$this->stderr->setFor
74aa0 6d 61 74 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 matter($formatter);.}..public.fu
74ac0 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 0a 7b 0a 70 61 nction.setVerbosity($level).{.pa
74ae0 72 65 6e 74 3a 3a 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 rent::setVerbosity($level);.$thi
74b00 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b s->stderr->setVerbosity($level);
74b20 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 45 72 72 6f 72 4f .}.....public.function.getErrorO
74b40 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a utput().{.return.$this->stderr;.
74b60 7d 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
74b80 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 0a 7b 0a 24 74 68 69 t(OutputInterface.$error).{.$thi
74ba0 73 2d 3e 73 74 64 65 72 72 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s->stderr.=.$error;.}...........
74bc0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 64 6f 75 74 53 75 70 .protected.function.hasStdoutSup
74be0 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 27 4f 53 34 30 30 27 20 21 3d 20 70 68 70 5f port().{.return.('OS400'.!=.php_
74c00 75 6e 61 6d 65 28 27 73 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a uname('s'));.}.}.<?php..........
74c20 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 6e .namespace.Symfony\Component\Con
74c40 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 48 sole\Helper;.........interface.H
74c60 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e elperInterface.{........function
74c80 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 72 53 .setHelperSet(HelperSet.$helperS
74ca0 65 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 74 et.=.null);.........function.get
74cc0 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 67 65 HelperSet();.........function.ge
74ce0 74 4e 61 6d 65 28 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 tName();.}.<?php...........names
74d00 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 48 pace.Symfony\Component\Console\H
74d20 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 elper;.......class.FormatterHelp
74d40 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 0a 0a 70 75 62 er.extends.Helper.{..........pub
74d60 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 24 73 65 63 74 lic.function.formatSection($sect
74d80 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 66 6f 27 29 0a ion,.$message,.$style.=.'info').
74da0 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 2f 25 73 3e 20 {.return.sprintf('<%s>[%s]</%s>.
74dc0 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 6c 65 2c 20 24 %s',.$style,.$section,.$style,.$
74de0 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 63 20 66 75 6e message);.}...........public.fun
74e00 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 2c 20 24 73 74 ction.formatBlock($messages,.$st
74e20 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 73 61 67 65 73 yle,.$large.=.false).{.$messages
74e40 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 20 3d 20 30 3b .=.(array).$messages;..$len.=.0;
74e60 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 28 24 6d 65 73 .$lines.=.array();.foreach.($mes
74e80 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 sages.as.$message).{.$lines[].=.
74ea0 73 70 72 69 6e 74 66 28 24 6c 61 72 67 65 20 3f 20 27 20 20 25 73 20 20 27 20 3a 20 27 20 25 73 sprintf($large.?.'..%s..'.:.'.%s
74ec0 20 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 74 68 69 73 2d .',.$message);.$len.=.max($this-
74ee0 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 20 2b 20 28 24 6c 61 72 67 65 20 3f 20 34 20 >strlen($message).+.($large.?.4.
74f00 3a 20 32 29 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 6c 61 72 :.2),.$len);.}..$messages.=.$lar
74f20 67 65 20 3f 20 61 72 72 61 79 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 ge.?.array(str_repeat('.',.$len)
74f40 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 ).:.array();.foreach.($lines.as.
74f60 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 74 72 $line).{.$messages[].=.$line.str
74f80 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 _repeat('.',.$len.-.$this->strle
74fa0 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a 69 66 20 28 24 6c 61 72 67 65 29 20 7b 0a 24 6d 65 73 73 n($line));.}.if.($large).{.$mess
74fc0 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a ages[].=.str_repeat('.',.$len);.
74fe0 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 26 24 6d 65 73 73 61 }..foreach.($messages.as.&$messa
75000 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 ge).{.$message.=.sprintf('<%s>%s
75020 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c 65 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 </%s>',.$style,.$message,.$style
75040 29 3b 0a 7d 0a 0a 72 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 );.}..return.implode("\n",.$mess
75060 61 67 65 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 ages);.}.........private.functio
75080 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f n.strlen($string).{.if.(!functio
750a0 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 n_exists('mb_strlen')).{.return.
750c0 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d strlen($string);.}..if.(false.==
750e0 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 =.$encoding.=.mb_detect_encoding
75100 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 ($string)).{.return.strlen($stri
75120 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 ng);.}..return.mb_strlen($string
75140 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ,.$encoding);.}.......public.fun
75160 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 27 66 6f 72 6d 61 74 ction.getName().{.return.'format
75180 74 65 72 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 ter';.}.}.<?php...........namesp
751a0 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 48 65 ace.Symfony\Component\Console\He
751c0 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 43 6f 6e lper;..use.Symfony\Component\Con
751e0 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 0a 0a 0a 63 6c 61 73 sole\Command\Command;.......clas
75200 73 20 48 65 6c 70 65 72 53 65 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 73 3b 0a s.HelperSet.{.private.$helpers;.
75220 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 private.$command;.......public.f
75240 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 68 65 6c 70 65 unction.__construct(array.$helpe
75260 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 20 3d rs.=.array()).{.$this->helpers.=
75280 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 6c 70 65 72 73 20 61 73 20 24 .array();.foreach.($helpers.as.$
752a0 61 6c 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 alias.=>.$helper).{.$this->set($
752c0 68 65 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 helper,.is_int($alias).?.null.:.
752e0 24 61 6c 69 61 73 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 $alias);.}.}........public.funct
75300 69 6f 6e 20 73 65 74 28 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 20 24 68 65 6c 70 65 72 2c ion.set(HelperInterface.$helper,
75320 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 .$alias.=.null).{.$this->helpers
75340 5b 24 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a [$helper->getName()].=.$helper;.
75360 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 if.(null.!==.$alias).{.$this->he
75380 6c 70 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c lpers[$alias].=.$helper;.}..$hel
753a0 70 65 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a per->setHelperSet($this);.}.....
753c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b ....public.function.has($name).{
753e0 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 .return.isset($this->helpers[$na
75400 6d 65 5d 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 69 6f me]);.}...........public.functio
75420 6e 20 67 65 74 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 28 24 n.get($name).{.if.(!$this->has($
75440 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 6d name)).{.throw.new.\InvalidArgum
75460 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 68 65 6c 70 65 72 entException(sprintf('The.helper
75480 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b ."%s".is.not.defined.',.$name));
754a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d .}..return.$this->helpers[$name]
754c0 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 43 6f 6d ;.}.......public.function.setCom
754e0 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a mand(Command.$command.=.null).{.
75500 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 0a $this->command.=.$command;.}....
75520 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 28 29 0a ...public.function.getCommand().
75540 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 3c 3f 70 {.return.$this->command;.}.}.<?p
75560 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
75580 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 20 53 79 omponent\Console\Helper;..use.Sy
755a0 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
755c0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c utputInterface;.......class.Dial
755e0 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 ogHelper.extends.Helper.{.privat
75600 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c e.$inputStream;.............publ
75620 69 63 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 ic.function.ask(OutputInterface.
75640 24 6f 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 $output,.$question,.$default.=.n
75660 75 6c 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 ull).{.$output->write($question)
75680 3b 0a 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 ;..$ret.=.fgets($this->inputStre
756a0 61 6d 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 am.?:.STDIN,.4096);.if.(false.==
756c0 3d 20 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 =.$ret).{.throw.new.\RuntimeExce
756e0 70 74 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 ption('Aborted');.}.$ret.=.trim(
75700 24 72 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 $ret);..return.strlen($ret).>.0.
75720 3f 20 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 ?.$ret.:.$default;.}............
75740 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 74 69 6f 6e .public.function.askConfirmation
75760 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 71 75 65 73 74 (OutputInterface.$output,.$quest
75780 69 6f 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 ion,.$default.=.true).{.$answer.
757a0 3d 20 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 =.'z';.while.($answer.&&.!in_arr
757c0 61 79 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 ay(strtolower($answer[0]),.array
757e0 28 27 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 ('y',.'n'))).{.$answer.=.$this->
75800 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 69 66 20 28 ask($output,.$question);.}..if.(
75820 66 61 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 false.===.$default).{.return.$an
75840 73 77 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 swer.&&.'y'.==.strtolower($answe
75860 72 5b 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 r[0]);.}..return.!$answer.||.'y'
75880 20 3d 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 .==.strtolower($answer[0]);.}...
758a0 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 20 ................public.function.
758c0 61 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 askAndValidate(OutputInterface.$
758e0 6f 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 output,.$question,.$validator,.$
75900 61 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 attempts.=.false,.$default.=.nul
75920 6c 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 l).{.$error.=.null;.while.(false
75940 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b .===.$attempts.||.$attempts--).{
75960 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d .if.(null.!==.$error).{.$output-
75980 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e >writeln($this->getHelperSet()->
759a0 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 get('formatter')->formatBlock($e
759c0 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d rror->getMessage(),.'error'));.}
759e0 0a 0a 24 76 61 6c 75 65 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 ..$value.=.$this->ask($output,.$
75a00 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 74 72 79 20 7b 0a 72 65 74 75 question,.$default);..try.{.retu
75a20 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 20 24 76 rn.call_user_func($validator,.$v
75a40 61 6c 75 65 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 72 72 6f alue);.}.catch.(\Exception.$erro
75a60 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a r).{.}.}..throw.$error;.}.......
75a80 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 53 74 72 65 61 6d ..public.function.setInputStream
75aa0 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3d ($stream).{.$this->inputStream.=
75ac0 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$stream;.}.......public.functio
75ae0 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 n.getInputStream().{.return.$thi
75b00 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s->inputStream;.}.......public.f
75b20 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 27 64 69 61 6c unction.getName().{.return.'dial
75b40 6f 67 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 61 og';.}.}.<?php...........namespa
75b60 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 48 65 6c ce.Symfony\Component\Console\Hel
75b80 70 65 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 per;.......abstract.class.Helper
75ba0 20 69 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 .implements.HelperInterface.{.pr
75bc0 6f 74 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 otected.$helperSet.=.null;......
75be0 0a 70 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 .public.function.setHelperSet(He
75c00 6c 70 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 lperSet.$helperSet.=.null).{.$th
75c20 69 73 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 is->helperSet.=.$helperSet;.}...
75c40 0a 0a 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 ....public.function.getHelperSet
75c60 28 29 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 ().{.return.$this->helperSet;.}.
75c80 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
75ca0 6f 6e 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 ony\Component\Finder;...........
75cc0 0a 0a 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 ......class.Finder.implements.\I
75ce0 74 65 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 teratorAggregate,.\Countable.{.c
75d00 6f 6e 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 onst.IGNORE_VCS_FILES.=.1;.const
75d20 20 49 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 .IGNORE_DOT_FILES.=.2;..private.
75d40 24 6d 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 $mode.=.0;.private.$names.=.arra
75d60 79 28 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 y();.private.$notNames.=.array()
75d80 3b 0a 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 ;.private.$exclude.=.array();.pr
75da0 69 76 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 ivate.$filters.=.array();.privat
75dc0 65 20 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 e.$depths.=.array();.private.$si
75de0 7a 65 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 zes.=.array();.private.$followLi
75e00 6e 6b 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 nks.=.false;.private.$sort.=.fal
75e20 73 65 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 se;.private.$ignore.=.0;.private
75e40 20 24 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 .$dirs.=.array();.private.$dates
75e60 20 3d 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 .=.array();.private.$iterators.=
75e80 20 61 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 .array();.private.$contains.=.ar
75ea0 72 61 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 ray();.private.$notContains.=.ar
75ec0 72 61 79 28 29 3b 0a 0a 73 74 61 74 69 63 20 70 72 69 76 61 74 65 20 24 76 63 73 50 61 74 74 65 ray();..static.private.$vcsPatte
75ee0 72 6e 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 rns.=.array('.svn',.'_svn',.'CVS
75f00 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 27 2c 20 27 2e 6d ',.'_darcs',.'.arch-params',.'.m
75f20 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 27 2e 68 67 27 29 onotone',.'.bzr',.'.git',.'.hg')
75f40 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 72 75 63 ;.....public.function.__construc
75f60 74 28 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 t().{.$this->ignore.=.static::IG
75f80 4e 4f 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 NORE_VCS_FILES.|.static::IGNORE_
75fa0 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 73 74 61 74 69 63 20 70 75 62 6c DOT_FILES;.}.........static.publ
75fc0 69 63 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 ic.function.create().{.return.ne
75fe0 77 20 73 65 6c 66 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 w.self();.}.........public.funct
76000 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.
76020 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
76040 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
76060 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
76080 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
760a0 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
760c0 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;.}.............
760e0 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
76100 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
76120 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);
76140 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;.}...............
76160 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
76180 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
761a0 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
761c0 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
761e0 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).{.
76200 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
76220 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
76240 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
76260 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
76280 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
762a0 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).{.$
762c0 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
762e0 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 0a 70 75 turn.$this;.}.................pu
76300 62 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 blic.function.notContains($patte
76320 72 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 rn).{.$this->notContains[].=.$pa
76340 74 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 ttern;..return.$this;.}.........
76360 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 69 7a 65 28 24 73 .........public.function.size($s
76380 69 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 ize).{.$this->sizes[].=.new.Comp
763a0 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 73 69 7a 65 29 3b 0a arator\NumberComparator($size);.
763c0 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
763e0 6c 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 lic.function.exclude($dirs).{.$t
76400 68 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 his->exclude.=.array_merge($this
76420 2d 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 ->exclude,.(array).$dirs);..retu
76440 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
76460 75 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 unction.ignoreDotFiles($ignoreDo
76480 74 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 tFiles).{.if.($ignoreDotFiles).{
764a0 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 20 7c .$this->ignore.=.$this->ignore.|
764c0 20 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 .static::IGNORE_DOT_FILES;.}.els
764e0 65 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 e.{.$this->ignore.=.$this->ignor
76500 65 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 e.&.~static::IGNORE_DOT_FILES;.}
76520 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 75 ..return.$this;.}.............pu
76540 62 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 blic.function.ignoreVCS($ignoreV
76560 43 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 CS).{.if.($ignoreVCS).{.$this->i
76580 67 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 gnore.=.$this->ignore.|.static::
765a0 49 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 IGNORE_VCS_FILES;.}.else.{.$this
765c0 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 26 20 7e 73 74 61 74 ->ignore.=.$this->ignore.&.~stat
765e0 69 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 ic::IGNORE_VCS_FILES;.}..return.
76600 24 74 68 69 73 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $this;.}..static.public.function
76620 20 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 .addVCSPattern($pattern).{.self:
76640 3a 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 :$vcsPatterns[].=.$pattern;.}...
76660 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 73 6f ..............public.function.so
76680 72 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 rt(\Closure.$closure).{.$this->s
766a0 6f 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 ort.=.$closure;..return.$this;.}
766c0 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
766e0 74 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 tByName().{.$this->sort.=.Iterat
76700 6f 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 or\SortableIterator::SORT_BY_NAM
76720 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 0a 0a 0a 0a E;..return.$this;.}.............
76740 70 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 public.function.sortByType().{.$
76760 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 65 49 74 this->sort.=.Iterator\SortableIt
76780 65 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 erator::SORT_BY_TYPE;..return.$t
767a0 68 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 his;.}...............public.func
767c0 74 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 tion.sortByAccessedTime().{.$thi
767e0 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 72 61 s->sort.=.Iterator\SortableItera
76800 74 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 tor::SORT_BY_ACCESSED_TIME;..ret
76820 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 70 75 62 urn.$this;.}.................pub
76840 6c 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 lic.function.sortByChangedTime()
76860 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 72 74 61 62 .{.$this->sort.=.Iterator\Sortab
76880 6c 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 leIterator::SORT_BY_CHANGED_TIME
768a0 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 0a ;..return.$this;.}..............
768c0 0a 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 .public.function.sortByModifiedT
768e0 69 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 ime().{.$this->sort.=.Iterator\S
76900 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 4d 4f 44 49 46 49 45 ortableIterator::SORT_BY_MODIFIE
76920 44 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 D_TIME;..return.$this;.}........
76940 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 6c 74 65 72 28 5c ........public.function.filter(\
76960 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 66 69 6c 74 65 Closure.$closure).{.$this->filte
76980 72 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 rs[].=.$closure;..return.$this;.
769a0 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 6f 6c 6c 6f 77 }.........public.function.follow
769c0 4c 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 Links().{.$this->followLinks.=.t
769e0 72 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 rue;..return.$this;.}...........
76a00 0a 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 ..public.function.in($dirs).{.$d
76a20 69 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 irs.=.(array).$dirs;..foreach.($
76a40 64 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 dirs.as.$dir).{.if.(!is_dir($dir
76a60 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
76a80 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 64 69 72 65 63 xception(sprintf('The."%s".direc
76aa0 74 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 tory.does.not.exist.',.$dir));.}
76ac0 0a 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 .}..$this->dirs.=.array_merge($t
76ae0 68 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 his->dirs,.$dirs);..return.$this
76b00 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 20 67 65 ;.}...........public.function.ge
76b20 74 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 tIterator().{.if.(0.===.count($t
76b40 68 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 his->dirs)).{.throw.new.\LogicEx
76b60 63 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 ception('You.must.call.the.in().
76b80 6d 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 method.before.iterating.over.a.F
76ba0 69 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 inder.');.}..if.(1.===.count($th
76bc0 69 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 is->dirs).&&.0.===.count($this->
76be0 69 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 iterators)).{.return.$this->sear
76c00 63 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 chInDirectory($this->dirs[0]);.}
76c20 0a 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 ..$iterator.=.new.\AppendIterato
76c40 72 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 r();.foreach.($this->dirs.as.$di
76c60 72 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 r).{.$iterator->append($this->se
76c80 61 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 archInDirectory($dir));.}..forea
76ca0 63 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 ch.($this->iterators.as.$it).{.$
76cc0 69 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 iterator->append($it);.}..return
76ce0 20 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 .$iterator;.}.........public.fun
76d00 63 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 ction.append($iterator).{.if.($i
76d20 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 41 67 67 72 terator.instanceof.\IteratorAggr
76d40 65 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 egate).{.$this->iterators[].=.$i
76d60 74 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 terator->getIterator();.}.elseif
76d80 20 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 .($iterator.instanceof.\Iterator
76da0 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 65 72 61 74 ).{.$this->iterators[].=.$iterat
76dc0 6f 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 or;.}.elseif.($iterator.instance
76de0 6f 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 of.\Traversable.||.is_array($ite
76e00 72 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 rator)).{.$it.=.new.\ArrayIterat
76e20 6f 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 or();.foreach.($iterator.as.$fil
76e40 65 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 e).{.$it->append($file.instanceo
76e60 66 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 f.\SplFileInfo.?.$file.:.new.\Sp
76e80 6c 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 lFileInfo($file));.}.$this->iter
76ea0 61 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 ators[].=.$it;.}.else.{.throw.ne
76ec0 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 46 69 6e w.\InvalidArgumentException('Fin
76ee0 64 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 der::append().method.wrong.argum
76f00 65 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 ent.type.');.}.}.......public.fu
76f20 6e 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 nction.count().{.return.iterator
76f40 5f 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 _count($this->getIterator());.}.
76f60 0a 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 .private.function.searchInDirect
76f80 6f 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 ory($dir).{.$flags.=.\RecursiveD
76fa0 69 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 irectoryIterator::SKIP_DOTS;..if
76fc0 20 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 .($this->followLinks).{.$flags.|
76fe0 3d 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 =.\RecursiveDirectoryIterator::F
77000 4f 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 OLLOW_SYMLINKS;.}..$iterator.=.n
77020 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 6f 72 28 0a 6e ew.\RecursiveIteratorIterator(.n
77040 65 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 ew.Iterator\RecursiveDirectoryIt
77060 65 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 erator($dir,.$flags),.\Recursive
77080 49 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 IteratorIterator::SELF_FIRST.);.
770a0 0a 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 .if.($this->depths).{.$iterator.
770c0 3d 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 =.new.Iterator\DepthRangeFilterI
770e0 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 64 65 70 74 68 73 terator($iterator,.$this->depths
77100 29 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 );.}..if.($this->mode).{.$iterat
77120 6f 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 or.=.new.Iterator\FileTypeFilter
77140 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 6d 6f 64 65 29 Iterator($iterator,.$this->mode)
77160 3b 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 ;.}..if.(static::IGNORE_VCS_FILE
77180 53 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 S.===.(static::IGNORE_VCS_FILES.
771a0 26 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 &.$this->ignore)).{.$this->exclu
771c0 64 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 de.=.array_merge($this->exclude,
771e0 20 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 .self::$vcsPatterns);.}..if.(sta
77200 74 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 tic::IGNORE_DOT_FILES.===.(stati
77220 63 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 c::IGNORE_DOT_FILES.&.$this->ign
77240 6f 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 ore)).{.$this->notNames[].=.'/^\
77260 2e 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 ..+/';.}..if.($this->exclude).{.
77280 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 45 78 63 6c 75 64 65 $iterator.=.new.Iterator\Exclude
772a0 44 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 DirectoryFilterIterator($iterato
772c0 72 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 r,.$this->exclude);.}..if.($this
772e0 2d 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 ->names.||.$this->notNames).{.$i
77300 74 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 terator.=.new.Iterator\FilenameF
77320 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 74 68 69 73 2d 3e ilterIterator($iterator,.$this->
77340 6e 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 names,.$this->notNames);.}..if.(
77360 24 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 $this->contains.||.$this->notCon
77380 74 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 tains).{.$iterator.=.new.Iterato
773a0 72 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 r\FilecontentFilterIterator($ite
773c0 72 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 rator,.$this->contains,.$this->n
773e0 6f 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 otContains);.}..if.($this->sizes
77400 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 53 69 7a ).{.$iterator.=.new.Iterator\Siz
77420 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 20 eRangeFilterIterator($iterator,.
77440 24 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 $this->sizes);.}..if.($this->dat
77460 65 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 es).{.$iterator.=.new.Iterator\D
77480 61 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 ateRangeFilterIterator($iterator
774a0 2c 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 ,.$this->dates);.}..if.($this->f
774c0 69 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 ilters).{.$iterator.=.new.Iterat
774e0 6f 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 or\CustomFilterIterator($iterato
77500 72 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 r,.$this->filters);.}..if.($this
77520 2d 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 ->sort).{.$iteratorAggregate.=.n
77540 65 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 ew.Iterator\SortableIterator($it
77560 65 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 erator,.$this->sort);.$iterator.
77580 3d 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 =.$iteratorAggregate->getIterato
775a0 72 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 r();.}..return.$iterator;.}.}.<?
775c0 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\
775e0 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 0a 0a Component\Finder;...............
77600 0a 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 73 .........class.Glob.{..........s
77620 74 61 74 69 63 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 tatic.public.function.toRegex($g
77640 6c 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 lob,.$strictLeadingDot.=.true,.$
77660 73 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 strictWildcardSlash.=.true).{.$f
77680 69 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 irstByte.=.true;.$escaping.=.fal
776a0 73 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 se;.$inCurlies.=.0;.$regex.=.'';
776c0 0a 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 .$sizeGlob.=.strlen($glob);.for.
776e0 28 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 ($i.=.0;.$i.<.$sizeGlob;.$i++).{
77700 0a 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 .$car.=.$glob[$i];.if.($firstByt
77720 65 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 e).{.if.($strictLeadingDot.&&.'.
77740 27 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 '.!==.$car).{.$regex..=.'(?=[^\.
77760 5d 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 ])';.}..$firstByte.=.false;.}..i
77780 66 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 f.('/'.===.$car).{.$firstByte.=.
777a0 74 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 true;.}..if.('.'.===.$car.||.'('
777c0 20 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 .===.$car.||.')'.===.$car.||.'|'
777e0 20 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 .===.$car.||.'+'.===.$car.||.'^'
77800 20 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 .===.$car.||.'$'.===.$car).{.$re
77820 67 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 gex..=."\\$car";.}.elseif.('*'.=
77840 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.?
77860 20 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 .'\\*'.:.($strictWildcardSlash.?
77880 20 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 .'[^/]*'.:.'.*');.}.elseif.('?'.
778a0 3d 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 ===.$car).{.$regex..=.$escaping.
778c0 3f 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 ?.'\\?'.:.($strictWildcardSlash.
778e0 3f 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 ?.'[^/]'.:.'.');.}.elseif.('{'.=
77900 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.?
77920 20 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 .'\\{'.:.'(';.if.(!$escaping).{.
77940 2b 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 ++$inCurlies;.}.}.elseif.('}'.==
77960 3d 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 =.$car.&&.$inCurlies).{.$regex..
77980 3d 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 =.$escaping.?.'}'.:.')';.if.(!$e
779a0 73 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 scaping).{.--$inCurlies;.}.}.els
779c0 65 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 eif.(','.===.$car.&&.$inCurlies)
779e0 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 27 2c 27 20 3a 20 27 .{.$regex..=.$escaping.?.','.:.'
77a00 7c 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 |';.}.elseif.('\\'.===.$car).{.i
77a20 66 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 f.($escaping).{.$regex..=.'\\\\'
77a40 3b 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 ;.$escaping.=.false;.}.else.{.$e
77a60 73 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 scaping.=.true;.}..continue;.}.e
77a80 6c 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 lse.{.$regex..=.$car;.}.$escapin
77aa0 67 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 g.=.false;.}..return.'#^'.$regex
77ac0 2e 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 .'$#';.}.}.<?php...........names
77ae0 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 49 74 pace.Symfony\Component\Finder\It
77b00 65 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 erator;.......class.DepthRangeFi
77b20 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 lterIterator.extends.\FilterIter
77b40 61 74 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 ator.{.private.$minDepth.=.0;...
77b60 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 74 .....public.function.__construct
77b80 28 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 20 24 69 74 65 (\RecursiveIteratorIterator.$ite
77ba0 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 6d 69 rator,.array.$comparators).{.$mi
77bc0 6e 44 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 nDepth.=.0;.$maxDepth.=.INF;.for
77be0 65 61 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 each.($comparators.as.$comparato
77c00 72 29 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 r).{.switch.($comparator->getOpe
77c20 72 61 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 rator()).{.case.'>':.$minDepth.=
77c40 20 24 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 .$comparator->getTarget().+.1;.b
77c60 72 65 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 reak;.case.'>=':.$minDepth.=.$co
77c80 6d 70 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 mparator->getTarget();.break;.ca
77ca0 73 65 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 se.'<':.$maxDepth.=.$comparator-
77cc0 3e 67 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 >getTarget().-.1;.break;.case.'<
77ce0 3d 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 65 74 =':.$maxDepth.=.$comparator->get
77d00 54 61 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 Target();.break;.default:.$minDe
77d20 70 74 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 pth.=.$maxDepth.=.$comparator->g
77d40 65 74 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 etTarget();.}.}..$this->minDepth
77d60 20 3d 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 .=.$minDepth;.$iterator->setMaxD
77d80 65 70 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 epth(INF.===.$maxDepth.?.-1.:.$m
77da0 61 78 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 axDepth);..parent::__construct($
77dc0 69 74 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 iterator);.}.......public.functi
77de0 6f 6e 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 on.accept().{.return.$this->getI
77e00 6e 6e 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 nnerIterator()->getDepth().>=.$t
77e20 68 69 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 his->minDepth;.}.}.<?php........
77e40 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 46 ...namespace.Symfony\Component\F
77e60 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 53 6f 72 74 inder\Iterator;.......class.Sort
77e80 61 62 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 ableIterator.implements.\Iterato
77ea0 72 41 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 rAggregate.{.const.SORT_BY_NAME.
77ec0 3d 20 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 =.1;.const.SORT_BY_TYPE.=.2;.con
77ee0 73 74 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 st.SORT_BY_ACCESSED_TIME.=.3;.co
77f00 6e 73 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 nst.SORT_BY_CHANGED_TIME.=.4;.co
77f20 6e 73 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 nst.SORT_BY_MODIFIED_TIME.=.5;..
77f40 70 72 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 private.$iterator;.private.$sort
77f60 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 73 74 ;........public.function.__const
77f80 72 75 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 ruct(\Traversable.$iterator,.$so
77fa0 72 74 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 rt).{.$this->iterator.=.$iterato
77fc0 72 3b 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 r;..if.(self::SORT_BY_NAME.===.$
77fe0 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 20 28 sort).{.$this->sort.=.function.(
78000 24 61 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 $a,.$b).{.return.strcmp($a->getR
78020 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 28 29 29 3b 0a 7d ealpath(),.$b->getRealpath());.}
78040 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 54 59 50 45 20 3d ;.}.elseif.(self::SORT_BY_TYPE.=
78060 3d 3d 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 ==.$sort).{.$this->sort.=.functi
78080 6f 6e 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 on.($a,.$b).{.if.($a->isDir().&&
780a0 20 24 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 .$b->isFile()).{.return.-1;.}.el
780c0 73 65 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 seif.($a->isFile().&&.$b->isDir(
780e0 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 73 74 72 63 6d 70 28 )).{.return.1;.}..return.strcmp(
78100 24 61 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 $a->getRealpath(),.$b->getRealpa
78120 74 68 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 th());.};.}.elseif.(self::SORT_B
78140 59 5f 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 Y_ACCESSED_TIME.===.$sort).{.$th
78160 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 72 is->sort.=.function.($a,.$b).{.r
78180 65 74 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 eturn.($a->getATime().>.$b->getA
781a0 54 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 Time());.};.}.elseif.(self::SORT
781c0 5f 42 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 _BY_CHANGED_TIME.===.$sort).{.$t
781e0 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).{.
78200 72 65 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 return.($a->getCTime().>.$b->get
78220 43 54 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 CTime());.};.}.elseif.(self::SOR
78240 54 5f 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 T_BY_MODIFIED_TIME.===.$sort).{.
78260 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 2c 20 24 62 29 20 $this->sort.=.function.($a,.$b).
78280 7b 0a 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 {.return.($a->getMTime().>.$b->g
782a0 65 74 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 etMTime());.};.}.elseif.(is_call
782c0 61 62 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 able($sort)).{.$this->sort.=.$so
782e0 72 74 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 rt;.}.else.{.throw.new.\InvalidA
78300 72 67 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 rgumentException('The.SortableIt
78320 65 72 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 erator.takes.a.PHP.callback.or.a
78340 20 76 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 .valid.built-in.sort.algorithm.a
78360 73 20 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 s.an.argument.');.}.}..public.fu
78380 6e 63 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 nction.getIterator().{.$array.=.
783a0 69 74 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 iterator_to_array($this->iterato
783c0 72 2c 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 r,.true);.uasort($array,.$this->
783e0 73 6f 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 sort);..return.new.\ArrayIterato
78400 72 28 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 r($array);.}.}.<?php...........n
78420 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 65 amespace.Symfony\Component\Finde
78440 72 5c 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 r\Iterator;........class.Filecon
78460 74 65 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 tentFilterIterator.extends.Multi
78480 70 6c 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 plePcreFilterIterator.{......pub
784a0 6c 69 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 lic.function.accept().{.if.(!$th
784c0 69 73 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 is->matchRegexps.&&.!$this->noMa
784e0 74 63 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 tchRegexps).{.return.true;.}..$f
78500 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 69 66 20 ileinfo.=.$this->current();..if.
78520 28 24 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 ($fileinfo->isDir().||.!$fileinf
78540 6f 2d 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 o->isReadable()).{.return.false;
78560 0a 7d 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 .}..$content.=.$fileinfo->getCon
78580 74 65 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 tents();.if.(!$content).{.return
785a0 20 66 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 .false;.}....foreach.($this->noM
785c0 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 69 66 20 28 70 72 65 atchRegexps.as.$regex).{.if.(pre
785e0 67 5f 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 g_match($regex,.$content)).{.ret
78600 75 72 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 urn.false;.}.}....$match.=.true;
78620 0a 69 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 .if.($this->matchRegexps).{.$mat
78640 63 68 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 ch.=.false;.foreach.($this->matc
78660 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 6d hRegexps.as.$regex).{.if.(preg_m
78680 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 6e atch($regex,.$content)).{.return
786a0 20 74 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 .true;.}.}.}..return.$match;.}..
786c0 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 74 6f 52 65 67 65 .......protected.function.toRege
786e0 78 28 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 x($str).{.return.$this->isRegex(
78700 24 73 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 $str).?.$str.:.'/'.preg_quote($s
78720 74 72 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 tr,.'/').'/';.}.}.<?php.........
78740 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 46 69 ..namespace.Symfony\Component\Fi
78760 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 53 69 7a 65 52 nder\Iterator;.......class.SizeR
78780 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 5c 46 69 6c 74 angeFilterIterator.extends.\Filt
787a0 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 74 6f 72 erIterator.{.private.$comparator
787c0 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 6e 63 74 s.=.array();........public.funct
787e0 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 65 72 61 ion.__construct(\Iterator.$itera
78800 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 68 69 73 tor,.array.$comparators).{.$this
78820 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 0a 0a 70 ->comparators.=.$comparators;..p
78840 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 3b 0a 7d arent::__construct($iterator);.}
78860 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 28 29 0a .......public.function.accept().
78880 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 29 3b 0a {.$fileinfo.=.$this->current();.
788a0 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 72 65 74 75 if.(!$fileinfo->isFile()).{.retu
788c0 72 6e 20 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 rn.true;.}..$filesize.=.$fileinf
788e0 6f 2d 3e 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 o->getSize();.foreach.($this->co
78900 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 20 28 21 24 63 mparators.as.$compare).{.if.(!$c
78920 6f 6d 70 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 ompare->test($filesize)).{.retur
78940 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 0a 3c n.false;.}.}..return.true;.}.}.<
78960 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
78980 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 0a 0a \Component\Finder\Iterator;.....
789a0 0a 0a 63 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 ..class.ExcludeDirectoryFilterIt
789c0 65 72 61 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 erator.extends.\FilterIterator.{
789e0 0a 70 72 69 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 .private.$patterns;........publi
78a00 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 72 c.function.__construct(\Iterator
78a20 20 24 69 74 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 .$iterator,.array.$directories).
78a40 7b 0a 24 74 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 {.$this->patterns.=.array();.for
78a60 65 61 63 68 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 each.($directories.as.$directory
78a80 29 20 7b 0a 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 ).{.$this->patterns[].=.'#(^|/)'
78aa0 2e 70 72 65 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 .preg_quote($directory,.'#').'(/
78ac0 7c 24 29 23 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 |$)#';.}..parent::__construct($i
78ae0 74 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 terator);.}.......public.functio
78b00 6e 20 61 63 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 n.accept().{.$path.=.$this->isDi
78b20 72 28 29 20 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 r().?.$this->current()->getRelat
78b40 69 76 65 50 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 ivePathname().:.$this->current()
78b60 2d 3e 67 65 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 ->getRelativePath();.$path.=.str
78b80 74 72 28 24 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 tr($path,.'\\',.'/');.foreach.($
78ba0 74 68 69 73 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 this->patterns.as.$pattern).{.if
78bc0 20 28 70 72 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 .(preg_match($pattern,.$path)).{
78be0 0a 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 .return.false;.}.}..return.true;
78c00 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
78c20 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 72 61 74 6f 72 ymfony\Component\Finder\Iterator
78c40 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 ;........abstract.class.Multiple
78c60 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 PcreFilterIterator.extends.\Filt
78c80 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 erIterator.{.protected.$matchReg
78ca0 65 78 70 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 3b exps;.protected.$noMatchRegexps;
78cc0 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 74 .........public.function.__const
78ce0 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 ruct(\Iterator.$iterator,.array.
78d00 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 $matchPatterns,.array.$noMatchPa
78d20 74 74 65 72 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 tterns).{.$this->matchRegexps.=.
78d40 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 array();.foreach.($matchPatterns
78d60 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 .as.$pattern).{.$this->matchRege
78d80 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 xps[].=.$this->toRegex($pattern)
78da0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 ;.}..$this->noMatchRegexps.=.arr
78dc0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 ay();.foreach.($noMatchPatterns.
78de0 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 as.$pattern).{.$this->noMatchReg
78e00 65 78 70 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e exps[].=.$this->toRegex($pattern
78e20 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 69 74 65 72 61 );.}..parent::__construct($itera
78e40 74 6f 72 29 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 69 tor);.}.........protected.functi
78e60 6f 6e 20 69 73 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 on.isRegex($str).{.if.(preg_matc
78e80 68 28 27 2f 5e 28 2e 7b 33 2c 7d 3f 29 5b 69 6d 73 78 75 41 44 55 5d 2a 24 2f 27 2c 20 24 73 74 h('/^(.{3,}?)[imsxuADU]*$/',.$st
78ea0 72 2c 20 24 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c r,.$m)).{.$start.=.substr($m[1],
78ec0 20 30 2c 20 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 29 .0,.1);.$end.=.substr($m[1],.-1)
78ee0 3b 0a 0a 69 66 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 29 20 7b 0a 72 65 74 75 72 6e ;..if.($start.===.$end).{.return
78f00 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f .!preg_match('/[[:alnum:].\\\\]/
78f20 27 2c 20 24 73 74 61 72 74 29 3b 0a 7d 0a 0a 69 66 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b ',.$start);.}..if.($start.===.'{
78f40 27 20 26 26 20 24 65 6e 64 20 3d 3d 3d 20 27 7d 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 '.&&.$end.===.'}').{.return.true
78f60 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 0a 0a 0a 0a 0a 61 ;.}.}..return.false;.}.........a
78f80 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 bstract.protected.function.toReg
78fa0 65 78 28 24 73 74 72 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 ex($str);.}.<?php...........name
78fc0 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 49 space.Symfony\Component\Finder\I
78fe0 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 46 69 terator;..........class.CustomFi
79000 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 lterIterator.extends.\FilterIter
79020 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 ator.{.private.$filters.=.array(
79040 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 5f 5f 63 6f 6e 73 );........public.function.__cons
79060 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 2c 20 61 72 72 61 79 truct(\Iterator.$iterator,.array
79080 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 .$filters).{.foreach.($filters.a
790a0 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 66 s.$filter).{.if.(!is_callable($f
790c0 69 6c 74 65 72 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 ilter)).{.throw.new.\InvalidArgu
790e0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 61 6c 6c 62 mentException('Invalid.PHP.callb
79100 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 ack.');.}.}.$this->filters.=.$fi
79120 6c 74 65 72 73 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 65 lters;..parent::__construct($ite
79140 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 20 rator);.}.......public.function.
79160 61 63 63 65 70 74 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 accept().{.$fileinfo.=.$this->cu
79180 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 rrent();..foreach.($this->filter
791a0 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 s.as.$filter).{.if.(false.===.ca
791c0 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 6e 66 6f 29 ll_user_func($filter,.$fileinfo)
791e0 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 74 75 72 6e 20 74 72 ).{.return.false;.}.}..return.tr
79200 75 65 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 ue;.}.}.<?php...........namespac
79220 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 72 61 e.Symfony\Component\Finder\Itera
79240 74 6f 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 46 69 6e 64 tor;..use.Symfony\Component\Find
79260 65 72 5c 47 6c 6f 62 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c er\Glob;.......class.FilenameFil
79280 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 65 50 63 72 65 terIterator.extends.MultiplePcre
792a0 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 FilterIterator.{.......public.fu
792c0 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 nction.accept().{.$filename.=.$t
792e0 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a his->current()->getFilename();..
79300 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 ..foreach.($this->noMatchRegexps
79320 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 63 68 28 24 72 65 .as.$regex).{.if.(preg_match($re
79340 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b gex,.$filename)).{.return.false;
79360 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 .}.}....$match.=.true;.if.($this
79380 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 ->matchRegexps).{.$match.=.false
793a0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 ;.foreach.($this->matchRegexps.a
793c0 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 s.$regex).{.if.(preg_match($rege
793e0 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a x,.$filename)).{.return.true;.}.
79400 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 0a 0a 0a 0a 0a 0a 0a }.}..return.$match;.}...........
79420 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 24 73 74 72 .protected.function.toRegex($str
79440 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 74 72 29 20 ).{.return.$this->isRegex($str).
79460 3f 20 24 73 74 72 20 3a 20 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a ?.$str.:.Glob::toRegex($str);.}.
79480 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
794a0 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 0a 0a ony\Component\Finder\Iterator;..
794c0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 .....class.DateRangeFilterIterat
794e0 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 70 72 69 or.extends.\FilterIterator.{.pri
79500 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a vate.$comparators.=.array();....
79520 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(
79540 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 \Iterator.$iterator,.array.$comp
79560 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 arators).{.$this->comparators.=.
79580 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 $comparators;..parent::__constru
795a0 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 62 6c 69 63 20 66 75 ct($iterator);.}.......public.fu
795c0 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 66 6f 20 3d 20 24 74 nction.accept().{.$fileinfo.=.$t
795e0 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d his->current();..if.(!$fileinfo-
79600 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 >isFile()).{.return.true;.}..$fi
79620 6c 65 64 61 74 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a ledate.=.$fileinfo->getMTime();.
79640 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 foreach.($this->comparators.as.$
79660 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 compare).{.if.(!$compare->test($
79680 66 69 6c 65 64 61 74 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 filedate)).{.return.false;.}.}..
796a0 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..........
796c0 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
796e0 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 46 69 6c 65 54 79 der\Iterator;.......class.FileTy
79700 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 peFilterIterator.extends.\Filter
79720 49 74 65 72 61 74 6f 72 0a 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b Iterator.{.const.ONLY_FILES.=.1;
79740 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 .const.ONLY_DIRECTORIES.=.2;..pr
79760 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ivate.$mode;........public.funct
79780 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 65 72 61 ion.__construct(\Iterator.$itera
797a0 74 6f 72 2c 20 24 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 tor,.$mode).{.$this->mode.=.$mod
797c0 65 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 65 72 61 74 6f e;..parent::__construct($iterato
797e0 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 63 65 r);.}.......public.function.acce
79800 70 74 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 pt().{.$fileinfo.=.$this->curren
79820 74 28 29 3b 0a 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 t();.if.(self::ONLY_DIRECTORIES.
79840 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 ===.(self::ONLY_DIRECTORIES.&.$t
79860 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 his->mode).&&.$fileinfo->isFile(
79880 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c )).{.return.false;.}.elseif.(sel
798a0 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 f::ONLY_FILES.===.(self::ONLY_FI
798c0 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d LES.&.$this->mode).&&.$fileinfo-
798e0 3e 69 73 44 69 72 28 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 >isDir()).{.return.false;.}..ret
79900 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 0a 6e 61 urn.true;.}.}.<?php...........na
79920 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 65 72 mespace.Symfony\Component\Finder
79940 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e \Iterator;..use.Symfony\Componen
79960 74 5c 46 69 6e 64 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 t\Finder\SplFileInfo;.......clas
79980 73 20 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 20 65 78 74 s.RecursiveDirectoryIterator.ext
799a0 65 6e 64 73 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 ends.\RecursiveDirectoryIterator
799c0 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 28 24 .{.public.function.__construct($
799e0 70 61 74 68 2c 20 24 66 6c 61 67 73 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 path,.$flags).{.if.($flags.&.(se
79a00 6c 66 3a 3a 43 55 52 52 45 4e 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a lf::CURRENT_AS_PATHNAME.|.self::
79a20 43 55 52 52 45 4e 54 5f 41 53 5f 53 45 4c 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 CURRENT_AS_SELF)).{.throw.new.\R
79a40 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f untimeException('This.iterator.o
79a60 6e 6c 79 20 73 75 70 70 6f 72 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 nly.support.returning.current.as
79a80 20 66 69 6c 65 69 6e 66 6f 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 .fileinfo.');.}..parent::__const
79aa0 72 75 63 74 28 24 70 61 74 68 2c 20 24 66 6c 61 67 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 ruct($path,.$flags);.}.......pub
79ac0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.current().{.return.
79ae0 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 new.SplFileInfo(parent::current(
79b00 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 )->getPathname(),.$this->getSubP
79b20 61 74 68 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 29 3b ath(),.$this->getSubPathname());
79b40 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
79b60 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 ymfony\Component\Finder\Comparat
79b80 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 20 65 or;.......class.DateComparator.e
79ba0 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c xtends.Comparator.{.........publ
79bc0 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 74 65 73 74 29 0a 7b ic.function.__construct($test).{
79be0 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c .if.(!preg_match('#^\s*(==|!=|[<
79c00 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 6e 63 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 3f 5c >]=?|after|since|before|until)?\
79c20 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 s*(.+?)\s*$#i',.$test,.$matches)
79c40 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
79c60 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 73 74 61 ception(sprintf('Don\'t.understa
79c80 6e 64 20 22 25 73 22 20 61 73 20 61 20 64 61 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 nd."%s".as.a.date.test.',.$test)
79ca0 29 3b 0a 7d 0a 0a 74 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 );.}..try.{.$date.=.new.\DateTim
79cc0 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 65 2d e($matches[2]);.$target.=.$date-
79ce0 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f >format('U');.}.catch.(\Exceptio
79d00 6e 20 24 65 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 n.$e).{.throw.new.\InvalidArgume
79d20 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e 6f 74 ntException(sprintf('"%s".is.not
79d40 20 61 20 76 61 6c 69 64 20 64 61 74 65 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 3b 0a .a.valid.date.',.$matches[2]));.
79d60 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d }..$operator.=.isset($matches[1]
79d80 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 69 6e ).?.$matches[1].:.'==';.if.('sin
79da0 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d 3d 3d ce'.===.$operator.||.'after'.===
79dc0 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b 0a 7d .$operator).{.$operator.=.'>';.}
79de0 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 ..if.('until'.===.$operator.||.'
79e00 62 65 66 6f 72 65 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 before'.===.$operator).{.$operat
79e20 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 or.=.'<';.}..$this->setOperator(
79e40 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 $operator);.$this->setTarget($ta
79e60 72 67 65 74 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 rget);.}.}.<?php...........names
79e80 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 43 6f pace.Symfony\Component\Finder\Co
79ea0 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mparator;.......................
79ec0 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 .class.NumberComparator.extends.
79ee0 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Comparator.{........public.funct
79f00 69 6f 6e 20 5f 5f 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 ion.__construct($test).{.if.(!pr
79f20 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 29 3f 5c 73 eg_match('#^\s*(==|!=|[<>]=?)?\s
79f40 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 2a 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 2a 24 23 69 27 2c *([0-9\.]+)\s*([kmg]i?)?\s*$#i',
79f60 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 5c .$test,.$matches)).{.throw.new.\
79f80 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 66 InvalidArgumentException(sprintf
79fa0 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 6e 75 ('Don\'t.understand."%s".as.a.nu
79fc0 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 mber.test.',.$test));.}..$target
79fe0 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 .=.$matches[2];.if.(!is_numeric(
7a000 24 74 61 72 67 65 74 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 $target)).{.throw.new.\InvalidAr
7a020 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 49 6e 76 61 6c 69 64 gumentException(sprintf('Invalid
7a040 20 6e 75 6d 62 65 72 20 22 25 73 22 2e 27 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 69 66 20 .number."%s".',.$target));.}.if.
7a060 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 77 69 74 63 68 20 (isset($matches[3])).{...switch.
7a080 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 63 61 73 65 (strtolower($matches[3])).{.case
7a0a0 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 .'k':.$target.*=.1000;.break;.ca
7a0c0 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b se.'ki':.$target.*=.1024;.break;
7a0e0 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 3b 0a 62 .case.'m':.$target.*=.1000000;.b
7a100 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 reak;.case.'mi':.$target.*=.1024
7a120 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 27 3a 0a 24 74 61 72 67 65 74 20 *1024;.break;.case.'g':.$target.
7a140 2a 3d 20 31 30 30 30 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 69 27 3a *=.1000000000;.break;.case.'gi':
7a160 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 2a 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 .$target.*=.1024*1024*1024;.brea
7a180 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 k;.}.}..$this->setTarget($target
7a1a0 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 69 73 73 65 74 28 24 6d 61 74 );.$this->setOperator(isset($mat
7a1c0 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 29 3b 0a ches[1]).?.$matches[1].:.'==');.
7a1e0 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
7a200 6d 66 6f 6e 79 5c 43 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 mfony\Component\Finder\Comparato
7a220 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 70 72 69 76 r;.......class.Comparator.{.priv
7a240 61 74 65 20 24 74 61 72 67 65 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 20 3d ate.$target;.private.$operator.=
7a260 20 27 3d 3d 27 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 .'==';.......public.function.get
7a280 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b Target().{.return.$this->target;
7a2a0 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 54 61 72 67 .}.......public.function.setTarg
7a2c0 65 74 28 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 24 74 et($target).{.$this->target.=.$t
7a2e0 61 72 67 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 20 67 arget;.}.......public.function.g
7a300 65 74 4f 70 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 etOperator().{.return.$this->ope
7a320 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 20 73 rator;.}.......public.function.s
7a340 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 21 24 6f 70 etOperator($operator).{.if.(!$op
7a360 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 erator).{.$operator.=.'==';.}..i
7a380 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 70 65 72 61 74 6f 72 2c 20 61 72 72 61 79 28 27 3e f.(!in_array($operator,.array('>
7a3a0 27 2c 20 27 3c 27 2c 20 27 3e 3d 27 2c 20 27 3c 3d 27 2c 20 27 3d 3d 27 2c 20 27 21 3d 27 29 29 ',.'<',.'>=',.'<=',.'==',.'!='))
7a3c0 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
7a3e0 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f ception(sprintf('Invalid.operato
7a400 72 20 22 25 73 22 2e 27 2c 20 24 6f 70 65 72 61 74 6f 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d r."%s".',.$operator));.}..$this-
7a420 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 >operator.=.$operator;.}.......p
7a440 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 28 24 74 65 73 74 29 0a 7b 0a 73 77 69 ublic.function.test($test).{.swi
7a460 74 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 20 7b 0a 63 61 73 65 20 27 3e 27 tch.($this->operator).{.case.'>'
7a480 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a :.return.$test.>.$this->target;.
7a4a0 63 61 73 65 20 27 3e 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 3d 20 24 74 68 69 73 case.'>=':.return.$test.>=.$this
7a4c0 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 ->target;.case.'<':.return.$test
7a4e0 20 3c 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 72 65 74 .<.$this->target;.case.'<=':.ret
7a500 75 72 6e 20 24 74 65 73 74 20 3c 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
7a520 20 27 21 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 21 3d 20 24 74 68 69 73 2d 3e 74 61 .'!=':.return.$test.!=.$this->ta
7a540 72 67 65 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3d 3d 20 24 74 68 69 73 2d 3e rget;.}..return.$test.==.$this->
7a560 74 61 72 67 65 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 target;.}.}.<?php...........name
7a580 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 3b 0a space.Symfony\Component\Finder;.
7a5a0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 6c 46 69 6c 65 49 6e 66 6f 20 65 78 74 65 6e 64 73 20 ......class.SplFileInfo.extends.
7a5c0 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 \SplFileInfo.{.private.$relative
7a5e0 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b Path;.private.$relativePathname;
7a600 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 74 .........public.function.__const
7a620 72 75 63 74 28 24 66 69 6c 65 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 72 65 6c 61 ruct($file,.$relativePath,.$rela
7a640 74 69 76 65 50 61 74 68 6e 61 6d 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 tivePathname).{.parent::__constr
7a660 75 63 74 28 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 20 uct($file);.$this->relativePath.
7a680 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 =.$relativePath;.$this->relative
7a6a0 50 61 74 68 6e 61 6d 65 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a Pathname.=.$relativePathname;.}.
7a6c0 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 6c 61 74 69 76 ......public.function.getRelativ
7a6e0 65 50 61 74 68 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 ePath().{.return.$this->relative
7a700 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 67 65 Path;.}.......public.function.ge
7a720 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tRelativePathname().{.return.$th
7a740 69 73 2d 3e 72 65 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 is->relativePathname;.}.......pu
7a760 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 24 6c blic.function.getContents().{.$l
7a780 65 76 65 6c 20 3d 20 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 30 29 3b 0a 24 63 6f 6e 74 evel.=.error_reporting(0);.$cont
7a7a0 65 6e 74 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 73 2d 3e 67 ent.=.file_get_contents($this->g
7a7c0 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 24 etRealpath());.error_reporting($
7a7e0 6c 65 76 65 6c 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 level);.if.(false.===.$content).
7a800 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 74 68 72 {.$error.=.error_get_last();.thr
7a820 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 72 72 6f 72 5b ow.new.\RuntimeException($error[
7a840 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 'message']);.}..return.$content;
7a860 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
7a880 65 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 eld\JsonLint;..class.Undefined.{
7a8a0 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 6c .}.<?php...........namespace.Sel
7a8c0 64 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 d\JsonLint;..use.stdClass;......
7a8e0 0a 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 .........class.JsonParser.{.priv
7a900 61 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 ate.$stack;.private.$vstack;...p
7a920 72 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 rivate.$lstack;...private.$yy;.p
7a940 72 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 rivate.$symbols.=.array(.'error'
7a960 20 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 .=>.2,.'JSONString'.=>.3,.'STRIN
7a980 47 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 G'.=>.4,.'JSONNumber'.=>.5,.'NUM
7a9a0 42 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 BER'.=>.6,.'JSONNullLiteral'.=>.
7a9c0 37 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 7,.'NULL'.=>.8,.'JSONBooleanLite
7a9e0 72 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 ral'.=>.9,.'TRUE'.=>.10,.'FALSE'
7aa00 20 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 .=>.11,.'JSONText'.=>.12,.'JSONV
7aa20 61 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 alue'.=>.13,.'EOF'.=>.14,.'JSONO
7aa40 62 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 bject'.=>.15,.'JSONArray'.=>.16,
7aa60 0a 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 .'{'.=>.17,.'}'.=>.18,.'JSONMemb
7aa80 65 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 erList'.=>.19,.'JSONMember'.=>.2
7aaa0 30 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 0,.':'.=>.21,.','.=>.22,.'['.=>.
7aac0 32 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 23,.']'.=>.24,.'JSONElementList'
7aae0 20 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 .=>.25,.'$accept'.=>.0,.'$end'.=
7ab00 3e 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 >.1,.);..private.$terminals_.=.a
7ab20 72 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 rray(.2.=>."error",.4.=>."STRING
7ab40 22 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 ",.6.=>."NUMBER",.8.=>."NULL",.1
7ab60 30 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 0.=>."TRUE",.11.=>."FALSE",.14.=
7ab80 3e 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 >."EOF",.17.=>."{",.18.=>."}",.2
7aba0 31 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 1.=>.":",.22.=>.",",.23.=>."[",.
7abc0 32 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 24.=>."]",.);..private.$producti
7abe0 6f 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 ons_.=.array(.0,.array(3,.1),.ar
7ac00 72 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 ray(5,.1),.array(7,.1),.array(9,
7ac20 20 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 .1),.array(9,.1),.array(12,.2),.
7ac40 61 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 array(13,.1),.array(13,.1),.arra
7ac60 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 28 31 33 y(13,.1),.array(13,.1),.array(13
7ac80 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 35 2c 20 32 29 ,.1),.array(13,.1),.array(15,.2)
7aca0 2c 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 ,.array(15,.3),.array(20,.3),.ar
7acc0 72 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 ray(19,.1),.array(19,.3),.array(
7ace0 31 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 16,.2),.array(16,.3),.array(25,.
7ad00 31 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 1),.array(25,.3).);..private.$ta
7ad20 62 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 ble.=.array(array(3.=>.5,.4.=>.a
7ad40 72 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 rray(1,12),.5.=>.6,.6.=>.array(1
7ad60 2c 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 ,13),.7.=>.3,.8.=>.array(1,9),.9
7ad80 20 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 .=>.4,.10.=>.array(1,10),.11.=>.
7ada0 61 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 array(1,11),.12.=>.1,.13.=>.2,.1
7adc0 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 31 5.=>.7,.16.=>.8,.17.=>.array(1,1
7ade0 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 31 4),.23.=>.array(1,15)),.array(.1
7ae00 20 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 .=>.array(3)),.array(.14.=>.arra
7ae20 79 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 y(1,16)),.array(.14.=>.array(2,7
7ae40 29 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 ),.18.=>.array(2,7),.22.=>.array
7ae60 28 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 (2,7),.24.=>.array(2,7)),.array(
7ae80 20 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 .14.=>.array(2,8),.18.=>.array(2
7aea0 2c 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 ,8),.22.=>.array(2,8),.24.=>.arr
7aec0 61 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 ay(2,8)),.array(.14.=>.array(2,9
7aee0 29 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 ),.18.=>.array(2,9),.22.=>.array
7af00 28 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 (2,9),.24.=>.array(2,9)),.array(
7af20 20 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 .14.=>.array(2,10),.18.=>.array(
7af40 32 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 2,10),.22.=>.array(2,10),.24.=>.
7af60 61 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 array(2,10)),.array(.14.=>.array
7af80 28 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 (2,11),.18.=>.array(2,11),.22.=>
7afa0 20 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 .array(2,11),.24.=>.array(2,11))
7afc0 2c 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 ,.array(.14.=>.array(2,12),.18.=
7afe0 3e 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 >.array(2,12),.22.=>.array(2,12)
7b000 2c 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 ,.24.=>.array(2,12)),.array(.14.
7b020 3d 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 =>.array(2,3),.18.=>.array(2,3),
7b040 20 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 .22.=>.array(2,3),.24.=>.array(2
7b060 2c 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 ,3)),.array(.14.=>.array(2,4),.1
7b080 38 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 8.=>.array(2,4),.22.=>.array(2,4
7b0a0 29 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 ),.24.=>.array(2,4)),.array(.14.
7b0c0 3d 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 =>.array(2,5),.18.=>.array(2,5),
7b0e0 20 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 .22.=>.array(2,5),.24.=>.array(2
7b100 2c 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 ,5)),.array(.14.=>.array(2,1),.1
7b120 38 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 8.=>.array(2,1),.21.=>.array(2,1
7b140 29 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 ),.22.=>.array(2,1),.24.=>.array
7b160 28 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 (2,1)),.array(.14.=>.array(2,2),
7b180 20 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 .18.=>.array(2,2),.22.=>.array(2
7b1a0 2c 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 ,2),.24.=>.array(2,2)),.array(.3
7b1c0 20 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 .=>.20,.4.=>.array(1,12),.18.=>.
7b1e0 61 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 array(1,17),.19.=>.18,.20.=>.19.
7b200 29 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 ),.array(.3.=>.5,.4.=>.array(1,1
7b220 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 31 33 29 2c 20 37 20 2),.5.=>.6,.6.=>.array(1,13),.7.
7b240 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 3d 3e 20 34 2c 20 31 =>.3,.8.=>.array(1,9),.9.=>.4,.1
7b260 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 72 72 61 79 28 31 2c 0.=>.array(1,10),.11.=>.array(1,
7b280 31 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 11),.13.=>.23,.15.=>.7,.16.=>.8,
7b2a0 20 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 .17.=>.array(1,14),.23.=>.array(
7b2c0 31 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 1,15),.24.=>.array(1,21),.25.=>.
7b2e0 32 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 22.),.array(.1.=>.array(2,6)),.a
7b300 72 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 rray(.14.=>.array(2,13),.18.=>.a
7b320 72 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 rray(2,13),.22.=>.array(2,13),.2
7b340 34 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 4.=>.array(2,13)),.array(.18.=>.
7b360 61 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 array(1,24),.22.=>.array(1,25)),
7b380 20 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 .array(.18.=>.array(2,16),.22.=>
7b3a0 20 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 .array(2,16)),.array(.21.=>.arra
7b3c0 79 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 y(1,26)),.array(.14.=>.array(2,1
7b3e0 38 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 8),.18.=>.array(2,18),.22.=>.arr
7b400 61 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 ay(2,18),.24.=>.array(2,18)),.ar
7b420 72 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 ray(.22.=>.array(1,28),.24.=>.ar
7b440 72 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 ray(1,27)),.array(.22.=>.array(2
7b460 2c 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),.24.=>.array(2,20)),.array(
7b480 20 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 .14.=>.array(2,14),.18.=>.array(
7b4a0 32 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 2,14),.22.=>.array(2,14),.24.=>.
7b4c0 61 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 array(2,14)),.array(.3.=>.20,.4.
7b4e0 3d 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 =>.array(1,12),.20.=>.29.),.arra
7b500 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 29 2c 20 35 20 3d y(.3.=>.5,.4.=>.array(1,12),.5.=
7b520 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 3e 20 33 2c 20 38 >.6,.6.=>.array(1,13),.7.=>.3,.8
7b540 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 20 3d 3e 20 61 72 .=>.array(1,9),.9.=>.4,.10.=>.ar
7b560 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 31 29 2c 20 31 33 ray(1,10),.11.=>.array(1,11),.13
7b580 20 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 .=>.30,.15.=>.7,.16.=>.8,.17.=>.
7b5a0 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 2c 31 35 29 29 2c array(1,14),.23.=>.array(1,15)),
7b5c0 20 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 .array(.14.=>.array(2,19),.18.=>
7b5e0 20 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 .array(2,19),.22.=>.array(2,19),
7b600 20 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 .24.=>.array(2,19)),.array(.3.=>
7b620 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 20 36 2c 20 36 20 .5,.4.=>.array(1,12),.5.=>.6,.6.
7b640 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 3d 3e 20 61 72 72 =>.array(1,13),.7.=>.3,.8.=>.arr
7b660 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 61 79 28 31 2c 31 ay(1,9),.9.=>.4,.10.=>.array(1,1
7b680 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 3d 3e 20 33 31 2c 0),.11.=>.array(1,11),.13.=>.31,
7b6a0 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 72 72 61 79 28 31 .15.=>.7,.16.=>.8,.17.=>.array(1
7b6c0 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 61 72 72 61 79 28 ,14),.23.=>.array(1,15)),.array(
7b6e0 20 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 .18.=>.array(2,17),.22.=>.array(
7b700 32 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 2,17)),.array(.18.=>.array(2,15)
7b720 2c 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 ,.22.=>.array(2,15)),.array(.22.
7b740 3d 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 =>.array(2,21),.24.=>.array(2,21
7b760 29 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 )),.);..private.$defaultActions.
7b780 3d 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 =.array(.16.=>.array(2,.6).);...
7b7a0 0a 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 ...public.function.lint($input).
7b7c0 7b 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 {.try.{.$this->parse($input);.}.
7b7e0 63 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 catch.(ParsingException.$e).{.re
7b800 74 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 turn.$e;.}.}.......public.functi
7b820 6f 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 on.parse($input).{.$this->stack.
7b840 3d 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 =.array(0);.$this->vstack.=.arra
7b860 79 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 y(null);.$this->lstack.=.array()
7b880 3b 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 ;..$yytext.=.'';.$yylineno.=.0;.
7b8a0 24 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 $yyleng.=.0;.$recovering.=.0;.$T
7b8c0 45 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 ERROR.=.2;.$EOF.=.1;..$this->lex
7b8e0 65 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 er.=.new.Lexer();.$this->lexer->
7b900 73 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 setInput($input);..$yyloc.=.$thi
7b920 73 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 s->lexer->yylloc;.$this->lstack[
7b940 5d 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 ].=.$yyloc;..$symbol.=.null;.$pr
7b960 65 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 eErrorSymbol.=.null;.$state.=.nu
7b980 6c 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 ll;.$action.=.null;.$a.=.null;.$
7b9a0 72 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 r.=.null;.$yyval.=.new.stdClass;
7b9c0 0a 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 .$p.=.null;.$len.=.null;.$newSta
7b9e0 74 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 te.=.null;.$expected.=.null;.$er
7ba00 72 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 rStr.=.null;..while.(true).{...$
7ba20 73 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 state.=.$this->stack[count($this
7ba40 2d 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 ->stack)-1];....if.(isset($this-
7ba60 3e 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 >defaultActions[$state])).{.$act
7ba80 69 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 ion.=.$this->defaultActions[$sta
7baa0 74 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 te];.}.else.{.if.($symbol.==.nul
7bac0 6c 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 l).{.$symbol.=.$this->lex();.}..
7bae0 20 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 .$action.=.isset($this->table[$s
7bb00 74 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 tate][$symbol]).?.$this->table[$
7bb20 73 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 state][$symbol].:.false;.}....if
7bb40 20 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 .(!$action.||.!$action[0]).{.if.
7bb60 28 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 (!$recovering).{...$expected.=.a
7bb80 72 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 rray();.foreach.($this->table[$s
7bba0 74 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 tate].as.$p.=>.$ignore).{.if.(is
7bbc0 73 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 set($this->terminals_[$p]).&&.$p
7bbe0 20 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 .>.2).{.$expected[].=."'"...$thi
7bc00 73 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 s->terminals_[$p]..."'";.}.}..$e
7bc20 72 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 rrStr.=.'Parse.error.on.line.'..
7bc40 20 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 .($yylineno+1)...":\n"...$this->
7bc60 6c 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 lexer->showPosition()..."\nExpec
7bc80 74 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 ted.one.of:."...implode(',.',.$e
7bca0 78 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 xpected);.$this->parseError($err
7bcc0 53 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 Str,.array(.'text'.=>.$this->lex
7bce0 65 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 er->match,.'token'.=>.!empty($th
7bd00 69 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 is->terminals_[$symbol]).?.$this
7bd20 2d 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 ->terminals_[$symbol].:.$symbol,
7bd40 0a 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 .'line'.=>.$this->lexer->yylinen
7bd60 6f 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 o,.'loc'.=>.$yyloc,.'expected'.=
7bd80 3e 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 >.$expected,.));.}....if.($recov
7bda0 65 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 ering.==.3).{.if.($symbol.==.$EO
7bdc0 46 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 F).{.throw.new.ParsingException(
7bde0 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 0a 7d $errStr.?:.'Parsing.halted.');.}
7be00 0a 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 ....$yyleng.=.$this->lexer->yyle
7be20 6e 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 ng;.$yytext.=.$this->lexer->yyte
7be40 78 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 xt;.$yylineno.=.$this->lexer->yy
7be60 6c 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 lineno;.$yyloc.=.$this->lexer->y
7be80 79 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 ylloc;.$symbol.=.$this->lex();.}
7bea0 0a 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 ....while.(true).{...if.(array_k
7bec0 65 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 ey_exists($TERROR,.$this->table[
7bee0 24 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 $state])).{.break;.}.if.($state.
7bf00 3d 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 ==.0).{.throw.new.ParsingExcepti
7bf20 6f 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 on($errStr.?:.'Parsing.halted.')
7bf40 3b 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 ;.}.$this->popStack(1);.$state.=
7bf60 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 63 6b .$this->stack[count($this->stack
7bf80 29 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 )-1];.}..$preErrorSymbol.=.$symb
7bfa0 6f 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 ol;...$symbol.=.$TERROR;...$stat
7bfc0 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 3e 73 74 e.=.$this->stack[count($this->st
7bfe0 61 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 ack)-1];.$action.=.isset($this->
7c000 74 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 table[$state][$TERROR]).?.$this-
7c020 3e 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 >table[$state][$TERROR].:.false;
7c040 0a 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 .$recovering.=.3;...}....if.(is_
7c060 61 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 array($action[0]).&&.count($acti
7c080 6f 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 on).>.1).{.throw.new.ParsingExce
7c0a0 70 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 ption('Parse.Error:.multiple.act
7c0c0 69 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 ions.possible.at.state:.'...$sta
7c0e0 74 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 te...',.token:.'...$symbol);.}..
7c100 73 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 switch.($action[0]).{.case.1:...
7c120 24 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 $this->stack[].=.$symbol;.$this-
7c140 3e 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 >vstack[].=.$this->lexer->yytext
7c160 3b 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 ;.$this->lstack[].=.$this->lexer
7c180 2d 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 ->yylloc;.$this->stack[].=.$acti
7c1a0 6f 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 on[1];...$symbol.=.null;.if.(!$p
7c1c0 72 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 reErrorSymbol).{...$yyleng.=.$th
7c1e0 69 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 is->lexer->yyleng;.$yytext.=.$th
7c200 69 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 is->lexer->yytext;.$yylineno.=.$
7c220 74 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 this->lexer->yylineno;.$yyloc.=.
7c240 24 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 $this->lexer->yylloc;.if.($recov
7c260 65 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 ering.>.0).{.$recovering--;.}.}.
7c280 65 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 else.{...$symbol.=.$preErrorSymb
7c2a0 6f 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 ol;.$preErrorSymbol.=.null;.}.br
7c2c0 65 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 eak;..case.2:...$len.=.$this->pr
7c2e0 6f 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 oductions_[$action[1]][1];....$y
7c300 79 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 yval->token.=.$this->vstack[coun
7c320 74 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 t($this->vstack).-.$len];.....$y
7c340 79 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 yval->store.=.array(...'first_li
7c360 6e 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 ne'.=>.$this->lstack[count($this
7c380 2d 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 ->lstack).-.($len.?:.1)]['first_
7c3a0 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 6c 73 line'],.'last_line'.=>.$this->ls
7c3c0 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 20 2d 20 31 5d 5b 27 tack[count($this->lstack).-.1]['
7c3e0 6c 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 last_line'],.'first_column'.=>.$
7c400 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 3e 6c 73 74 61 63 6b this->lstack[count($this->lstack
7c420 29 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 ).-.($len.?:.1)]['first_column']
7c440 2c 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 ,.'last_column'.=>.$this->lstack
7c460 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 61 73 74 [count($this->lstack).-.1]['last
7c480 5f 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 _column'],.);.$r.=.$this->perfor
7c4a0 6d 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 mAction($yyval,.$yytext,.$yyleng
7c4c0 2c 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 ,.$yylineno,.$action[1],.$this->
7c4e0 76 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 vstack,.$this->lstack);..if.(!$r
7c500 20 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 .instanceof.Undefined).{.return.
7c520 24 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 $r;.}..if.($len).{.$this->popSta
7c540 63 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 ck($len);.}..$this->stack[].=.$t
7c560 68 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 his->productions_[$action[1]][0]
7c580 3b 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 ;...$this->vstack[].=.$yyval->to
7c5a0 6b 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 ken;.$this->lstack[].=.$yyval->s
7c5c0 74 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 tore;.$newState.=.$this->table[$
7c5e0 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 2d this->stack[count($this->stack)-
7c600 32 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 2]][$this->stack[count($this->st
7c620 61 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 ack)-1]];.$this->stack[].=.$newS
7c640 74 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 tate;.break;..case.3:...return.t
7c660 72 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 rue;.}.}.return.true;.}..protect
7c680 65 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 ed.function.parseError($str,.$ha
7c6a0 73 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 sh).{.throw.new.ParsingException
7c6c0 28 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 ($str,.$hash);.}........private.
7c6e0 66 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 function.performAction(stdClass.
7c700 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 20 24 79 79 6c 69 6e $yyval,.$yytext,.$yyleng,.$yylin
7c720 65 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 eno,.$yystate,.&$tokens).{...$le
7c740 6e 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 n.=.count($tokens).-.1;.switch.(
7c760 24 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 $yystate).{.case.1:.$yytext.=pre
7c780 67 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 g_replace_callback('{(?:\\\\["bf
7c7a0 6e 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 nrt/\\\\]|\\\\u[a-fA-F0-9]{4})}'
7c7c0 2c 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 ,.array($this,.'stringInterpolat
7c7e0 69 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 ion'),.$yytext);.$yyval->token.=
7c800 20 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 .$yytext;.break;.case.2:.if.(str
7c820 70 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 pos($yytext,.'e').!==.false.||.s
7c840 74 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 trpos($yytext,.'E').!==.false).{
7c860 0a 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 .$yyval->token.=.floatval($yytex
7c880 74 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 t);.}.else.{.$yyval->token.=.str
7c8a0 70 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 pos($yytext,.'.').===.false.?.in
7c8c0 74 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 tval($yytext).:.floatval($yytext
7c8e0 29 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 );.}.break;.case.3:.$yyval->toke
7c900 6e 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 n.=.null;.break;.case.4:.$yyval-
7c920 3e 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 >token.=.true;.break;.case.5:.$y
7c940 79 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 yval->token.=.false;.break;.case
7c960 20 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 .6:.return.$yyval->token.=.$toke
7c980 6e 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 ns[$len-1];.case.13:.$yyval->tok
7c9a0 65 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 en.=.new.stdClass;.break;.case.1
7c9c0 34 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 4:.$yyval->token.=.$tokens[$len-
7c9e0 31 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 1];.break;.case.15:.$yyval->toke
7ca00 6e 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 n.=.array($tokens[$len-2],.$toke
7ca20 6e 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 ns[$len]);.break;.case.16:.$yyva
7ca40 6c 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 l->token.=.new.stdClass;.$proper
7ca60 74 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 ty.=.$tokens[$len][0].===.''.?.'
7ca80 5f 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 _empty_'.:.$tokens[$len][0];.$yy
7caa0 76 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 val->token->$property.=.$tokens[
7cac0 24 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 $len][1];.break;.case.17:.$yyval
7cae0 2d 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 ->token.=.$tokens[$len-2];.$toke
7cb00 6e 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 ns[$len-2]->{$tokens[$len][0]}.=
7cb20 20 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 .$tokens[$len][1];.break;.case.1
7cb40 38 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 8:.$yyval->token.=.array();.brea
7cb60 6b 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 k;.case.19:.$yyval->token.=.$tok
7cb80 65 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 ens[$len-1];.break;.case.20:.$yy
7cba0 76 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 val->token.=.array($tokens[$len]
7cbc0 29 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 );.break;.case.21:.$tokens[$len-
7cbe0 32 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 2][].=.$tokens[$len];.$yyval->to
7cc00 6b 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 ken.=.$tokens[$len-2];.break;.}.
7cc20 0a 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 .return.new.Undefined();.}..priv
7cc40 61 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 ate.function.stringInterpolation
7cc60 28 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 ($match).{.switch.($match[0]).{.
7cc80 63 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 case.'\\\\':.return.'\\';.case.'
7cca0 5c 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 \"':.return.'"';.case.'\b':.retu
7ccc0 72 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 rn.chr(8);.case.'\f':.return.chr
7cce0 28 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 (12);.case.'\n':.return."\n";.ca
7cd00 73 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 se.'\r':.return."\r";.case.'\t':
7cd20 0a 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 .return."\t";.case.'\/':.return.
7cd40 22 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 "/";.default:.return.html_entity
7cd60 5f 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 _decode('&#x'.ltrim(substr($matc
7cd80 68 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 h[0],.2),.'0').';',.0,.'UTF-8');
7cda0 0a 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 .}.}..private.function.popStack(
7cdc0 24 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 $n).{.$this->stack.=.array_slice
7cde0 28 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 ($this->stack,.0,.-.(2.*.$n));.$
7ce00 74 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 this->vstack.=.array_slice($this
7ce20 2d 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 ->vstack,.0,.-.$n);.$this->lstac
7ce40 6b 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 k.=.array_slice($this->lstack,.0
7ce60 2c 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 ,.-.$n);.}..private.function.lex
7ce80 28 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 ().{.$token.=.$this->lexer->lex(
7cea0 29 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 ).?:.1;.....if.(!is_numeric($tok
7cec0 65 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 en)).{.$token.=.isset($this->sym
7cee0 62 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 bols[$token]).?.$this->symbols[$
7cf00 74 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 token].:.$token;.}.return.$token
7cf20 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 20 ;.}.}.<?php...........namespace.
7cf40 53 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 Seld\JsonLint;.......class.Lexer
7cf60 0a 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 .{.private.$EOF.=.1;.private.$ru
7cf80 6c 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 les.=.array(.0.=>.'/^\s+/',.1.=>
7cfa0 20 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 .'/^-?([0-9]|[1-9][0-9]+)(\.[0-9
7cfc0 5d 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 ]+)?([eE][+-]?[0-9]+)?\b/',.2.=>
7cfe0 20 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 .'{^"(\\\\["bfnrt/\\\\]|\\\\u[a-
7d000 66 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 fA-F0-9]{4}|[^\0-\x09\x0a-\x1f\\
7d020 5c 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 \\"])*"}',.3.=>.'/^\{/',.4.=>.'/
7d040 5e 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 ^\}/',.5.=>.'/^\[/',.6.=>.'/^\]/
7d060 27 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 ',.7.=>.'/^,/',.8.=>.'/^:/',.9.=
7d080 3e 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 >.'/^true\b/',.10.=>.'/^false\b/
7d0a0 27 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 ',.11.=>.'/^null\b/',.12.=>.'/^$
7d0c0 2f 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 /',.13.=>.'/^./',.);..private.$c
7d0e0 6f 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 onditions.=.array(."INITIAL".=>.
7d100 61 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 array(."rules".=>.array(0,1,2,3,
7d120 34 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 4,5,6,7,8,9,10,11,12,13),."inclu
7d140 73 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 sive".=>.true,.),.);..public.fun
7d160 63 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 ction.lex().{.$r.=.$this->next()
7d180 3b 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 ;.if.(!$r.instanceof.Undefined).
7d1a0 7b 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 {.return.$r;.}.return.$this->lex
7d1c0 28 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 ();.}..public.function.setInput(
7d1e0 24 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 $input).{.$this->_input.=.$input
7d200 3b 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 ;.$this->_more.=.$this->_less.=.
7d220 24 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 $this->done.=.false;.$this->yyli
7d240 6e 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 neno.=.$this->yyleng.=.0;.$this-
7d260 3e 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 >yytext.=.$this->matched.=.$this
7d280 2d 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 ->match.=.'';.$this->conditionSt
7d2a0 61 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 ack.=.array('INITIAL');.$this->y
7d2c0 79 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 ylloc.=.array('first_line'.=>.1,
7d2e0 20 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 .'first_column'.=>.0,.'last_line
7d300 27 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 '.=>.1,.'last_column'.=>.0);..re
7d320 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 20 73 turn.$this;.}..public.function.s
7d340 68 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 howPosition().{.$pre.=.$this->pa
7d360 73 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 stInput();.$c.=.str_repeat('-',.
7d380 73 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 strlen($pre));...return.$pre...$
7d3a0 74 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 this->upcomingInput()..."\n"...$
7d3c0 63 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 c..."^";.}..protected.function.p
7d3e0 61 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 arseError($str,.$hash).{.throw.n
7d400 65 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 ew.\Exception($str);.}..private.
7d420 66 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 function.input().{.$ch.=.$this->
7d440 5f 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 _input[0];.$this->yytext.+=.$ch;
7d460 0a 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 .$this->yyleng++;.$this->match.+
7d480 3d 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 =.$ch;.$this->matched.+=.$ch;.if
7d4a0 20 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 .(strpos($ch,."\n").!==.false).{
7d4c0 0a 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 .$this->yylineno++;.}.array_shif
7d4e0 74 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 t($this->_input);...return.$ch;.
7d500 7d 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 }..private.function.unput($ch).{
7d520 0a 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 .$this->_input.=.$ch...$this->_i
7d540 6e 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 nput;.return.$this;.}..private.f
7d560 75 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 unction.more().{.$this->_more.=.
7d580 74 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 true;.return.$this;.}..private.f
7d5a0 75 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 unction.pastInput().{.$past.=.su
7d5c0 62 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 bstr($this->matched,.0,.strlen($
7d5e0 74 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 this->matched).-.strlen($this->m
7d600 61 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 atch));.return.(strlen($past).>.
7d620 32 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 20.?.'...'.:.'')...str_replace("
7d640 5c 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 \n",.'',.substr($past,.-20));.}.
7d660 0a 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 .private.function.upcomingInput(
7d680 29 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 ).{.$next.=.$this->match;.if.(st
7d6a0 72 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 rlen($next).<.20).{.$next.+=.sub
7d6c0 73 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 str($this->_input,.0,.20.-.strle
7d6e0 6e 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 n($next));.}.return.str_replace(
7d700 22 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 "\n",.'',.substr($next,.0,.20)..
7d720 20 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 .(strlen($next).>.20.?.'...'.:.'
7d740 27 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 '));.}..private.function.next().
7d760 7b 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 {.if.($this->done).{.return.$thi
7d780 73 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 s->EOF;.}.if.(!$this->_input).{.
7d7a0 24 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 $this->done.=.true;.}..$token.=.
7d7c0 6e 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 null;.$match.=.null;.$col.=.null
7d7e0 3b 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 ;.$lines.=.null;..if.(!$this->_m
7d800 6f 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 ore).{.$this->yytext.=.'';.$this
7d820 2d 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 ->match.=.'';.}..$rules.=.$this-
7d840 3e 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 >_currentRules();.$rulesLen.=.co
7d860 75 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 unt($rules);..for.($i=0;.$i.<.$r
7d880 75 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 ulesLen;.$i++).{.if.(preg_match(
7d8a0 24 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 $this->rules[$rules[$i]],.$this-
7d8c0 3e 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 >_input,.$match)).{.preg_match_a
7d8e0 6c 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 ll('/\n.*/',.$match[0],.$lines);
7d900 0a 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 .$lines.=.$lines[0];.if.($lines)
7d920 20 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 .{.$this->yylineno.+=.count($lin
7d940 65 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 es);.}..$this->yylloc.=.array(.'
7d960 66 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 first_line'.=>.$this->yylloc['la
7d980 73 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 st_line'],.'last_line'.=>.$this-
7d9a0 3e 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 >yylineno+1,.'first_column'.=>.$
7d9c0 74 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 this->yylloc['last_column'],.'la
7d9e0 73 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 st_column'.=>.$lines.?.strlen($l
7da00 69 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 ines[count($lines).-.1]).-.1.:.$
7da20 74 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 this->yylloc['last_column'].+.st
7da40 72 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 rlen($match[0]),.);.$this->yytex
7da60 74 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 t..=.$match[0];.$this->match..=.
7da80 24 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 $match[0];.$this->matches.=.$mat
7daa0 63 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 ch;.$this->yyleng.=.strlen($this
7dac0 2d 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 ->yytext);.$this->_more.=.false;
7dae0 0a 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 .$this->_input.=.substr($this->_
7db00 69 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 input,.strlen($match[0]));.$this
7db20 2d 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 ->matched..=.$match[0];.$token.=
7db40 20 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 .$this->performAction($rules[$i]
7db60 2c 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 ,.$this->conditionStack[count($t
7db80 68 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 his->conditionStack)-1]);.if.($t
7dba0 6f 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 oken).{.return.$token;.}.return.
7dbc0 6e 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 new.Undefined();.}.}..if.($this-
7dbe0 3e 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 >_input.===."").{.return.$this->
7dc00 45 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 EOF;.}..$this->parseError(.'Lexi
7dc20 63 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 cal.error.on.line.'...($this->yy
7dc40 6c 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 lineno+1)..."..Unrecognized.text
7dc60 2e 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 .\n"...$this->showPosition(),.ar
7dc80 72 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 ray(.'text'.=>."",.'token'.=>.nu
7dca0 6c 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 ll,.'line'.=>.$this->yylineno,.)
7dcc0 0a 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 .);.}..private.function.begin($c
7dce0 6f 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 ondition).{.$this->conditionStac
7dd00 6b 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 k[].=.$condition;.}..private.fun
7dd20 63 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 ction.popState().{.return.array_
7dd40 70 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 pop($this->conditionStack);.}..p
7dd60 72 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 rivate.function._currentRules().
7dd80 7b 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 {.return.$this->conditions[$this
7dda0 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 69 73 2d 3e 63 6f ->conditionStack[count($this->co
7ddc0 6e 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 nditionStack)-1]]['rules'];.}..p
7dde0 72 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 rivate.function.performAction($a
7de00 76 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 voiding_name_collisions,.$YY_STA
7de20 52 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 RT).{.$YYSTATE.=.$YY_START;.swit
7de40 63 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 ch.($avoiding_name_collisions).{
7de60 0a 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 .case.0:.break;.case.1:.return.6
7de80 3b 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 ;.break;.case.2:.$this->yytext.=
7dea0 20 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 .substr($this->yytext,.1,.$this-
7dec0 3e 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 >yyleng-2);.return.4;.case.3:.re
7dee0 74 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 turn.17;.case.4:.return.18;.case
7df00 20 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 .5:.return.23;.case.6:.return.24
7df20 3b 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 ;.case.7:.return.22;.case.8:.ret
7df40 75 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 urn.21;.case.9:.return.10;.case.
7df60 31 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 10:.return.11;.case.11:.return.8
7df80 3b 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 ;.case.12:.return.14;.case.13:.r
7dfa0 65 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 eturn.'INVALID';.}.}.}.<?php....
7dfc0 0a 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 .......namespace.Seld\JsonLint;.
7dfe0 0a 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 .class.ParsingException.extends.
7e000 5c 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 \Exception.{.protected.$details;
7e020 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 6d ..public.function.__construct($m
7e040 65 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 essage,.$details.=.array()).{.$t
7e060 68 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 his->details.=.$details;.parent:
7e080 3a 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 :__construct($message);.}..publi
7e0a0 63 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 c.function.getDetails().{.return
7e0c0 20 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 .$this->details;.}.}<?php..names
7e0e0 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 0a 0a 0a pace.JsonSchema\Constraints;....
7e100 0a 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 ....class.Undefined.extends.Cons
7e120 74 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 traint.{....function.check($valu
7e140 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,
7e160 20 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 .$i.=.null).{.if.(!is_object($sc
7e180 68 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 hema)).{.return;.}..$path.=.$thi
7e1a0 73 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 s->incrementPath($path,.$i);....
7e1c0 24 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 $this->validateCommonProperties(
7e1e0 24 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 $value,.$schema,.$path);....$thi
7e200 73 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 s->validateTypes($value,.$schema
7e220 2c 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 ,.$path,.$i);...}..........publi
7e240 63 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 c.function.validateTypes($value,
7e260 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 24 .$schema.=.null,.$path.=.null,.$
7e280 69 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 i.=.null).{...if.(is_array($valu
7e2a0 65 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 e)).{.$this->checkArray($value,.
7e2c0 24 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 $schema,.$path,.$i);.}....if.(is
7e2e0 5f 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 _object($value).&&.isset($schema
7e300 2d 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 ->properties)).{.$this->checkObj
7e320 65 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 ect($value,.$schema->properties,
7e340 20 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 .$path,.isset($schema->additiona
7e360 6c 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 lProperties).?.$schema->addition
7e380 61 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 alProperties.:.null);.}....if.(i
7e3a0 73 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 s_string($value)).{.$this->check
7e3c0 53 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 String($value,.$schema,.$path,.$
7e3e0 69 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 i);.}....if.(is_numeric($value))
7e400 20 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 .{.$this->checkNumber($value,.$s
7e420 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 73 65 chema,.$path,.$i);.}....if.(isse
7e440 74 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 t($schema->enum)).{.$this->check
7e460 45 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 Enum($value,.$schema,.$path,.$i)
7e480 3b 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 ;.}.}..........protected.functio
7e4a0 6e 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 n.validateCommonProperties($valu
7e4c0 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,
7e4e0 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 73 63 68 65 6d .$i.=.null).{...if.(isset($schem
7e500 61 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 a->extends)).{.$this->checkUndef
7e520 69 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 ined($value,.$schema->extends,.$
7e540 70 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 path,.$i);.}....if.(is_object($v
7e560 61 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 alue).&&.$value.instanceOf.Undef
7e580 69 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 ined).{.if.(isset($schema->requi
7e5a0 72 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 red).&&.$schema->required).{.$th
7e5c0 69 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 is->addError($path,."is.missing.
7e5e0 61 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 and.it.is.required");.}.}.else.{
7e600 0a 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 .$this->checkType($value,.$schem
7e620 61 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 a,.$path);.}....if.(isset($schem
7e640 61 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 a->disallow)).{.$initErrors.=.$t
7e660 68 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 his->getErrors();..$this->checkU
7e680 6e 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 ndefined($value,.$schema->disall
7e6a0 6f 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 ow,.$path);....if.(count($this->
7e6c0 67 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 getErrors()).==.count($initError
7e6e0 73 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 s)).{.$this->addError($path,.".d
7e700 69 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 isallowed.value.was.matched");.}
7e720 20 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 .else.{.$this->errors.=.$initErr
7e740 6f 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 ors;.}.}.}.}<?php..namespace.Jso
7e760 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 73 nSchema\Constraints;........clas
7e780 73 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 s.Type.extends.Constraint.{....f
7e7a0 75 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 unction.check($value.=.null,.$sc
7e7c0 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.=.
7e7e0 6e 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 null).{.$type.=.isset($schema->t
7e800 79 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 ype).?.$schema->type.:.null;.$is
7e820 56 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 Valid.=.true;..if.(is_array($typ
7e840 65 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 e)).{...$validatedOneType.=.fals
7e860 65 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 e;.$errors.=.array();.foreach.($
7e880 74 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 type.as.$tp).{.$validator.=.new.
7e8a0 54 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 Type($this->checkMode);.$subSche
7e8c0 6d 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 ma.=.new.\stdClass();.$subSchema
7e8e0 2d 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 ->type.=.$tp;.$validator->check(
7e900 24 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 $value,.$subSchema,.$path,.null)
7e920 3b 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 ;.$error.=.$validator->getErrors
7e940 28 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 ();..if.(!count($error)).{.$vali
7e960 64 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 datedOneType.=.true;.break;.}.el
7e980 73 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 se.{.$errors.=.$error;.}.}.if.(!
7e9a0 24 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 $validatedOneType).{.return.$thi
7e9c0 73 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 s->addErrors($errors);.}.}.elsei
7e9e0 66 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 f.(is_object($type)).{.$this->ch
7ea00 65 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 eckUndefined($value,.$type,.$pat
7ea20 68 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 h);.}.else.{.$isValid.=.$this->v
7ea40 61 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 alidateType($value,.$type);.}..i
7ea60 66 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 f.($isValid.===.false).{.$this->
7ea80 61 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 addError($path,.gettype($value).
7eaa0 2e 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 ..".value.found,.but.a."...$type
7eac0 20 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 ...".is.required");.}.}.........
7eae0 0a 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 .protected.function.validateType
7eb00 28 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 ($value,.$type).{...if.(!$type).
7eb20 7b 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 {.return.true;.}..switch.($type)
7eb40 20 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 .{.case.'integer'.:.return.(inte
7eb60 67 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 ger)$value.==.$value.?.true.:.is
7eb80 5f 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 _int($value);.case.'number'.:.re
7eba0 74 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 turn.is_numeric($value);.case.'b
7ebc0 6f 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 oolean'.:.return.is_bool($value)
7ebe0 3b 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 ;.case.'object'.:.return.is_obje
7ec00 63 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 ct($value);...case.'array'.:.ret
7ec20 75 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 urn.is_array($value);.case.'stri
7ec40 6e 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 ng'.:.return.is_string($value);.
7ec60 63 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 case.'null'.:.return.is_null($va
7ec80 6c 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 lue);.case.'any'.:.return.true;.
7eca0 64 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 default:.throw.new.\InvalidArgum
7ecc0 65 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 entException((is_object($value).
7ece0 3f 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 ?.'object'.:.$value)...'.is.a.in
7ed00 76 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 valid.type.for.'...$type);.}.}.}
7ed20 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 6e 73 <?php..namespace.JsonSchema\Cons
7ed40 74 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 traints;........class.Schema.ext
7ed60 65 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 ends.Constraint.{....public.func
7ed80 74 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 tion.check($element,.$schema.=.n
7eda0 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 0a 7b 0a ull,.$path.=.null,.$i.=.null).{.
7edc0 69 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 if.($schema.!==.null).{...$this-
7ede0 3e 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 >checkUndefined($element,.$schem
7ee00 61 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 a,.'',.'');.}.elseif.(isset($ele
7ee20 6d 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 ment->{$this->inlineSchemaProper
7ee40 74 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 ty})).{...$this->checkUndefined(
7ee60 24 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 $element,.$element->{$this->inli
7ee80 6e 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 neSchemaProperty},.'',.'');.}.el
7eea0 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 45 se.{.throw.new.\InvalidArgumentE
7eec0 78 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 xception('no.schema.found.to.ver
7eee0 69 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 ify.against');.}.}.}<?php..names
7ef00 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 0a 0a 0a pace.JsonSchema\Constraints;....
7ef20 0a 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 ....class.Number.extends.Constra
7ef40 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 63 68 65 63 6b 28 24 int.{....public.function.check($
7ef60 65 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 element,.$schema.=.null,.$path.=
7ef80 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 73 73 65 74 28 .null,.$i.=.null).{...if.(isset(
7efa0 24 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 $schema->minimum).&&.$element.<.
7efc0 24 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 $schema->minimum).{.$this->addEr
7efe0 72 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 ror($path,."must.have.a.minimum.
7f000 76 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 value.of."...$schema->minimum);.
7f020 7d 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 }....if.(isset($schema->maximum)
7f040 20 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 .&&.$element.>.$schema->maximum)
7f060 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 20 .{.$this->addError($path,."must.
7f080 68 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 have.a.maximum.value.of."...$sch
7f0a0 65 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 ema->maximum);.}....if.(isset($s
7f0c0 63 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 chema->divisibleBy).&&.$element.
7f0e0 25 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 %.$schema->divisibleBy.!=.0).{.$
7f100 74 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 this->addError($path,."is.not.di
7f120 76 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 visible.by."...$schema->divisibl
7f140 65 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 eBy);.}.}.}<?php..namespace.Json
7f160 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
7f180 20 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 .Object.extends.Constraint.{....
7f1a0 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 24 64 65 66 69 6e 69 function.check($element,.$defini
7f1c0 74 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 tion.=.null,.$path.=.null,.$addi
7f1e0 74 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 tionalProp.=.null).{...$this->va
7f200 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 20 24 64 65 66 69 lidateDefinition($element,.$defi
7f220 6e 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 nition,.$path);....$this->valida
7f240 74 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 teElement($element,.$definition,
7f260 20 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 .$path,.$additionalProp);.}.....
7f280 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 45 6c 65 .....public.function.validateEle
7f2a0 6d 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 ment($element,.$objectDefinition
7f2c0 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 69 6f 6e .=.null,.$path.=.null,.$addition
7f2e0 61 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 alProp.=.null).{.foreach.($eleme
7f300 6e 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 nt.as.$i.=>.$value).{..$property
7f320 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 2c 20 .=.$this->getProperty($element,.
7f340 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 69 6f $i,.new.Undefined());.$definitio
7f360 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 44 65 n.=.$this->getProperty($objectDe
7f380 66 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 finition,.$i);....if.($this->get
7f3a0 50 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 Property($definition,.'required'
7f3c0 29 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 ).&&.!$property).{.$this->addErr
7f3e0 6f 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 or($path,."the.property."...$i..
7f400 20 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 .".is.required");.}....if.($addi
7f420 74 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 tionalProp.===.false.&&.$this->i
7f440 6e 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 nlineSchemaProperty.!==.$i.&&.!$
7f460 64 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 definition).{.$this->addError($p
7f480 61 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 ath,."The.property."...$i...".is
7f4a0 20 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 .not.defined.and.the.definition.
7f4c0 64 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 does.not.allow.additional.proper
7f4e0 74 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 ties");.}....if.($additionalProp
7f500 20 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 .&&.!$definition).{.$this->check
7f520 55 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 Undefined($value,.$additionalPro
7f540 70 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 p,.$path,.$i);.}....$require.=.$
7f560 74 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 this->getProperty($definition,.'
7f580 72 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 requires');.if.($require.&&.!$th
7f5a0 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 72 65 71 75 69 is->getProperty($element,.$requi
7f5c0 72 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 re)).{.$this->addError($path,."t
7f5e0 68 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 he.presence.of.the.property."...
7f600 24 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 $i...".requires.that."...$requir
7f620 65 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 e...".also.be.present");.}....$t
7f640 68 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 his->checkUndefined($value,.$def
7f660 69 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 inition.?.:.new.\stdClass(),.$pa
7f680 74 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 th,.$i);.}.}.........public.func
7f6a0 74 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 tion.validateDefinition($element
7f6c0 2c 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 ,.$objectDefinition.=.null,.$pat
7f6e0 68 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 h.=.null).{.foreach.($objectDefi
7f700 6e 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 nition.as.$i.=>.$value).{.$prope
7f720 72 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 rty.=.$this->getProperty($elemen
7f740 74 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 t,.$i,.new.Undefined());.$defini
7f760 74 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 tion.=.$this->getProperty($objec
7f780 74 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 tDefinition,.$i);.$this->checkUn
7f7a0 64 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 defined($property,.$definition,.
7f7c0 24 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 $path,.$i);.}.}..........protect
7f7e0 65 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 ed.function.getProperty($element
7f800 2c 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 ,.$property,.$fallback.=.null).{
7f820 0a 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 .if.(is_array($element).).{.retu
7f840 72 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 rn.array_key_exists($property,.$
7f860 65 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 element).?.$element[$property].:
7f880 20 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 .$fallback;.}.else.{.return.isse
7f8a0 74 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 t($element->$property).?.$elemen
7f8c0 74 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 t->$property.:.$fallback;.}.}.}<
7f8e0 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
7f900 72 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 raints;.......interface.Constrai
7f920 6e 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 ntInterface.{......function.getE
7f940 72 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 rrors();.......function.addError
7f960 73 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 s(array.$errors);........functio
7f980 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 3b 0a 0a 0a 0a n.addError($path,.$message);....
7f9a0 0a 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 ...function.isValid();..........
7f9c0 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 63 68 65 6d 61 20 .function.check($value,.$schema.
7f9e0 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)
7fa00 3b 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 ;.}<?php..namespace.JsonSchema\C
7fa20 6f 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 onstraints;........abstract.clas
7fa40 73 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 s.Constraint.implements.Constrai
7fa60 6e 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 ntInterface.{.protected.$checkMo
7fa80 64 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 de.=.self::CHECK_MODE_NORMAL;.pr
7faa0 6f 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 otected.$errors.=.array();.prote
7fac0 63 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 cted.$inlineSchemaProperty.=.'$s
7fae0 63 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 chema';..const.CHECK_MODE_NORMAL
7fb00 20 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 .=.1;.const.CHECK_MODE_TYPE_CAST
7fb20 20 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 .=.2;.....public.function.__cons
7fb40 74 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 truct($checkMode.=.self::CHECK_M
7fb60 4f 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 ODE_NORMAL).{.$this->checkMode.=
7fb80 20 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 .$checkMode;.}.....public.functi
7fba0 6f 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 on.addError($path,.$message).{.$
7fbc0 74 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 this->errors[].=.array(.'propert
7fbe0 79 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 y'.=>.$path,.'message'.=>.$messa
7fc00 67 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 ge.);.}.....public.function.addE
7fc20 72 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 rrors(array.$errors).{.$this->er
7fc40 72 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 rors.=.array_merge($this->errors
7fc60 2c 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 ,.$errors);.}.....public.functio
7fc80 6e 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 n.getErrors().{.return.array_uni
7fca0 71 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 que($this->errors,.SORT_REGULAR)
7fcc0 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 69 6f 6e 20 69 ;.}.........protected.function.i
7fce0 6e 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 ncrementPath($path,.$i).{.if.($p
7fd00 61 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 ath.!==.'').{.if.(is_int($i)).{.
7fd20 24 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 $path..=.'['...$i...']';.}.else.
7fd40 69 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 if.($i.==.'').{.$path..=.'';.}.e
7fd60 6c 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 lse.{.$path..=.'.'...$i;.}.}.els
7fd80 65 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 e.{.$path.=.$i;.}..return.$path;
7fda0 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 20 63 .}..........protected.function.c
7fdc0 68 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 heckArray($value,.$schema.=.null
7fde0 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 24 76 61 ,.$path.=.null,.$i.=.null).{.$va
7fe00 6c 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 lidator.=.new.Collection($this->
7fe20 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 76 checkMode);.$validator->check($v
7fe40 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 69 alue,.$schema,.$path,.$i);..$thi
7fe60 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 6f s->addErrors($validator->getErro
7fe80 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 63 rs());.}..........protected.func
7fea0 74 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 tion.checkObject($value,.$schema
7fec0 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
7fee0 29 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 ).{.$validator.=.new.Object($thi
7ff00 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 63 68 65 63 6b s->checkMode);.$validator->check
7ff20 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 0a 0a 24 ($value,.$schema,.$path,.$i);..$
7ff40 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 72 2d 3e 67 65 74 45 this->addErrors($validator->getE
7ff60 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 65 63 74 65 64 20 66 rrors());.}..........protected.f
7ff80 75 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 unction.checkType($value,.$schem
7ffa0 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 75 6c a.=.null,.$path.=.null,.$i.=.nul
7ffc0 6c 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 l).{.$validator.=.new.Type($this
7ffe0 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(
80000 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
80020 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
80040 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
80060 6e 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 nction.checkUndefined($value,.$s
80080 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.=
800a0 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 55 6e 64 65 66 69 .null).{.$validator.=.new.Undefi
800c0 6e 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 ned($this->checkMode);.$validato
800e0 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 68 2c r->check($value,.$schema,.$path,
80100 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 61 74 .$i);..$this->addErrors($validat
80120 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 72 6f or->getErrors());.}..........pro
80140 74 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 tected.function.checkString($val
80160 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 6c 6c ue,.$schema.=.null,.$path.=.null
80180 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 77 20 ,.$i.=.null).{.$validator.=.new.
801a0 53 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 String($this->checkMode);.$valid
801c0 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 61 ator->check($value,.$schema,.$pa
801e0 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 69 th,.$i);..$this->addErrors($vali
80200 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 0a 0a dator->getErrors());.}..........
80220 70 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 protected.function.checkNumber($
80240 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
80260 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
80280 65 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 ew.Number($this->checkMode);.$va
802a0 6c 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 lidator->check($value,.$schema,.
802c0 24 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 $path,.$i);..$this->addErrors($v
802e0 61 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 alidator->getErrors());.}.......
80300 0a 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 ...protected.function.checkEnum(
80320 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 61 74 68 20 3d 20 $value,.$schema.=.null,.$path.=.
80340 6e 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 null,.$i.=.null).{.$validator.=.
80360 6e 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 new.Enum($this->checkMode);.$val
80380 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,.$
803a0 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
803c0 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 70 75 62 lidator->getErrors());.}.....pub
803e0 6c 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 lic.function.isValid().{.return.
80400 21 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 !$this->getErrors();.}.}<?php..n
80420 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 61 69 6e 74 73 3b amespace.JsonSchema\Constraints;
80440 0a 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 ........class.Collection.extends
80460 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 69 6f 6e .Constraint.{....public.function
80480 20 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 .check($value,.$schema.=.null,.$
804a0 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 0a 20 69 66 20 28 path.=.null,.$i.=.null).{...if.(
804c0 69 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 isset($schema->minItems).&&.coun
804e0 74 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 t($value).<.$schema->minItems).{
80500 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 65 72 65 20 6d .$this->addError($path,."There.m
80520 75 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 ust.be.a.minimum.of."...$schema-
80540 3e 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 >minItems...".in.the.array");.}.
80560 0a 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 ..if.(isset($schema->maxItems).&
80580 26 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 &.count($value).>.$schema->maxIt
805a0 65 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 ems).{.$this->addError($path,."T
805c0 68 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 here.must.be.a.maximum.of."...$s
805e0 63 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 chema->maxItems...".in.the.array
80600 22 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 ");.}.....if.(isset($schema->uni
80620 71 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 queItems).&&.array_unique($value
80640 29 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 ).!=.$value).{.$this->addError($
80660 70 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 path,."There.are.no.duplicates.a
80680 6c 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 llowed.in.the.array");.}....if.(
806a0 69 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 isset($schema->items)).{.$this->
806c0 76 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 validateItems($value,.$schema,.$
806e0 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
80700 64 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 d.function.validateItems($value,
80720 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 24 .$schema.=.null,.$path.=.null,.$
80740 69 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 i.=.null).{.if.(!is_array($schem
80760 61 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 a->items)).{...foreach.($value.a
80780 73 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 s.$k.=>.$v).{.$initErrors.=.$thi
807a0 73 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 s->getErrors();....if.(!isset($s
807c0 63 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 chema->additionalItems).||.$sche
807e0 6d 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 ma->additionalItems.===.false).{
80800 0a 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 .$this->checkUndefined($v,.$sche
80820 6d 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 ma->items,.$path,.$k);.}....if.(
80840 63 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 count($initErrors).<.count($this
80860 2d 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 ->getErrors()).&&.(isset($schema
80880 2d 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 ->additionalItems).&&.$schema->a
808a0 64 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 dditionalItems.!==.false)).{.$se
808c0 63 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 condErrors.=.$this->getErrors();
808e0 0a 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 .$this->checkUndefined($v,.$sche
80900 6d 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 ma->additionalItems,.$path,.$k);
80920 0a 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 .}....if.(isset($secondErrors).&
80940 26 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 &.count($secondErrors).<.$this->
80960 67 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 getErrors()).{.$this->errors.=.$
80980 73 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 secondErrors;.}.elseif.(isset($s
809a0 65 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 econdErrors).&&.count($secondErr
809c0 6f 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 ors).==.count($this->getErrors()
809e0 29 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 )).{.$this->errors.=.$initErrors
80a00 3b 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 ;.}.}.}.else.{...foreach.($value
80a20 20 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 .as.$k.=>.$v).{.if.(array_key_ex
80a40 69 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 ists($k,.$schema->items)).{.$thi
80a60 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 61 2d 3e 69 s->checkUndefined($v,.$schema->i
80a80 74 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 tems[$k],.$path,.$k);.}.else.{..
80aa0 20 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 .if.(array_key_exists('additiona
80ac0 6c 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 lItems',.$schema).&&.$schema->ad
80ae0 64 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 ditionalItems.!==.false).{.$this
80b00 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 61 64 ->checkUndefined($v,.$schema->ad
80b20 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 7d 20 65 6c 73 ditionalItems,.$path,.$k);.}.els
80b40 65 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 e.{.$this->addError(.$path,.'The
80b60 20 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 .item.'...$i...'['...$k...'].is.
80b80 6e 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 not.defined.in.the.objTypeDef.an
80ba0 64 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 d.the.objTypeDef.does.not.allow.
80bc0 61 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 additional.properties'.);.}.}.}.
80be0 0a 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 ...for.($k.=.count($value);.$k.<
80c00 20 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 .count($schema->items);.$k++).{.
80c20 24 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 $this->checkUndefined(new.Undefi
80c40 6e 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 ned(),.$schema->items[$k],.$path
80c60 2c 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 ,.$k);.}.}.}.}<?php..namespace.J
80c80 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 0a 0a 0a 63 6c sonSchema\Constraints;........cl
80ca0 61 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 ass.Enum.extends.Constraint.{...
80cc0 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 6c 65 6d 65 6e 74 2c .public.function.check($element,
80ce0 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 24 .$schema.=.null,.$path.=.null,.$
80d00 69 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 i.=.null).{.foreach.($schema->en
80d20 75 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 um.as.$possibleValue).{.if.($pos
80d40 73 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 sibleValue.==.$element).{.$found
80d60 20 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 .=.true;.break;.}.}..if.(!isset(
80d80 24 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 $found)).{.$this->addError($path
80da0 2c 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 ,."does.not.have.a.value.in.the.
80dc0 65 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 enumeration."...implode(',.',.$s
80de0 63 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 chema->enum));.}.}.}<?php..names
80e00 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 0a 0a 0a pace.JsonSchema\Constraints;....
80e20 0a 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 ....class.String.extends.Constra
80e40 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 63 68 65 63 6b 28 24 int.{....public.function.check($
80e60 65 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 element,.$schema.=.null,.$path.=
80e80 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 73 73 65 74 28 .null,.$i.=.null).{...if.(isset(
80ea0 24 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 $schema->maxLength).&&.strlen($e
80ec0 6c 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 lement).>.$schema->maxLength).{.
80ee0 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 62 65 20 $this->addError($path,."must.be.
80f00 61 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 at.most."...$schema->maxLength..
80f20 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 69 66 20 28 69 .".characters.long");.}....if.(i
80f40 73 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 sset($schema->minLength).&&.strl
80f60 65 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 en($element).<.$schema->minLengt
80f80 68 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 h).{.$this->addError($path,."mus
80fa0 74 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 t.be.at.least."...$schema->minLe
80fc0 6e 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 ngth...".characters.long");.}...
80fe0 20 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 .if.(isset($schema->pattern).&&.
81000 21 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 !preg_match('/'...$schema->patte
81020 72 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 rn...'/',.$element)).{.$this->ad
81040 64 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 dError($path,."does.not.match.th
81060 65 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 e.regex.pattern."...$schema->pat
81080 74 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 tern);.}.}.}<?php..namespace.Jso
810a0 6e 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 nSchema;..use.JsonSchema\Constra
810c0 69 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 ints\Schema;.use.JsonSchema\Cons
810e0 74 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 traints\Constraint;.........clas
81100 73 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 s.Validator.extends.Constraint.{
81120 0a 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 ........function.check($value,.$
81140 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 20 schema.=.null,.$path.=.null,.$i.
81160 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 63 68 65 6d =.null).{.$validator.=.new.Schem
81180 61 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 a($this->checkMode);.$validator-
811a0 3e 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 >check($value,.$schema);.$this->
811c0 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 73 28 addErrors($validator->getErrors(
811e0 29 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 ));.}.}<?php...if.(!class_exists
81200 28 27 43 6f 6d 70 6f 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 ('Composer\\Autoload\\ClassLoade
81220 72 27 2c 20 66 61 6c 73 65 29 29 20 7b 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 r',.false)).{.require.__DIR__...
81240 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 '/composer'...'/ClassLoader.php'
81260 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 66 75 6e 63 74 ;.}..return.call_user_func(funct
81280 69 6f 6e 28 29 20 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c ion().{.$loader.=.new.\Composer\
812a0 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 63 6f 6d 70 6f 73 65 Autoload\ClassLoader();.$compose
812c0 72 44 69 72 20 3d 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 0a 24 rDir.=.__DIR__...'/composer';..$
812e0 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 65 72 44 69 72 20 2e 20 27 2f 61 map.=.require.$composerDir...'/a
81300 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 utoload_namespaces.php';.foreach
81320 20 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 .($map.as.$namespace.=>.$path).{
81340 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 .$loader->add($namespace,.$path)
81360 3b 0a 7d 0a 0a 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 24 63 6f 6d 70 6f 73 ;.}..$classMap.=.require.$compos
81380 65 72 44 69 72 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 erDir...'/autoload_classmap.php'
813a0 3b 0a 69 66 20 28 24 63 6c 61 73 73 4d 61 70 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 ;.if.($classMap).{.$loader->addC
813c0 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 2d 3e lassMap($classMap);.}..$loader->
813e0 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 29 3b register();..return.$loader;.});
81400 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f .<?php....$vendorDir.=.dirname(_
81420 5f 44 49 52 5f 5f 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e _DIR__);.$baseDir.=.dirname($ven
81440 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 dorDir);..return.array(.'Symfony
81460 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 73 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 \\Component\\Process'.=>.$vendor
81480 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 27 2c 0a 27 53 79 6d 66 Dir...'/symfony/process/',.'Symf
814a0 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 46 69 6e 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 ony\\Component\\Finder'.=>.$vend
814c0 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 27 2c 0a 27 53 79 6d orDir...'/symfony/finder/',.'Sym
814e0 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 27 20 3d 3e 20 24 76 65 fony\\Component\\Console'.=>.$ve
81500 6e 64 6f 72 44 69 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 ndorDir...'/symfony/console/',.'
81520 53 65 6c 64 5c 5c 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 Seld\\JsonLint'.=>.$vendorDir...
81540 27 2f 73 65 6c 64 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 '/seld/jsonlint/src/',.'JsonSche
81560 6d 61 27 20 3d 3e 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 ma'.=>.$vendorDir...'/justinrain
81580 62 6f 77 2f 6a 73 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 bow/json-schema/src/',.'Composer
815a0 27 20 3d 3e 20 24 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 '.=>.$baseDir...'/src/',.);.<?ph
815c0 70 0a 0a 0a 0a 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 p....$vendorDir.=.dirname(__DIR_
815e0 5f 29 3b 0a 24 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 _);.$baseDir.=.dirname($vendorDi
81600 72 29 3b 0a 0a 72 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 0a r);..return.array(.);.<?php.....
81620 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 41 75 74 6f 6c 6f .......namespace.Composer\Autolo
81640 61 64 3b 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 ad;.............................
81660 0a 63 6c 61 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 .class.ClassLoader.{.private.$pr
81680 65 66 69 78 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 efixes.=.array();.private.$fallb
816a0 61 63 6b 44 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 ackDirs.=.array();.private.$useI
816c0 6e 63 6c 75 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 ncludePath.=.false;.private.$cla
816e0 73 73 4d 61 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 ssMap.=.array();..public.functio
81700 6e 20 67 65 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 n.getPrefixes().{.return.$this->
81720 70 72 65 66 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 prefixes;.}..public.function.get
81740 46 61 6c 6c 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 FallbackDirs().{.return.$this->f
81760 61 6c 6c 62 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 allbackDirs;.}..public.function.
81780 67 65 74 43 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 getClassMap().{.return.$this->cl
817a0 61 73 73 4d 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 assMap;.}.....public.function.ad
817c0 64 43 6c 61 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 dClassMap(array.$classMap).{.if.
817e0 28 24 74 68 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 ($this->classMap).{.$this->class
81800 4d 61 70 20 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 Map.=.array_merge($this->classMa
81820 70 2c 20 24 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 p,.$classMap);.}.else.{.$this->c
81840 6c 61 73 73 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 lassMap.=.$classMap;.}.}........
81860 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 61 public.function.add($prefix,.$pa
81880 74 68 73 29 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 ths).{.if.(!$prefix).{.foreach.(
818a0 28 61 72 72 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 (array).$paths.as.$path).{.$this
818c0 2d 3e 66 61 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 ->fallbackDirs[].=.$path;.}..ret
818e0 75 72 6e 3b 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 urn;.}.if.(isset($this->prefixes
81900 5b 24 70 72 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 [$prefix])).{.$this->prefixes[$p
81920 72 65 66 69 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 refix].=.array_merge(.$this->pre
81940 66 69 78 65 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 fixes[$prefix],.(array).$paths.)
81960 3b 0a 7d 20 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 ;.}.else.{.$this->prefixes[$pref
81980 69 78 5d 20 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 ix].=.(array).$paths;.}.}.......
819a0 70 75 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 public.function.setUseIncludePat
819c0 68 28 24 75 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 h($useIncludePath).{.$this->useI
819e0 6e 63 6c 75 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 ncludePath.=.$useIncludePath;.}.
81a00 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 55 73 65 49 6e 63 .......public.function.getUseInc
81a20 6c 75 64 65 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 ludePath().{.return.$this->useIn
81a40 63 6c 75 64 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 cludePath;.}.......public.functi
81a60 6f 6e 20 72 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 on.register($prepend.=.false).{.
81a80 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
81aa0 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)
81ac0 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 6e 72 65 67 69 73 74 ;.}.....public.function.unregist
81ae0 65 72 28 29 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 er().{.spl_autoload_unregister(a
81b00 72 72 61 79 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 rray($this,.'loadClass'));.}....
81b20 0a 0a 0a 0a 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 ....public.function.loadClass($c
81b40 6c 61 73 73 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 lass).{.if.($file.=.$this->findF
81b60 69 6c 65 28 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 ile($class)).{.include.$file;..r
81b80 65 74 75 72 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 eturn.true;.}.}.........public.f
81ba0 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 7b 0a 69 66 20 28 69 unction.findFile($class).{.if.(i
81bc0 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])).{
81be0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b .return.$this->classMap[$class];
81c00 0a 7d 0a 0a 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 24 63 6c .}..if.('\\'.==.$class[0]).{.$cl
81c20 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 ass.=.substr($class,.1);.}..if.(
81c40 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 61 73 73 2c false.!==.$pos.=.strrpos($class,
81c60 20 27 5c 5c 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 .'\\')).{...$classPath.=.str_rep
81c80 6c 61 63 65 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 lace('\\',.DIRECTORY_SEPARATOR,.
81ca0 73 75 62 73 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 substr($class,.0,.$pos))...DIREC
81cc0 54 4f 52 59 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 TORY_SEPARATOR;.$className.=.sub
81ce0 73 74 72 28 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 str($class,.$pos.+.1);.}.else.{.
81d00 0a 20 24 63 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 ..$classPath.=.null;.$className.
81d20 3d 20 24 63 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 =.$class;.}..$classPath..=.str_r
81d40 65 70 6c 61 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 eplace('_',.DIRECTORY_SEPARATOR,
81d60 20 24 63 6c 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 .$className)...'.php';..foreach.
81d80 28 24 74 68 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 ($this->prefixes.as.$prefix.=>.$
81da0 64 69 72 73 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 dirs).{.if.(0.===.strpos($class,
81dc0 20 24 70 72 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 .$prefix)).{.foreach.($dirs.as.$
81de0 64 69 72 29 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 dir).{.if.(file_exists($dir...DI
81e00 52 45 43 54 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 RECTORY_SEPARATOR...$classPath))
81e20 20 7b 0a 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 52 .{.return.$dir...DIRECTORY_SEPAR
81e40 41 54 4f 52 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 ATOR...$classPath;.}.}.}.}..fore
81e60 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 72 ach.($this->fallbackDirs.as.$dir
81e80 29 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 ).{.if.(file_exists($dir...DIREC
81ea0 54 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 TORY_SEPARATOR...$classPath)).{.
81ec0 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 52 41 54 4f return.$dir...DIRECTORY_SEPARATO
81ee0 52 20 2e 20 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 R...$classPath;.}.}..if.($this->
81f00 75 73 65 49 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 useIncludePath.&&.$file.=.stream
81f20 5f 72 65 73 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 _resolve_include_path($classPath
81f40 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a )).{.return.$file;.}.}.}.<?php..
81f60 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 6f 74 73 74 72 require.__DIR__.'/../src/bootstr
81f80 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 6f 6c 65 5c 41 ap.php';..use.Composer\Console\A
81fa0 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 67 28 2d 31 29 pplication;..error_reporting(-1)
81fc0 3b 0a 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f 65 72 72 6f 72 73 27 2c 20 31 29 3b ;.@ini_set('display_errors',.1);
81fe0 0a 40 69 6e 69 5f 73 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 2c 20 27 35 31 32 4d 27 .@ini_set('memory_limit',.'512M'
82000 29 3b 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 );..//.run.the.command.applicati
82020 6f 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 on.$application.=.new.Applicatio
82040 6e 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 n();.$application->run();..Copyr
82060 69 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 ight.(c).2011.Nils.Adermann,.Jor
82080 64 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 di.Boggiano..Permission.is.hereb
820a0 79 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 y.granted,.free.of.charge,.to.an
820c0 79 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 y.person.obtaining.a.copy.of.thi
820e0 73 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 s.software.and.associated.docume
82100 6e 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 ntation.files.(the."Software"),.
82120 74 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 to.deal.in.the.Software.without.
82140 72 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 restriction,.including.without.l
82160 69 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 imitation.the.rights.to.use,.cop
82180 79 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 y,.modify,.merge,.publish,.distr
821a0 69 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 ibute,.sublicense,.and/or.sell.c
821c0 6f 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 opies.of.the.Software,.and.to.pe
821e0 72 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 rmit.persons.to.whom.the.Softwar
82200 65 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 e.is.furnished.to.do.so,.subject
82220 20 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 .to.the.following.conditions:..T
82240 68 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 he.above.copyright.notice.and.th
82260 69 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 is.permission.notice.shall.be.in
82280 63 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 cluded.in.all.copies.or.substant
822a0 69 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 ial.portions.of.the.Software...T
822c0 48 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 HE.SOFTWARE.IS.PROVIDED."AS.IS",
822e0 20 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 .WITHOUT.WARRANTY.OF.ANY.KIND,.E
82300 58 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 XPRESS.OR.IMPLIED,.INCLUDING.BUT
82320 20 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 .NOT.LIMITED.TO.THE.WARRANTIES.O
82340 46 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 F.MERCHANTABILITY,.FITNESS.FOR.A
82360 20 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 .PARTICULAR.PURPOSE.AND.NONINFRI
82380 4e 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 NGEMENT..IN.NO.EVENT.SHALL.THE.A
823a0 55 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 UTHORS.OR.COPYRIGHT.HOLDERS.BE.L
823c0 49 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 IABLE.FOR.ANY.CLAIM,.DAMAGES.OR.
823e0 4f 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 OTHER.LIABILITY,.WHETHER.IN.AN.A
82400 43 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 CTION.OF.CONTRACT,.TORT.OR.OTHER
82420 57 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 WISE,.ARISING.FROM,.OUT.OF.OR.IN
82440 20 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 .CONNECTION.WITH.THE.SOFTWARE.OR
82460 20 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 .THE.USE.OR.OTHER.DEALINGS.IN.TH
82480 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 91 bf 35 7e 5b 52 6b e3 69 ee 0e 88 ad 10 d6 39 a9 47 c4 E.SOFTWARE.....5~[Rk.i......9.G.
824a0 46 02 00 00 00 47 42 4d 42 F....GBMB